轉載 https://www.oschina.net/news/79264/10-behaviors-will-make-unstoppable-programmer
當談到程式設計時,很多人應該都有聽過10x程式設計師的說法。 據說一個10x程式設計師的效率大約是其他程式設計師的10倍。
這是一個有爭議的話題,無論你選擇相信10x程式設計師,還是認為這十分可笑,下面的10個習慣可以在一定程度上助你成為一名勢不可擋的優秀程式設計師。
1、積極使用搜尋工具
作為開發人員,你需要了解如何利用搜尋解惑,檢視其他人對你正在研究的主題所討論的話題和內容,並將學到的知識應用於手頭的專案。
當面臨一個問題,優秀的程式設計師應該知道如何花很少時間去查驗和解決手頭的問題。
2、保持初學者心態
技術發展如此之快,需要不斷地學習新技術。 因此,當沒有經驗的時候,你需要適當地用新的視角看待事情。優秀的開發人員享受作為新技術的初學者的過程,並掌握自我教育的節奏,以儘快自給自足。
每個專家在某個時間點都可能是一個初學者。 而且有這麼多的技術,即使在某個技術領域是專家,在另一個可能就是菜鳥。
3、將小事做好
當編寫程式時,它通常會讓你覺得需要做出十億個決定,即使你只是新增一個小功能。 你需要考慮諸如命名變數、呼叫函式、命名CSS屬性、使用hash與使用陣列、命名事物等等。
為你乾的事情做好命名是程式設計中一個重要的部分。 這不容易, 但很重要。有開發人員還開玩笑說,在電腦科學領域有兩個難題:快取無效+命名。
新程式設計師通常不會對變數和函式命名足夠重視, 普通程式設計師會花更多的時間去思考它,而優秀的程式設計師已經通過之前遇到錯誤和問題學到了經驗。 他們找到了來幫助他們命名變數的模式,他們甚至不需要再去考慮它,因為一直沿用相同的方式命名就好。
4、收放自如
在構建應用程式的過程中,往往需要做出重大決策,這將影響你如何編寫大多數程式碼。例如,在ruby中,你可能需要權衡MiniTest和RSpec之間的區別。 人們對於這些型別都有著強烈的自我意見和看法,因此容易引起爭執。 但是優秀的開發人員想法不同,往往不太在意這些,他們重視編寫、測試的習慣,他們知道你使用的具體工具其實不那麼重要。
優秀的程式設計師往往不參與其他開發者的相互爭執和指責中,他們更收放自如。
5、使用正確的工具
在程式設計中,有許多不同的開源庫、工具和框架可供使用。 優秀的程式設計師不斷地評估他們正在使用的工具,並找出為工作選擇正確工具的方法。 由於他們習慣自給自足,他們願意承受學習新東西的痛苦,只要它們能幫其提升效率。
有很多的開發人員喜歡去搜尋和檢視相關的文件、部落格文章來比較工具,並最終選擇一個單一的工具。但優秀的開發人員會將他們的研究縮小到2-3個選項,並迅速將這些工具應用到他們的專案,以瞭解它們是如何在他們的環境中工作的。
6、理解“code is cheap”
優秀的程式設計師往往可以產生更多的產出,因為他們不會被沉沒成本誤導。這些東西很容易導致人們做出不合理的行為,特別是在編寫程式碼的時候……
在編碼中,沉沒成本的誤導涉及到花費在解決某個問題上的時間。例如,考慮一個場景,其中某人開始為專案編寫程式碼,並預計需要大約一個星期。他們根據這個預期做出決定,在完成專案一整個星期後,他們意識到它實際上需要一個月。大多數開發人員將繼續他們已經開始的路徑走下去,證明他們的決定,並展示已經做了一個星期的進展來進行說服自己。
但是優秀的開發者思考方向不同:
“有一種其它的方法,我認為只需要半個月就能搞定。這意味著如果採取這種方法,它將可能比我保持現在的路徑一直走到底要快兩倍。”
7、使用正確的技術
一群人在屋裡評估技術,然後忽略掉一個在特定技術裡的大拿這種情況並不罕見。
例如,我非常有聲望,我對 Elixir 程式語言很是看好。但是這項技術很新,如果想要實際構建複雜的功能,可能會相對其它更難找到相應的開源技術,這將提升團隊構建的難度。
解決問題需要最實際的決定,使用的技術應該是基於它能夠很容易在2016年,在目前實現。在2017年、2018年、2020年,技術可能會有所不同,那時候再根據需要進行調整。
8、不知道就說“不知道”
拒絕承認你不知道的東西是很容易導致浪費你時間的事情。 作為一個優秀的程式設計師,你要明白你的自我價值並不受那些你不懂的東西束縛。
初學者經常難以發現最新技術的發展趨勢,優秀的開發者會意識到,他們所知道的每一種技術(程式語言,框架,庫等)都可能不再是明天的可行選擇。 他們會提前考慮更高階別的程式設計方式和問題解決方式。
9、始終分析錯誤訊息中提示的線索
傳統教育告訴我們,失敗是不可取的。當學習程式碼時,錯誤訊息通常與失敗相關聯。學習如何排除故障和除錯錯誤訊息是一個重要的技能。
還值得注意的是,開發人員可能會再次遇到類似的錯誤訊息。你應該專注於學習如何解決問題,以及為什麼你需要解決它們。這樣做將允許你以更快的速度修復類似的錯誤。
10、不安於目前的成功
錯誤往往是最好的學習機會, 所以不要把錯誤當作失敗。 相反,將他們當作可學習的機會,並評估如何防止情況下一次發生。成長的關鍵是理解如何使同樣的錯誤只有一次。
程式設計,就像生活中的許多事情一樣。這就是為什麼這麼多的行為,能幫助你做好一名優秀的程式設計師,也能幫你在日常生活中做一個優秀的人。