有趣的8個IT冷知識
閱讀本文大概需要 2.8 分鐘。
想要成為一名成功的程式設計師,我們除了瞭解不同程式語言的設計思路,也應當瞭解程式設計的發展歷史,從而判斷未來的程式設計技術將走向何方。接下就為大家普及下計算機發展歷程中的8個冷門小知識!
01
第一臺電腦為蒸汽驅動
作為公認的程式設計之父,Charles Babbage發明了世界上首批計算機之一。他將這臺新裝置稱為分析引擎。其體積超過一棟房屋,由六臺蒸汽機驅動並使用打孔卡進行程式設計。分析引擎有四大主要組成部分:1.轉盤——相當於現代計算機中的CPU;2.儲存——相當於現代計算機中的記憶體與儲存介質;3.讀取器——相當於輸入機制;4.印表機——用於實現資訊輸出。
02
電腦病毒的設計初衷並非是造成損害
史上第一款電腦病毒,竟然是由防禦技術專家Fred Cohen親手設計出來的。他創造電腦病毒的目的僅僅是為了證明程式對電腦感染的可行性,從未希望藉此對電腦造成任何危害。但這款程式卻能夠對電腦進行感染,並且能透過軟盤等移動介質在不同計算機之間進行傳播,因而命名為病毒。後來,他又創造出一種主動式電腦病毒,主要目的是幫助電腦使用者找到未受感染可執行檔案。
03
第一位程式設計師是位女性
也許最令人難以置信的是,歷史上第一位程式設計師是位女性。她的名字是Ada Lovelace。在1843年,這位英國數學家Ada Lovelace,翻譯了義大利工程師Luigi Menabreaw撰寫的分析引擎文章。在翻譯過程中,她把自己的理解都批註到每篇文章下,而這舉動加快了計算機程式設計技術的發展。在這之後,她又設計出了第一種能夠利用分析引擎計算伯努利數的演算法,這也是第一個用電腦編寫的演算法。
04
第一款數字化電腦遊戲從未帶來任何利潤回報
現在的影片遊戲已經成為了最受矚目的程式開發成果,然而歷史上第一款數字計算機遊戲則遭遇巨大失敗。第一個電腦遊戲出現於1962年,由麻省理工學院的計算機程式設計師Steve Russell與其團隊一同編寫,這款名為《太空大戰》的遊戲耗費了他們近200個小時。該遊戲允許兩名玩家分別控制兩艘飛船,目標是擊中並摧毀對方飛船,並且玩家還需要躲避螢幕中代表星球的小白點。如果玩家撞上這些星球,則遊戲失敗。雖然Russell和他的團隊從未在這個遊戲說的任何收益,但必須承認如果沒有這一突破我們可能永遠不會擁有如今蓬勃發展的影片遊戲產業。
05
影像處理演算法中使用最廣的一幅圖片來自《花花公子》雜誌
40年來,這幅被應用為影像處理方案中的泛用性標準測試素材,還被程式設計師們親切稱為Lena的圖片。但大多數人都不知道,它是來自《花花公子》雜誌1972年11月刊的插頁。
06
GIT中保證檔案完整性的SHA-1值
Linux kernel開創者和Git的開發者——Linus說,Git使用了SHA-1並非是為了安全性,而是為了資料的完整性;它可以保證,在很多年後,你重新checkout某個commit時,一定是它多年前的當時的狀態,完全一摸一樣,完全值得信任。
07
程式中bug的名稱源自“蟲子”
在程式中bug一詞用於技術錯誤。這一術語最初由愛迪生在1878年提出的,但當時並沒有流行起來。在這的幾年之後,美國上將Grace Hopper在她的日誌本中,寫下了她在Mark II電腦上發現的一項bug。不過實際上,她說的真的是“蟲子”問題,因為一隻蛾子被困在電腦的繼電器中,導致電腦的操作無法正常執行。如圖片所見,她寫道“這是我在電腦上發現的第一個bug”。
08
豐富多彩的計算機程式設計世界
如果將計算機程式設計世界看作一個國家,那麼其中涉及的語言種類必然冠絕群倫。目前已知的程式語言共有698種,遠遠超過任何以語言多樣性著稱的國家。
更重要的是,程式設計師們應當瞭解程式設計技術的發展歷程以及各大里程碑式創新成果背後的貢獻者。另外,歷史文化能夠激發人們對於所從事行業的熱愛之情,從而更為積極地投身於工作當中。
·END·
程式設計師的成長之路
路雖遠,行則必至
本文原發於 同名微信公眾號「程式設計師的成長之路」,回覆「1024」你懂得,給個讚唄。
微信ID:cxydczzl
往期精彩回顧
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69902700/viewspace-2638627/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JavaScript 有趣的冷知識:模板字串JavaScript字串
- JavaScript 有趣的冷知識:tagged template literalsJavaScript
- 值得程式設計師一看的8個冷門小知識程式設計師
- 值得程式設計師一看的 8 個冷門小知識程式設計師
- Python的冷知識Python
- 6個冷門但實用的pandas知識點
- Spring 冷知識:一個提前 AOP 的機會Spring
- 蘋果產品冷知識蘋果
- 8個不為人知的Docker 知識Docker
- 十個關於網際網路圈的冷知識
- HTTP協議冷知識大全HTTP協議
- Swift 冷門語法知識Swift
- PHP函式的一些冷知識PHP函式
- Flutter冷知識 | 獲取dart的print內容FlutterDart
- 帶你深入理解 Flutter 中的字型“冷”知識Flutter
- 冷知識:數學常數“e”的傳奇故事
- 關於flex-shrink如何計算的冷知識Flex
- 8個你不可能知道的 Docker 知識Docker
- 8 個你可能不知道的 Docker 知識Docker
- 冷知識:你知道每個視窗都有的 [x] 是怎麼來的嗎?
- 分享一個冷門知識——文字框的選擇文字在業務中的應用
- 這些鮮為人知的前端冷知識,你都GET了嗎?前端
- JS原生Date型別方法的一些冷知識JS型別
- 遊戲冷知識——遊戲血條:我們與死亡的距離遊戲
- PHP程式設計師遇到問題的冷門知識點PHP程式設計師
- 冷門前端知識,介紹雙執行緒的小程式!前端執行緒
- 你所不知道的 Python 冷知識!(建議收藏)Python
- MySQL基礎知識(8)MySql
- 【前端詞典】分享 8 個有趣且實用的 API前端API
- 初識python必知的6個知識點Python
- 你所不知道的 Python 冷知識!(二)(建議收藏)Python
- Nginx中關於虛擬主機的一點冷門知識Nginx
- 前端冷知識(持續更新2020.12.13)前端
- 3個膝上型電腦冷知識 看完你還敢說懂電腦嗎?
- k8s知識點K8S
- 網站產品頁設計中隱藏的心理學冷知識網站
- C++必知的幾個知識點C++
- Git的11個知識點Git