新手程序員應該知道的7件事
英文原文:7 things every new programmer should know
資深軟件開發人員分享的一些關于專業化編程的經驗和教訓,這些經驗教訓都是經過多年歷練總結得出的。
如果你剛進入專業的軟件開發世界,那么得益于在計算機科學和編程方面的教育和/或培訓,你已經具備了一定的知識。但是真正的開發業務工作又和在學校編程不同,這是你不可能從大學課程或編碼學校中學會的東西。
為了了解新手程序員需要知道哪些內容,我咨詢了一些經驗豐富的編碼老將,這些“老”將全部有著至少十年(有的甚至是幾十年)作為專業軟件工程師 的工作經驗。我的問題是,如果他們現在回過頭去,哪些技能和知識是他們第一次以寫代碼為生的時候就希望能夠掌握的。無論你是一個剛畢業剛開始自己第一份開 發工作的大學生,還是年長的轉業到編程領域的工作者,歡迎閱讀這 7 條專為新手程序員總結的建議。
1. 了解底層系統
軟件開發的一個重要組成部分是,了解編程語言。但是,正如有些人建議的那樣,開發人員還需要了解堆棧下面是怎么回事。
“很多語言抽象化了系統層正在發生的事情,這種抽象是很有用的因為它讓開發人員在大多數時間里變得更高效。”Pete Bul,Acquia 公司的一位支持工程師說。“但是,當你碰到一個障礙,一個特別堅實的 bug,需要更深層次地了解內部究竟發生了什么的時候,那么了解底層系統就是一個很有用的技能,可以讓你調試進程,查看系統調用,并且真正意義上看到代碼 片段與系統的其余部分的交互,”他在郵件中這樣寫道。
無獨有偶,Robert Douglass,Customer Satisfaction with Platform.sh 的副總裁告訴我,“當我剛開始編程的時候,對于計算機我有很多不明白的地方。文件系統,網絡連接以及內存機制就是三個明顯的例子。不了解這些,意味著我可 能會不知道一些我想要呈現的編程結構的目標。”
2. 知道命令行工具
作為一個開發人員,你必然需要將大量的時間花在 IDE 或代碼編輯器上。但是,知道命令行這個工具有助于你更便捷地完成工作。
“有時候,你可能會處在一種需要緊急完成任務但工具卻非常有限的情境中。”一位已有 20 年工作經驗,并希望能夠匿名的資深程序員告訴我, “知道 shell 就要像呼吸一樣自然。掌握類似于 find、comm、diff、vi/vim、sed、awk 等工具。知道如何用命令行來查找文件等等,都可以在你寫腳本的時候為你減負。”
Bull,是一位先用微軟工具,然后逐漸轉移到 Linux 的程序員,對此表示贊同:“了解命令行的來龍去脈以及掌握所有的實用程序真的很重要。這是我經歷過的切身體會。”
3. 調試器是我們的好朋友
程序員很大一部分時間會涉及追蹤 bug。Dave Varon,Novartis 公司的一位生物信息學開發人員,著重強調了調試器的優點以及它是如何減輕了時間的初始成本。 “一定要掌握如何使用調試器!”他告訴我, “磨刀不誤砍柴工,事先不妨花個一兩天時間進行配置。如果沒有得到預期結果,那就調試:設置斷點,逐步調試代碼,特別要注意第三方代碼。這可以避免很多挫 折,也能讓你更好地了解那些只能通過閱讀別人的代碼才能知道的編碼知識。”
4. 學習編寫測試
一些開發人員認為,單元測試,也就是編寫測試來驗證小單位代碼是否在做應該做的事情,是非常關鍵的。Richard Handloff,Strategic Power Systems 的數據庫開發人員,就是其中之一。 “我認為我曾給那些想要學習編程的人提的最佳建議就是,要學習編寫良好的測試并且學習在進程早期就開始編寫測試,”他在回信給我的郵件中這樣寫道。
5. 積極應對變化和學習新系統
大家都知道,現在的技術變化很快。這不僅適用于深受我們喜愛的消費品,對于程序員使用的底層系統、語言和工具同樣如此。
Adam Wulf, Milestone Made 公司的移動開發者和創始人建議,要積極應對變化,并始終保持在技術的前沿。 “現在,我的建議是每隔 4 年就得計劃去學習基本上全新的技術堆棧,”他說, “好的基礎知識永遠是可用的,但是你每天要用的工具和技術差不多每隔 4 年就會完全不同。”
“項目永遠不可能只用一種語言和一種框架,”一位不愿意透露姓名的開發人員說, “你不能吊死在一種技術上,要習慣于從一個項目到另一個項目的轉移,一種語言/技術到另一種語言/技術的擴散,”他寫道。
6. 良好的合作
盡管程序員習慣于戴上耳機獨自工作,但你依然要與其他人合作。Ben Miller,Sinclair 數碼公司的 CTO,強調了團隊工作對于事業成功的重要性。 “大項目往往意味著大量活動組件的碰撞,需要處理組件如何結合和劃分的問題,如果你不小心的話,可能會導致難以預測的工程問題。”他在電子郵件中寫道。 “在優化算法之前,和團隊一起確保沒有問題是交叉的,可以讓每個人要解決的問題都變得簡單起來。編碼是一項團隊游戲!“
Varon 重申了人際交往能力的重要性,他說:“如果你通過再次查閱 API 和調試,依然不能弄清楚問題的根源,那就應該尋求幫助。哪怕你覺得你寫的是杰作,也并不意味著沒有廢話或者不能更好。要和同事融洽相處。有時候只需要大聲 地說出這個問題或許就會有靈光一現。“
一些匿名人士還分享了類似的想法,比如說成為團隊成員。 “提升團隊凝聚力,樂于助人,即使是一些瑣碎的工作,”他說。但是,在這種情況下,他警告說,“一定要有一個度,不要撿了芝麻丟了西瓜,忘記了自己的本職工作。”
7. 不要害怕失業
Miller 有一個特別有趣的忠告。 “跳槽就是晉升,”他告訴我。 “尋找解決問題最簡單的方法,可以讓你的代碼彈性化和免于維護,這樣你的上司就會交給你更多的事情。他們甚至會要求你將你的做法教授給別人,“他解釋說。 “總而言之,一味地擔心失業可能會阻礙職業生涯的前進。”
-
譯文鏈接:http://www.codeceo.com/article/7-things-new-programmer-know.html
翻譯作者:碼農網 – 小峰