普通程式設計師認為自己與頂尖程式設計師的區別, 主要是頂尖程式設計師任何功能都能編碼實現, 編碼速度快, **無 bug。正如一慣的那樣,普通程式設計師之所以普通,正是因為他們勉強能看到(或者根本看不到)事物的表象而看不到本質。
頂尖程式設計師專業度:
1、精通**除錯(debug)
很多人在寫**的過程中,經常會有的乙個問題就是:為什麼我寫出來的**不能執行?為什麼執行的結果不是我想要的?
那麼怎麼去除錯**呢?其實核心就是以下幾個方法:
· 不妨先猜測一下到底發生了什麼。
· 假設你的猜測是對的,想想你的猜測會導致程式有什麼結果。
· 試著觀察這些結果有沒有異常的地方。
· 如果你沒有發現異樣,那麼說明你的猜測就是對的。
· 如果你發現了異樣,那麼說明你的猜測是錯的,接下來換乙個猜測試試。
對於頂尖程式設計師來說,這個過程在腦海中就是電光火石的一瞬間。只要你解決的問題足夠多,你做出來的猜測就會越準確。
2、重視能夠節約時間的工具
最近打敗人類的alphago每天可以進行上百萬局的下棋訓練,我們人類一萬個小時的訓練卻需要10年之久。也就是說,電腦執行幾分鐘,可能就等於人類工作好幾年。
曾經在facebook擔任技術總監的bobby johnson描述過,高效率的程式設計師都把時間花在製作工具上。
總之,不要花時間去做機器可以代替你去做的事情。
3、優化你的迭代速度
假設你要花12秒鐘去搜尋某個函式是在**定義的。再假設你每天做這個動作60次,那麼你每天就要花12分鐘去搜尋函式定義。
如果你用乙個好一點的編輯器,每次找到函式定義只要2秒鐘,那麼你每天就會節約10分鐘。每年你就可以節約40個小時。
千萬不要小看這些瑣碎的細節,改善它們的回報是巨大。
頂尖程式設計師軟實力:
1、邏輯思維:理工科的男生思維都比較活躍,清晰;寫**之前都理清實現的原理再下筆;話說我們這還有個清華的女程式設計師,做事超級認真,職業素養非常高,程式都是一次性通過很佩服;
2、注重細節:**縮排,變數命名,標點符號都需要做到規範,便於後期維護以及改版等等;
3、注重安全開發:程式設計師開發的**不出現 bug 肯定是不可能的,除了修復 bug,一定要注意安全技術;
4、效率:不做無用功,碰到不能解決的問題,自己解決,不能解決就主動問,汲取教訓,收穫經驗;
5、耐心:需求改變或者程式錯誤都需要靜下心來不停的除錯錯誤以及修改;就算有時候做自己不喜歡的事情,你也要堅持,也許會的達到意想不到的收穫。
普通程式設計師如何成為頂尖程式設計師的幾個要素?
1、不斷學習
我們生活在乙個有趣的時代。隨著軟體開發逐漸遍布全球各地,你會發現有很多人都可以**的工作。所以你需要不斷學習以保持競爭力。否則,你就會落伍,停滯不前,直到有一天,這份工作不再需要你,或外包給一些更廉價的勞動力。
那麼我們能做些什麼?有些雇主很慷慨,會提供培訓以拓寬你的技能。也有的人會說我沒時間或者沒這個資金去接受任何培訓。所以,關鍵是要擺正心態,學習是對自己的負責。
2、不要害怕破壞東西
每個具備行業經驗的程式設計師肯定參與過**庫岌岌可危的專案。系統很糟糕,並且改變這邊總是會破壞另一邊不相關的功能。每次新增模組,程式設計師只能想著盡可能少地改變**,每次發布都膽戰心驚。這座軟體的摩天大樓隨時有坍塌的可能。
之所以改動**會如此傷腦筋是因為系統太糟糕了。但是即使你知道系統出了問題,卻又因為投鼠忌器,而不得不聽之任之。
不要害怕你的**。沒有人會在乎當你搗鼓**的時候有沒有暫時破壞了什麼東西。只要你做的改變不會讓專案重新回到開始狀態,就不會令人崩潰。
3、專業程式設計師
專業程式設計師的乙個最重要的特點是有責任心。專業程式設計師會為他們的職業生涯、預算、日程安排承諾、錯誤、技能技巧負責。乙個專業的程式設計師不會將責任推卸給別人。
專業程式設計師會為他們編寫的**負責。除非他們知道這些**是有效的,否則就不會發布**。現在,好好思考這個問題:如果是你,你會不會在不透徹了解**的情況下就直接發布**?
4、充分利用**分析工具
測試的價值是程式設計早期階段就灌輸給軟體開發者的乙個理念。近年來,單元測試,測試驅動開發和敏捷方法的興起,證實了我們開始注重於在開發周期的各個階段進行測試。但是,測試只是你可以用來提高**質量的許多任務具之一。
幾乎每一種語言都擁有至少乙個工具,用來檢查風格指南的違規行為、常見問題以及一些狡猾的有時候可能很難捕捉到的錯誤,如潛在取消引用空指標。
更高階的工具,如c的splint,以及python的pylint,是可配置的,這意味著你可以通過命令列開關或在ide中,使用配置檔案來讓工具選擇放過其中的哪些錯誤和警告。splint甚至還能讓你在注釋中註解你的**,以便於更好地提示你的程式是如何工作的。
5、關心**
僅靠技術並不能成就好的程式設計。我碰到過一些非常聰明的程式設計師,他們能夠產出令人印象深刻的演算法,能夠熟記語言標準,但卻寫出了最可怕的**。這種**,閱讀起來很痛苦,使用起來很痛苦,修改起來更是令人痛不欲生。我也碰到過一些非常謙遜的程式設計師,因為堅持簡單的**,所以寫出來的程式更優雅,更易於表達他的意思,和他們工作非常愉快。
另外還有一點可以通過自身的學習來獲取一大進步。
究竟有哪些乾貨呢?
頂尖程式設計師和普通程式設計師的五大區別
很多人在寫 的過程中,經常會有的乙個問題就是 為什麼我寫出來的 不能執行?為什麼執行的結果不是我想要的?幾乎所有的程式設計師寫 都不是一遍就能寫好的。但是頂尖的程式設計師非常快的就明白自己 的問題可能是什麼。這是乙個很重要的能力,但是偏偏學校裡不教,面試的時候考官也不經常提及。那麼怎麼去除錯 呢?其...
閱讀「優秀程式設計師與普通程式設計師之間的區別」
語錄 才幹是你貫穿始終的思維方式 行為方式 和感覺,它是與生俱來的。任何可以產生效益的,貫穿始終的行為模式都是才幹。多數的時候我們沒有意識 到它是才幹,但是當我們有意識並以及培養它的時候,我們就可以有所成就。取得出色工作成績的關鍵在於與你的能力和才幹相匹配。優秀的程式設計師需要的能力 學習能力 學習...
程式設計師頂尖和普通就是有5個區別!
the effective engineer 的作者在寫書的過程中,為了了解那些頂級程式設計師和普通程式設計師的區別,採訪了很多矽谷頂級科技公司的頂尖軟體工程師。他發現這些給世界帶來巨大影響的的工程師們至少有以下5個共同的思維模式 除了 之外,很多人對於陌生的工作內容也會感到恐懼。每次換工作的時候,...