值得程式設計師一看的8個冷門小知識
想要成為一名成功的程式設計師,我們除了瞭解不同程式語言的設計思路,也應當瞭解程式設計的發展歷史,從而判斷未來的程式設計技術將走向何方。接下就為大家普及下計算機發展歷程中的8個冷門小知識!
1.第一臺電腦為蒸汽驅動
作為公認的程式設計之父,Charles Babbage發明了世界上首批計算機之一。他將這臺新裝置稱為分析引擎。其體積超過一棟房屋,由六臺蒸汽機驅動並使用打孔卡進行程式設計。分析引擎有四大主要組成部分:1.轉盤——相當於現代計算機中的CPU; 2.儲存——相當於現代計算機中的記憶體與儲存介質; 3.讀取器——相當於輸入機制; 4.印表機——用於實現資訊輸出。
2.電腦病毒的設計初衷並非是造成損害
史上第一款電腦病毒,竟然是由防禦技術專家Fred Cohen親手設計出來的。他創造電腦病毒的目的僅僅是為了證明程式對電腦感染的可行性,從未希望藉此對電腦造成任何危害。但這款程式卻能夠對電腦進行感染,並且能通過軟盤等移動介質在不同計算機之間進行傳播,因而命名為病毒。後來,他又創造出一種主動式電腦病毒,主要目的是幫助電腦使用者找到未受感染可執行檔案。
3.第一名程式設計師是位女性
也許最令人難以置信的是,歷史上第一名程式設計師是位女性。她的名字是Ada Lovelace。在1843年,這位英國數學家Ada Lovelace,翻譯了義大利工程師Luigi Menabreaw撰寫的分析引擎文章。在翻譯過程中,她把自己的理解都批註到每篇文章下,而這舉動加快了計算機程式設計技術的發展。在這之後,她又設計出了第一種能夠利用分析引擎計算伯努利數的演算法,這也是第一個用電腦編寫的演算法。
4.第一款數字化電腦遊戲從未帶來任何利潤回報
現在的視訊遊戲已經成為了最受矚目的程式開發成果,然而歷史上第一款數字計算機遊戲則遭遇巨大失敗。第一個電腦遊戲出現於1962年,由麻省理工學院的計算機程式設計師Steve Russell與其團隊一同編寫,這款名為《太空大戰》的遊戲耗費了他們近200個小時。該遊戲允許兩名玩家分別控制兩艘飛船,目標是擊中並摧毀對方飛船,並且玩家還需要躲避螢幕中代表星球的小白點。如果玩家撞上這些星球,則遊戲失敗。雖然Russell和他的團隊從未在這個遊戲說的任何收益,但必須承認如果沒有這一突破我們可能永遠不會擁有如今蓬勃發展的視訊遊戲產業。
5.影象處理演算法中使用最廣的一幅圖片來自《花花公子》雜誌
40年來,這幅被應用為影象處理方案中的泛用性標準測試素材,還被程式設計師們親切稱為Lena的圖片。但大多數人都不知道,它是來自《花花公子》雜誌1972年11月刊的插頁。
6. GIT中保證檔案完整性的SHA-1值
Linux kernel開創者和Git的開發者——Linus說,Git使用了SHA-1並非是為了安全性,而是為了資料的完整性;它可以保證,在很多年後,你重新checkout某個commit時,一定是它多年前的當時的狀態,完全一摸一樣,完全值得信任。
7.程式中bug的名稱源自“蟲子”
在程式中bug一詞用於技術錯誤。這一術語最初由愛迪生在1878年提出的,但當時並沒有流行起來。在這的幾年之後,美國上將Grace Hopper在她的日誌本中,寫下了她在Mark II電腦上發現的一項bug。不過實際上,她說的真的是“蟲子”問題,因為一隻蛾子被困在電腦的繼電器中,導致電腦的操作無法正常執行。如圖片所見,她寫道“這是我在電腦上發現的第一個bug”。
8. 豐富多彩的計算機程式設計世界
如果將計算機程式設計世界看作一個國家,那麼其中涉及的語言種類必然冠絕群倫。目前已知的程式語言共有698種,遠遠超過任何以語言多樣性著稱的國家。
更重要的是,程式設計師們應當瞭解程式設計技術的發展歷程以及各大里程碑式創新成果背後的貢獻者。另外,歷史文化能夠激發人們對於所從事行業的熱愛之情,從而更為積極地投身於工作當中。
相關文章
- 值得程式設計師一看的 8 個冷門小知識程式設計師
- PHP程式設計師遇到問題的冷門知識點PHP程式設計師
- 有趣的8個IT冷知識
- 冷門前端知識,介紹雙執行緒的小程式!前端執行緒
- 程式碼藝術(程式設計師值得一看) (轉)程式設計師
- 幾個shell程式設計小知識(轉)程式設計
- 程式設計師的知識管理程式設計師
- Java 程式設計師們值得一看的好書推薦Java程式設計師
- 6個冷門但實用的pandas知識點
- 程式設計師必須掌握的五個seo知識程式設計師
- Swift 冷門語法知識Swift
- 程式設計師的8個注意程式設計師
- Web設計師需要程式設計知識嗎?Web程式設計
- 好程式設計師web前端分享web前端入門知識程式設計師Web前端
- 好程式設計師Java培訓分享Java處理異常的幾個小知識程式設計師Java
- 程式設計師程式設計知識經驗總結程式設計師
- 設計師的知識管理
- Ruby 程式設計師學習 Laravel 框架筆記 (8)-view 的更多知識程式設計師Laravel框架筆記View
- Java程式設計常用計算機小知識Java程式設計計算機
- java程式設計入門指南,你應該瞭解的Java小知識Java程式設計
- 每個程式設計師應該知道的計算機網路知識程式設計師計算機網路
- 程式設計師程式設計面試取勝的8個技巧程式設計師面試
- Python書單丨程式設計師都在讀的15本書,值得一看!Python程式設計師
- Java入門基礎學習,成為一個Java程式設計師的必備知識Java程式設計師
- 剛工作的程式設計師要知道的知識程式設計師
- 程式設計師程式設計需要多少個小時?程式設計師
- 成功程式設計師的8個習慣程式設計師
- 一、(基礎知識)一個前端程式設計師的java小白之路前端程式設計師Java
- 一個優秀windows C++程式設計師的知識體系WindowsC++程式設計師
- 每個程式設計師都應該瞭解的硬體知識程式設計師
- 程式設計師必備:30個MySQL資料庫常用小技巧,值得收藏!程式設計師MySql資料庫
- 趣圖:程式設計師值得貼一個這樣的程式設計師
- 軟體設計師:程式設計語言基礎知識程式設計
- 每個程式設計師都應該瞭解的記憶體知識程式設計師記憶體
- 好程式設計師web前端分享Cookie知識程式設計師Web前端Cookie
- Java程式設計師需要學習哪些知識?Java程式設計師
- 8個對程式設計師來說有用的jQuery小貼士和技巧程式設計師jQuery
- 暴露程式設計師身份的8個行為程式設計師