优秀的程序员怎么做
我覺得優秀的程序員,不僅優秀在代碼上,更重要在思維等方面。
我認為一個優秀程序員是謹慎的,在有需求與任務時,會不斷的澄清需求與任務,并且多次確認想要的結果,而非悶頭聽著或者看著需求與任務列表。
我認為一個優秀程序員的思維是清晰的,在寫代碼時,他的腦海是有一系列詳細步驟的,即知道他在做什么,而且寫下的每一步他都能清楚的知道在表達什么。
我認為一個優秀程序員的思維是縝密細致的,在出問題后,他會詳細的先研究問題出在哪里,思考緣由,而非悶頭瞎使用printf大法,然后去撞大運,頭痛醫頭,腳疼醫腳,因為這樣解開了Bug其實連自己都心虛。而優秀的程序員即使解開了Bug,他也會擴展問題,并且思考是否其它部分是否也有類似的問題,只是還未體現,而且他也會詳細反思獲得的經驗。
我認為一個優秀程序員的編碼習慣是良好的,他的代碼讀起來是賞心悅目的,若遇到難理解的實現點時,他也會寫下清晰的注釋來幫助后來人理解,因為他知道代碼不僅是讓計算機執行,更是需要讓別人也理解的,因為項目開發是團隊合作,而非單打獨斗。
與優秀程序員的合作是愉快的,而非覺得難處。
1.事情做得專業的前提是能關注到細節
我覺得細心謹慎是程序員最基本的修養和素質,邏輯能力啥的倒是更為上一層的事情。整天想好的算法和架構是沒有用的,你知道當你跟產品經理說解了半天的bug是因為少了個分號的時候,產品經理心中鄙視的是多么的波濤洶涌么。
如果連這些代碼基本的細節都不能注意的話,談何其他呢
2.尊敬每一個人就像尊敬代碼一樣
很多程序員是傲嬌的,覺得產品就是自己做出來的,其他的人都是輔助的。所以很多程序員心里是看不上產品,測試的,也就造成很多溝通障礙。
首先上面這種人一定一輩子只能寫代碼,哪怕技術再牛。
我不太認同寫代碼只能寫到30歲,但是程序員30歲之后,要想有更大的發展,那么做團隊管理,要么做技術咨詢,才能讓自己的能力和積累的經驗擴大化,那么這個時候,卓越的溝通能力往往成為關鍵。
3.用經驗堆砌出你的產品技術全局觀
這個就涉及到架構方面,產品經理提出需求,不僅僅想聽到的是這個需求可以做還是不可以做這么簡單,而是如果可以做,那么開發成本是怎樣的,會對目前的系統產品模塊造成哪些影響,有哪些的risk,如果不可以做,有沒有好的替代方案或者簡化方案。
如果在需求評估的時候,PM可以得到這些答案,一定會跪舔你的
當然,另一方面,如果在前期評估中,這些都沒有想到的話,后期造成的種種后果也是需要程序員自己承擔的。
4.做好情緒管理
理論上,程序員都是冷靜的。但是現實中,情緒沖動的也是蠻多的,我不知道這樣的性格會對寫代碼有何影響,但是因為情緒影響了判斷就不好了,例如因為需求反復修改就索性說這個代碼實現不了這種事情,終究會對自己的信譽造成很大影響的。這種事情我經常遇到。。。
5.技術要做到精益求精
編程語言那么多,多語言的程序員雖然搶手,但是如果是半瓶水的水平,估計也是沒人愿意要的。
現在程序員非常多,是因為這個行業入門的門檻非常低,也就造成行業的水平參差不齊。做一個網站很難么,找個現成的框架,懂點數據庫,建個數據表,前端再找個現成的模板,修修改改一個網站就出來了。
但是滿足這樣就完了?那么水平可能永遠就是這樣了,其實這其中每一個點都是可以研究的很深的,比如網站的大數據存儲,如何提供程序并行運行的效率,,未來計算機行業的技術分工會越來越細,任何一個方面的專家都是相當有用的
6、職業規劃,其實你沒的選
聽一個前輩講,自己也對職業也很迷茫過,后來索性去創業了,但是失敗的一塌糊涂,最后才明白,自己最會的還是寫代碼,最懂的還是Java,有時候其實你沒的選
7.Stay hungry ,Stay Foolish
技術是永無止境的,好的程序員必須保持對于新的技術敏感度,保持學習的熱情
同時看書學習可以更多的得到思維模式,可以在最快的時間發現問題的所在
如果沒有好的思維模式,很多程序員遇到需求了,先百度,看看有沒有相似的代碼,遇到bug再去百度下,看看別人是怎么解的,這種永遠只是碼農而已
聽說一本好的程序書籍至少要讀12遍才能理解。
優秀程序員的行為:
普通程序員的行為:
我認為一個優秀程序員是謹慎的,在有需求與任務時,會不斷的澄清需求與任務,并且多次確認想要的結果,而非悶頭聽著或者看著需求與任務列表。
我認為一個優秀程序員的思維是清晰的,在寫代碼時,他的腦海是有一系列詳細步驟的,即知道他在做什么,而且寫下的每一步他都能清楚的知道在表達什么。
我認為一個優秀程序員的思維是縝密細致的,在出問題后,他會詳細的先研究問題出在哪里,思考緣由,而非悶頭瞎使用printf大法,然后去撞大運,頭痛醫頭,腳疼醫腳,因為這樣解開了Bug其實連自己都心虛。而優秀的程序員即使解開了Bug,他也會擴展問題,并且思考是否其它部分是否也有類似的問題,只是還未體現,而且他也會詳細反思獲得的經驗。
我認為一個優秀程序員的編碼習慣是良好的,他的代碼讀起來是賞心悅目的,若遇到難理解的實現點時,他也會寫下清晰的注釋來幫助后來人理解,因為他知道代碼不僅是讓計算機執行,更是需要讓別人也理解的,因為項目開發是團隊合作,而非單打獨斗。
與優秀程序員的合作是愉快的,而非覺得難處。
1.事情做得專業的前提是能關注到細節
我覺得細心謹慎是程序員最基本的修養和素質,邏輯能力啥的倒是更為上一層的事情。整天想好的算法和架構是沒有用的,你知道當你跟產品經理說解了半天的bug是因為少了個分號的時候,產品經理心中鄙視的是多么的波濤洶涌么。
如果連這些代碼基本的細節都不能注意的話,談何其他呢
2.尊敬每一個人就像尊敬代碼一樣
很多程序員是傲嬌的,覺得產品就是自己做出來的,其他的人都是輔助的。所以很多程序員心里是看不上產品,測試的,也就造成很多溝通障礙。
首先上面這種人一定一輩子只能寫代碼,哪怕技術再牛。
我不太認同寫代碼只能寫到30歲,但是程序員30歲之后,要想有更大的發展,那么做團隊管理,要么做技術咨詢,才能讓自己的能力和積累的經驗擴大化,那么這個時候,卓越的溝通能力往往成為關鍵。
3.用經驗堆砌出你的產品技術全局觀
這個就涉及到架構方面,產品經理提出需求,不僅僅想聽到的是這個需求可以做還是不可以做這么簡單,而是如果可以做,那么開發成本是怎樣的,會對目前的系統產品模塊造成哪些影響,有哪些的risk,如果不可以做,有沒有好的替代方案或者簡化方案。
如果在需求評估的時候,PM可以得到這些答案,一定會跪舔你的
當然,另一方面,如果在前期評估中,這些都沒有想到的話,后期造成的種種后果也是需要程序員自己承擔的。
4.做好情緒管理
理論上,程序員都是冷靜的。但是現實中,情緒沖動的也是蠻多的,我不知道這樣的性格會對寫代碼有何影響,但是因為情緒影響了判斷就不好了,例如因為需求反復修改就索性說這個代碼實現不了這種事情,終究會對自己的信譽造成很大影響的。這種事情我經常遇到。。。
5.技術要做到精益求精
編程語言那么多,多語言的程序員雖然搶手,但是如果是半瓶水的水平,估計也是沒人愿意要的。
現在程序員非常多,是因為這個行業入門的門檻非常低,也就造成行業的水平參差不齊。做一個網站很難么,找個現成的框架,懂點數據庫,建個數據表,前端再找個現成的模板,修修改改一個網站就出來了。
但是滿足這樣就完了?那么水平可能永遠就是這樣了,其實這其中每一個點都是可以研究的很深的,比如網站的大數據存儲,如何提供程序并行運行的效率,,未來計算機行業的技術分工會越來越細,任何一個方面的專家都是相當有用的
6、職業規劃,其實你沒的選
聽一個前輩講,自己也對職業也很迷茫過,后來索性去創業了,但是失敗的一塌糊涂,最后才明白,自己最會的還是寫代碼,最懂的還是Java,有時候其實你沒的選
7.Stay hungry ,Stay Foolish
技術是永無止境的,好的程序員必須保持對于新的技術敏感度,保持學習的熱情
同時看書學習可以更多的得到思維模式,可以在最快的時間發現問題的所在
如果沒有好的思維模式,很多程序員遇到需求了,先百度,看看有沒有相似的代碼,遇到bug再去百度下,看看別人是怎么解的,這種永遠只是碼農而已
聽說一本好的程序書籍至少要讀12遍才能理解。
優秀程序員的行為:
- 拿到任務,就開始仰望星空或天花板上那盞高懸的電燈棒,狀如老僧入定
- 忽而皺眉,忽而展顏一笑,忽而手舞足蹈,忽而在紙上指指戳戳,忽而口中念念有詞,忽而長吁……感覺有點神經病啊
- 桌子上擺的是代碼大全、設計模式、敏捷實踐之類的書籍,并且沒有灰塵
- chrome或firefox的書簽欄里分門別類,類別多于10個,8個以上是技術相關的
- 容不得破窗戶,看見別人的爛代碼就想改過來
- 隨手就能在白板上畫出軟件的流程圖或者時序圖……
- 項目做完了,別人在打游戲、看視頻、忙著回復QQ、向剁手族前進,他在想:這樣重構好呢,還是那樣……
- 你發現他總能說出些你不知道的技術來……
- 看這廝的代碼比看你自己的還好懂……
- 老得你叫他吃飯……
普通程序員的行為:
- 拿到任務就開始噼里啪啦敲鍵盤,一天寫了好幾千行代碼
- 沒事兒就被測試MM叫過去溝通……
- 都早上10點多了還想著昨晚的球賽,10點半就琢磨中午要吃拉面、扯面、刀削面、牛肉面、旗花面、臊子面、窩窩面還是炒細面……
- 過了一陣子,看到自己的代碼,感到很驚奇,認為是別人寫的……
- 回家就看電視、打游戲、看球賽
- 周一上班不知道要干啥,遲遲進入不了角色
- 哇,能Run啦,搞定啦
- 這誰寫的代碼,這么爛……算了,管它
- 問別人問題的時候多,別人請教你的時候少
- 世界上最遙遠的距離不是生與死,而是你親手制造的 BUG 就在你眼前,你卻怎么都找不到她……
總結
- 上一篇: CM,CDH 修改迁移元数据库
- 下一篇: HugeGraph Server/Hub