如何成為一名真正專業的程序員

jopen 9年前發布 | 6K 次閱讀 程序員

英文原文: What It Really Takes to Be a Professional Programmer

要想成為一名專業的程序員,僅僅會寫代碼是不夠的。從團隊合作去解決問題到版本控制,你還得具備其他關鍵技能的工具包。當我們詢問相關的專業開發人員,那些必備的關鍵技能都是什么的時候,下面是我們了解到的情況。

關于如何學習代碼,各種聲音很多,然后很多人就被誤導為成為專業開發人員懂得一門編程語言就夠了?!呵呵,就像其他工作一樣,光會一個技能那是遠遠不夠的。如果你想要成為一名開發人員,下面就是一些你必須要掌握的最重要的技能(編碼這個要求就不贅述了,這太理所當然了)。

學會并擅長溝通

如何成為一名真正專業的程序員

雖然一些媒體上面將編程描述為一種“閉門造車”的行為,但事實上,它涉及到很多與人溝通和協作的事宜。如果你工作于一家公司,那么你會成為開發團隊的一部分,并且得和其他人交流和合作。

然而,Jeff Bargmann,Lifehacker 最喜歡 Fences 和 Bins 的開發人員強調,知道如何清晰可信地說話和寫作對于那些獨立的開發人員甚至更加重要:

學校課程一點也沒有教我們學習必要的書面表達技巧。(就教我們編程,對不?)在你的職業生涯中——如果你以后想繼續晉升的話——那么你需要花大 量的時間用于清楚簡潔、令人信服的溝通交流——從你需要發電子郵件給同事、經理、客戶/合作伙伴、甚至有一天可能是高管僅這個方面想,就足夠說服人的了。 但是由于我們開發人員習慣于比其他人做事快兩倍(我們都很聰明,對吧?!),所以令人沮喪的是,這樣會導致需要多花上兩倍的時間才能順利地表達清楚。而作 為一名獨立的開發人員,用一句話來說就是“不在沉默中爆發就在沉默中滅亡”——再怎么難也必須掌握這重要的技巧。

Jeff 也針對溝通技巧提出了一些建議:

要么跨過這個障礙,要么在過程中學習,總之你需要的是真實的社會實踐(我們要想擅長編碼也是如此!)。可以試著發布一些簡短的文章、大聲閱讀電子郵件、勇于面對批評教育,創建適合自己的經驗教訓。

如果你現在還沒有機會加入到一個團隊中一起開發,那不妨考慮一下一些高校的溝通、演講和寫作班輔導。此外還有各種課外的網絡資源供君采擷。

提升解決問題的能力

如何成為一名真正專業的程序員

很多開發人員說了解一門編程語言只是編碼的一小部分。解決問題則是另一個重要的技能,而這也是那些新手開發人員所缺乏的。如果將軟件開發比作是一 個巨大的謎團:那么你需要弄清楚如何將你的一個程序片段連接到另一個上面,而這一過程往往并不簡單。有讀者 Jsimon 作了如下解釋:

我有碰到過那種據悉已經完全掌握整一門編程語言所謂的“牛人”,但是想出來的解決方案居然只能往廢紙簍那里扔。最好的例子就是在大學中,那個時 候我們正在開發一個項目。有人要我來看看某部分代碼,因為這片代碼的負責人不能將之連接到服務器的接口上了。原因是他竟然沒有設置端口。所以說,解決問題 的能力很重要。

不過,解決問題確實是一個很難學習的技能。實踐是其關鍵所在。可以先拿小項目試手,比如說開發一個便簽 app、計算器,只要你感興趣的都可以。在開發過程中,你需要關注代碼背后的邏輯,學會像計算機一樣思考,而不僅僅只是理解這門編程語言。

事先學習計算機的工作原理也是有幫助的。這個技巧來自于 Jacobm001 這位讀者:

解決問題是我們要做的最多的一部分。計算機的思維和我們是不一樣的,你往往需要重新學習其思考問題的方式。為了提高效率,你需要真正地理解計算 機是如何運作的以及是如何處理 CPU 信息的。我個人非常討厭計算機編譯,不過幸虧我學過有關于這方面內容的課程。只要你稍微懂點編譯知識,往往能想出更棒的點子來正確地實現一些事情。

正如 Jsimon 所說,既知道如何寫代碼又懂得解決連接件的相關問題是我們學習的關鍵。一旦你真正邁進了開發程序的大門,那么就需要專注于形成一種系統的方法來解決你面臨的各種問題。

起來,到了學習版本控制的時候了

如何成為一名真正專業的程序員

如果是在大學里,你可以和編程課上的團隊一起合作開發項目。WindowsSVN 和 GitHub 是很多開發團隊常用的用于共同創建和更新開源 app 的兩個工具。而且這兩工具沒有限制,誰都可以使用。但是企業更青睞于 Subversion 和 Apache SVN。所以在開始新工作以前,你最好先了解一下這些系統是如何工作的,這樣能夠讓你在那些新隊友面前“一鳴驚人”。學習工具是需要一定的時間和實踐的, 但是如果你一點也不懂的話,那就會遠遠落后于其他人的進度。

真正掌握系統的唯一途徑是實踐。如果你還在大學中,學習這些工具有助于你進入以團隊為導向的大型課堂項目中。如果是這種情況,可以要求使用 GitHub 或其他形式的存儲庫,即使老師并沒有對此提出要求。如果你是自學的,那先找個合作的團隊,既可以通過 GitHub 上的項目,也可以找一些你希望與之工作的同伴共同開始一個新的項目。

開發學習的技巧

如何成為一名真正專業的程序員

技術就像歷史的巨輪總是在不斷向前翻滾,開發人員對于知識的態度也應該如此。如果你想要繼續留在相關的領域中,關鍵是要跟上發展的腳步,不斷地更新編程語言、軟件和硬件技術。讀者 Wakers01 對此的看法是:

……你需要不斷地學習新的語言、技術和工具。你必須花心力去研究新的技術,分析它的優點和缺陷,并迅速消化。請注意,這里我之所以用“消化”, 而非“學習”是因為,我想表達的意思是,你必須得充分吸收、理解,并將這個新的東西融入到你的技能系列中,而不僅僅只是獲得一些有關于如何工作的新知識。 只要你能保持這種學習新事物的勁頭,那么你一定會越來越強。

我們還可以通過一些技巧快速地學習技能。例如,如果你能先花點時間去了解內存的工作原理,那么你將更高效地使用它們。學習還包括理解,所以除了上 面提到的溝通能力,專注于提高閱讀理解的能力也是不可或缺的,這個可以通過閱讀相關技術文檔和其他書面資源獲取。好記性不如爛筆頭,有一個良好的筆記系統 有助于你迅速找到你所需要的參考信息。

從基礎開始:將學習看作是一個你應該重點掌握的技能。一旦你這樣做了,你就能更快地跟上技術發展的腳步,在此領域內超前于你的競爭對手。

編程其實還包括很多內容,而不是你原先想的只需要坐在計算機前寫代碼就 ok 了。如果你比其他人早明白這一點,那么你將會有更多的機會掌握一些雇主和客戶需要你知道的關鍵技能,領先于他人一步。

譯文鏈接: http://www.codeceo.com/article/how-to-professional-programmer.html

翻譯作者: 碼農網 –  王國峰

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!