做個專業的程序員

看了孟巖的文章《程序員必須走向專業化》,有點感想。

真正專業的軟件工程師, “專業”,是指具有規範化的價值觀和知識體系,規範化的工作習慣和職業紀律,職業化的工作作風和流程,當然也具有相應的技能和經驗。在中國,很有一些程序員,以爲自己技術高,就應該拿高薪,就應該牛,就可以不要紀律。他們很少問自己,究竟給團隊帶來什麼價值,究竟給企業帶來什麼價值,究竟給客戶帶來什麼價值?

中國的程序員們就不應該整天琢磨着要趕哪個新,逐什麼潮,一會兒面向這個,一會又面向那個,左一個語言右一個框架地折騰着,而是應該踏踏實實在專業性上下功夫。

企業寧要專業的工程師,不要不專業的“牛人”。專業性保證了一個程序員的技能和工作能夠爲組織帶來效益,而他們只會爲這種效益付酬,不會出於對“大牛”的敬仰之情而主動上繳貢銀。而且,他們也相信,只要一個人專業化程度足夠,技術和經驗上的不足是容易在實踐中彌補的。

記得近兩年有一句很流行:“老大,咱沒這麼幹過,咱不專業啊”。雖然是笑話,但有此可見這年頭做什麼事情都得專業,否則會貽笑大方。

但什麼是專業的程序員?老外比較注重工程師的專業精神,舉個例來說,如果事情交給這個工程師做,能高效、保質、按時的做出來,而且做出來的軟件很專業,能很好的與人合作和溝通,配合測試組或其他開發組共同完成任務,爲團隊和企業創造價值,達到企業追求的目標,就是專業的程序員。概況起來,我認爲專業的程序員必須:

1.       專業的企業精神(做事高效負責,規範化的價值觀和知識體系,規範化的工作習慣和職業紀律,職業化的工作作風和流程)

2.       編程很專業(技術精湛,經驗豐富,有獨立分析問題和解決問題的能力)

3.       做事很專業(善於溝通,不論是和客戶、同事、項目經理、新手,還是老手,樂於和他人合作,具有團隊精神)

 

與之相對應的就是不專業的程序員:

1.       無企業精神(個人主義嚴重,覺得自己技術特牛,貢獻特大,認爲企業給的薪水少,幹活不該賣力,項目經理安排的任務故意拖拉不服從,上班很晚到等)

2.       編程不專業(沒寫過幾行代碼,沒做過什麼大系統,就認爲自己技術特精湛,其實寫的代碼卻不堪一擊;沒工作幾年就認爲經驗特豐富,沒碰到過多少客戶和生產上的具體問題就認爲有豐富的分析問題和解決問題的能力)

3.       做事不專業(難於溝通和合作,沒有團隊精神和集體精神,不是本着解決問題的態度和學習提高的態度,而是本着耍弄技巧、高人一等甚至刁難別人的態度,和客戶沒溝通點、和項目經理溝通陰奉陽違,對新手好爲人師,對老手不屑一顧等等)

    文章說到中國的程序員效率比老外差7-8倍,原因在於中國的程序員不專業,而老外程序員專業化程度高。我認爲這只是一個原因,即程序員的專業素養,這只是個體原因;與之相比更嚴重的問題在與團隊和管理。中國程序員往往單拿出來技術“牛人”很多,但放到一個團隊裏面整體戰鬥力非常差,這是爲什麼?這是我們需要思考的問題。

幾乎每個團隊都有幾個專業的程序員,即“主程序員”,也有很多不專業或即將專業的程序員;有剛畢業朝氣蓬勃的白紙小夥,也有業務經驗豐富但默默無聞的老黃牛,有滿身帶刺的所謂技術“牛人”,也有不大伸張的真正“牛人”;項目經理如何管理和激勵團隊成員,揚長避短,使團隊發揮最大戰鬥力,如何幫助團隊成員成長,這是項目經理需要思考的問題。

而從程序員自身來說,則應當向專業化的方向努力,無論你的職業方向是管理、技術、還是技術管理,這些都是必須的。因爲說到底,只有你做的專業,只有你做出來的東西專業,才能讓人信服。



:很多人談到職業素養問題,《程序員》雜誌刊登的程序員職業素養: 

1.       學習和分析能力。每個團隊都在成長,作爲程序員這個羣體就更需要“與時俱進”。尤其是在開發這個知識日新月異的行業裏,同時分析能力是必不可少的。像本案例中,如果沒有在充分了解客戶需求的基礎上的精準分析,很難想像最後的結果。;(調查中71.15%人認爲,學習能力是程序員基本能力中比較重要的一條。另外,此次調查中57.69%的被訪者認爲,在技術方面有不同意見時,處理妥當的程序員必要的修煉之一。相信這個案例爲我們提供了新的思路。

2.       與內外保持良好溝通,永遠是成功的保證。及時彙報、溝通進展也可以在第一時間發現自己的偏差。在改bug問題上,有些小bug,程序員可能比較容易就修改了,但有些比較難修改的bug,如果自己解決不了,應該像同事或者專家請教,甚至組織小組討論,但有些程序員處理這種情況時,往往是自己琢磨半天,改不了,然後就放那去做別的事情了,等過幾天項目經理問起來時,才承認自己改不了,這種現象應該最大程度地避免。畢竟,相差一度兩條線頂點的距離會在不限延伸後相差不限大。(59.62%的被訪者認爲“彙報項目進展時明確及時”是程序員內在修煉的重要組成)

3.       產品意識。良好的產品意識可以大幅度提高開發效率。某次產品改版中界面都重新修改過了,因爲有2個程序員專門負責編程匹配部分,而其中一個就非常具有產品意識,他用.NET把UI原形都畫了出來,在公司內部組織討論,讓最後的客戶環境和界面都非常優秀。

4.       團隊意識。作爲一個新人要向老人請教學習,作爲一個老人要把自己的心得、收穫、技能等與新人分享,也就是要帶新人。知識的分享是知識學習中一個最有效的方法,尤其是在程序員這個行當裏;

5.       對於編碼規範和文檔規劃是毫無疑問必須要遵守的。(此次參加調查的程序員中有80.77%認爲編碼規範是程序員內在修煉的畢選項。、68.59%認爲文檔規範是修煉的必要內容。)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章