《the effective engineer》的作者在寫書的過程中,為了了解那些頂級程式設計師和普通程式設計師的區別,採訪了很多矽谷頂級科技公司的頂尖軟體工程師。他發現這些給世界帶來巨大影響的的工程師們至少有以下5個共同的思維模式:
除了**之外,很多人對於陌生的工作內容也會感到恐懼。每次換工作的時候,你可能都會遇到新公司的工作內容和以前工作的內容不一樣的情況,以至於剛開始的時候工作效率沒有以前那麼高。很多人甚至覺得,他們是不是騙了面試官。
其實,大家都是在學習的過程中。在乙個陌生的領域,沒有人從一開始就是大神。如果你想變得越來越好,無論是寫**,與人溝通或者其它的技能,都是需要投入時間去學習的。
很多人在寫**的過程中,經常會有的乙個問題就是:為什麼我寫出來的**不能執行?為什麼執行的結果不是我想要的?
幾乎所有的程式設計師寫**都不是一遍就能寫好的。但是頂尖的程式設計師非常快的就明白自己**的問題可能是什麼。這是乙個很重要的能力,但是偏偏學校裡不教,面試的時候考官也不經常提及。
那麼怎麼去除錯**呢?其實核心就是以下幾個方法:
對於頂尖程式設計師來說,這個過程在腦海中就是電光火石的一瞬間。只要你解決的問題足夠多,你做出來的猜測就會越準確。
至於如何發現異樣?你就需要有一套自己的工具或者方**了。最簡單的就是在**裡輸出日誌來判斷。但是這是比較笨的辦法,你需要去接觸一些高階的工具或者直接帶有debug功能的編輯器。
最近打敗人類的alphago每天可以進行上百萬局的下棋訓練,我們人類一萬個小時的訓練卻需要10年之久。也就是說,電腦執行幾分鐘,可能就等於人類工作好幾年。
曾經在facebook擔任技術總監的bobby johnson描述過,高效率的程式設計師都把時間花在製作工具上。
很多人也認為工具是很重要的,但是他們並沒有花時間去製作、整合自己的工具。但是,jonson團隊最出色的員工耗費了他們1/3的時間在工具製作上,這些工具可以用來發布**,監控系統,以及能讓他們花更少的時間去做更多事情。
總之,不要花時間去做機器可以代替你去做的事情。
假設你要花12秒鐘去搜尋某個函式是在**定義的。再假設你每天做這個動作60次,那麼你每天就要花12分鐘去搜尋函式定義。
如果你用乙個好一點的編輯器,每次找到函式定義只要2秒鐘,那麼你每天就會節約10分鐘。每年你就可以節約40個小時。
如果你能找到3個這樣的場景去優化一下,那麼你每年可以節約乙個月的時間。想想這乙個月你可以做多少有意義的事情。
千萬不要小看這些瑣碎的細節,改善它們的回報是巨大。
當你在寫**的時候,你很容易就認為只要你按照需求實現了指定的功能,你的**就寫完了。但是這其實只是冰山一角。任何沒有發布到生產環境的**都不會產生任何價值。
如果想寫出真正有影響力的**,你需要從整個系統去理解你的工作:
這些問題都不是很容易就能回答的,但是在寫**的時候,你需要明白你的**最後會不會得到最好的結果。
這些只是頂尖程式設計師的一些基本思維方式,如果你想要更詳細的了解在google,facebook,twitter這些公司的頂尖程式設計師是如何工作的,去關注作者的部落格或者他的書吧。
頂級程式設計師和普通程式設計師在思維模式上的5個區別!
the effective engineer 的作者在寫書的過程中,為了了解那些頂級程式設計師和普通程式設計師的區別,採訪了很多矽谷頂級科技公司的頂尖軟體工程師。他發現這些給世界帶來巨大影響的的工程師們至少有以下5個共同的思維模式 除了 之外,很多人對於陌生的工作內容也會感到恐懼。每次換工作的時候,...
頂級程式設計師和普通程式設計師最大的5個區別
1.勇於去研究你不懂的 除了 之外,很多人對於陌生的工作內容也會感到恐懼。每次換工作的時候,你可能都會遇到新公司的工作內容和以前工作的內容不一樣的情況,以至於剛開始的時候工作效率沒有以前那麼高。很多人甚至覺得,他們是不是騙了面試官。其實,大家都是在學習的過程中。在乙個陌生的領域,沒有人從一開始就是大...
男程式設計師思維VS女程式設計師思維
今天下午參加了乙個技術分享,產生了一些想法。本文沒有什麼理論性,也沒有什麼科學性,單純主觀感受。如果您讀後有所收穫,那就再好不過啦。先說事情的流程 知識點就不涉及了,主要講講大boss問的問題帶給我的思考。問題 1 2 請參考上圖 1 問題 為什麼不能直接通訊,而是經過 解決 這就能牽扯出 這一部分...