真正优秀的程序员有哪些与众不同之处?
“當你50歲時,還愿意編程嗎?”這個話題在Hacker News上眾說紛紜,不過我們能夠看到,那些真正成功的程序員,如John Carmack、Peter Norvig、Jeff Dean,即使他們不再年輕,但依然對編程充滿熱情,他們身上有哪些與眾不同之處,又有哪些值得我們學習?有人進行了總結。
1. 選擇當前科技領域的一個小子集,親近它、擁抱它,并且嘗試推進這個小領域的發展。
2. 理解不同數據結構和算法的優缺點,不單是內存中,還有磁盤上的表現。
3. 首先深刻理解你所在的領域,然后拋開計算機,像普通用戶那樣觀察和體會。
4. 時刻準備好(包括能力和心理上)向深層探索,不僅僅是一兩層,而是好幾層。要知道,是否能在編程時勢如破竹,與你所能達到的技術深度關聯緊密。
5. 運用你的想象力,總是問這樣的問題“還有更好的辦法嗎?”跳出固有的思維模式,最好的實現方式也許還沒有人嘗試過。
6. 永遠不要過早退出,不要兩次編寫同一段代碼,不要將一個變量命名為另一個變量的子集。如果不理解這些規則,也許你會爭辯,不過一旦你這么做了,它們就能幫助你寫出更好的代碼,否則你將永遠停留在初級程序員的水平。
7. 學習如何進行基準測試,學會的那一天,你會發現世界將變得不同。
8. 學會如何分辨瑣事和細節,只將精力集中于細節。
9. 不要總是向你的用戶和管理者妥協,有時應該讓他們知道,他們自以為的并不是那么重要。
10. 寫一個框架,無論你是否計劃使用它。這個過程會讓你學到靠其他方式無法學到的東西。
11. 把學到的東西教給別人,無論是口口相授還是文以載道,你都會發現自己也能從這個過程中收獲良多。
12. 找到旁人寫的這樣一些代碼——它們實現了重要的功能,但寫得并不夠聰明。重寫它們,然后告訴自己永遠不要犯相同的錯誤。
13. 在人生的某個時候,運營你自己的事業(服務或產品)。你能從中學到當職員時無法領悟的編程技巧。
優秀程序員:
John Carmack:約翰·卡馬克(John Carmack的全名是John D. Carmack II) ,他生于1970年8月20日),是享譽世界的著名程序員,在電視游戲領域被尊為偶像。Carmack是id Software的創始人之一,id是一家專門開發電子游戲、電視游戲的公司,成立于1991年。
所開發的游戲:“Wolfenstein3D”(德軍總部3D) “Doom”(毀滅戰士) “DoomII”(毀滅戰士2) “Heretic”(異教徒)
?“Hexen”(巫術) “HexenII”(巫術2) “Quake”(雷神之錘) “QuakeII”(雷神之錘2) “QuakeIIIArena”(雷神之錘3之雷神競技場) “DoomIII”(毀滅戰士3) “QuakeIV ”(雷神之錘4) “Rage”(狂怒)
Peter Norvig:Google的研究部主任,Google的安全質量總監彼得·諾維格(Peter Norvig)現在是Google的研究部主任,Google的安全質量總監,Lisp?Guru,著名的PAIP和AIMA的作者,不過他的一篇小品文Teach?Yourself?Programming?in?10?Years或許傳播得更廣。 人工智能專家彼得·諾威格博士(Peter?Norvig)講,當一個公司的市場占有率超過?50?后,就無法再使市場占有率翻番了。這幾乎是任何人都懂的大白話,但是卻道出了許多跨國公司興衰的根源。
個人主頁:http://www.norvig.com/
Jeff Dean,Google的軟件架構天才。Google大型并發編程框架Map/Reduce作者。
Jeff Dean在Google,公司最頂尖的編程高手Jeff Dean曾發明過一種先進的方法,該方法可以讓一個程序員在幾分鐘內完成以前需要一個團隊做幾個月的項目。他還發明了一種神奇的計算機語言,可以讓程序員同時在上萬臺機器上用最短的時間完成極為復雜的計算任務。
Jeff Dean于1999年加入Google,目前是Google系統架構小組的成員。他在Google主要負責開發Google的網頁抓取、索引、查詢服務以及廣告系統等,他對搜索質量實現了多次改進,并實現了Google分布式計算架構的多個部分。
在加入Google之前,他工作于DEC/Compaq的Western實驗室,主要從事軟件分析工具、微處理器架構以及信息檢索等方面的研究。他于1996年在華盛頓大學獲得了博士學位,與Craig Chambers一起從事面向對象語言的編譯器優化技術方面的研究。在畢業之前,他還在世界衛生組織的艾滋病全球規劃署工作過轉載于:https://www.cnblogs.com/ajian005/archive/2012/11/23/2841088.html
總結
以上是生活随笔為你收集整理的真正优秀的程序员有哪些与众不同之处?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Latin1_General_BIN
- 下一篇: songbirds for ubuntu