新手程式設計師應該知道的7件事
本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃!
資深軟體開發人員分享的一些關於專業化程式設計的經驗和教訓,這些經驗教訓都是經過多年曆練總結得出的。
如果你剛進入專業的軟體開發世界,那麼得益於在電腦科學和程式設計方面的教育和/或培訓,你已經具備了一定的知識。但是真正的開發業務工作又和在學校程式設計不同,這是你不可能從大學課程或編碼學校中學會的東西。
為了瞭解新手程式設計師需要知道哪些內容,我諮詢了一些經驗豐富的編碼老將,這些“老”將全部有著至少十年(有的甚至是幾十年)作為專業軟體工程師的工作經驗。我的問題是,如果他們現在回過頭去,哪些技能和知識是他們第一次以寫程式碼為生的時候就希望能夠掌握的。無論你是一個剛畢業剛開始自己第一份開發工作的大學生,還是年長的轉業到程式設計領域的工作者,歡迎閱讀這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
英文原文:7 things every new programmer should know
翻譯作者:碼農網 – 小峰
[ 轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]
相關文章
- 程式設計師最應該知道的20件事程式設計師
- 程式設計師應該知道的97件事程式設計師
- 每個程式設計師應該知道12件事程式設計師
- 程式設計師應知道的12件事程式設計師
- 每位網頁設計師新手都應知道的10件事網頁
- (轉)程式設計師應知道的12件事程式設計師
- 關於 Unicode 每個程式設計師應該知道的 5 件事Unicode程式設計師
- 新手工程師需要知道的 7 件事工程師
- 老程式設計師應該記住的 5 件事程式設計師
- 程式設計師都應該知道的福利程式設計師
- 程式設計師應該知道的 13 個設計技巧程式設計師
- 每個Python新手都應該知道的程式設計技巧Python程式設計
- 優秀程式設計師應該做到的8件事程式設計師
- 『翻譯』每個程式設計師第一份工作前應該知道的10件事程式設計師
- 程式設計師最應該知道的一些事程式設計師
- 每個程式設計師應該知道的12個API程式設計師API
- Python 程式設計師應該知道的 10 個庫Python程式設計師
- 軟體工程師應該知道的9件事軟體工程工程師
- Java程式設計師應該知道的20個有用的庫Java程式設計師
- 有理想的程式設計師必須知道的15件事程式設計師
- docker – 你應該知道的10件事Docker
- 每個Android程式設計師應該知道的KotlinAndroid程式設計師Kotlin
- Java程式設計師應該知道的10個除錯技巧Java程式設計師除錯
- 程式設計師都應該知道的福利【必知必懂】程式設計師
- 前端程式設計師應該知道的 15 個 jQuery 小技巧前端程式設計師jQuery
- 軟體架構師應該知道的97件事架構
- 程式設計師應該讀的 7 本計算機書程式設計師計算機
- 新手Web設計師應該避免的 6 宗罪Web
- 程式設計師Windows上應該知道的軟體開發神器程式設計師Windows
- 每個程式設計師都應該知道的基礎數論程式設計師
- 程式設計師該知道的那些程式設計比賽網站程式設計師網站
- 成為優秀程式設計師需要知道的 15 件事程式設計師
- 每個程式設計師都應該瞭解的一件事程式設計師
- 設計師都應該知道的ICON知識
- 每個程式設計師應該知道的計算機網路知識程式設計師計算機網路
- 程式設計師越來越火了,程式設計師的發展你應該知道的一些事!程式設計師
- Java程式設計師應該知道的10個物件導向理論Java程式設計師物件
- 每個程式設計師都應該知道的 15 個最佳 PHP 庫程式設計師PHP