新入行程式設計師須知的8件事
本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃!
今年已經是我成為軟體工程師的第5個年頭了。關於下面這些事情,我常常想,要是我剛入這一行時就知道的話那該多好,能少走不少彎路,取得的成績也肯定比現在高。唉,往事不可追,所以在這裡我想分享給大家,尤其是剛進入這一行的新手,請仔細考慮自己是否明白以下這8件事情。
1.良好的溝通能力。
工程管理是一個團隊活動,哪怕有時候這個團隊只有你一個人。由於每時每刻都有那麼多事情需要相互瞭解,所以溝通就成為了最大的問題。90%的工程管理指的就是溝通。比如,我們得向人解釋bug是什麼?如何有效診斷?如何向大家完整地表述自己的複雜想法?溝通是專案成功最關鍵的因素。無效的溝通只會導致大量時間和精力的浪費。
2. 電腦科學的基礎。
要想作為成為一名優秀的程式設計師,電腦科學的基礎是必不可少的,但是,老實說,電腦科學和計算機工程真是兩碼事。不過要想成為優秀的工程師,就得有這個好奇心喜歡專研計算機的發展趨勢和計算機的工作原理,包括深層次地瞭解新趨勢可能存在的誤區,以及一些替代性的解決方案,這樣才有和其他工程師交流的資本。演算法,除非是在面試中,其他時候用處不大。我的意思是,大多數情況下有類庫就足夠了。不過這並不意味著可以完全無視資料結構和演算法。此外,推理程式碼和優化仍然很重要,尤其是在規模化的時候。
3.學會閱讀程式碼。
寫程式碼的重要性不用我說大家都知道,但是關於閱讀程式碼這回事恐怕沒幾個人聽說過。這可能是最值得掌握的技能之一了。關於這一條,到目前為止,我也在努力達到目標的過程中。話說,要是能有透過複雜現象看清事物本質的功力,那就離成為一個優秀工程師不遠了。
4.學習UNIX和Linux。
這倆傢伙幾乎無處不在,所以很值得學習。它們能讓我們通過命令列快速操縱計算機。如果有需要還可以安裝Linux軟體包和設定伺服器。還能通過vi快速編輯(沒錯,就是vi。我本人就是Emacs使用者)。還有一點很重要的是,UNIX實用程式能顯著節省時間。此外我們還需要知道如何使用sed、grep、find、pipes,以及使用基本的bash/zsh寫程式碼。
5.瞭解文字編輯器。
軟體工程師都是玩轉文字的高手。即便是現在已經被當做老古董的Emacs和vi,仍然是工程師需要學習的編輯器。兩者至少得精通一個,因為它們的理念不同,而瞭解其中之一不但能讓你程式碼寫得更快,而且還不會被任何一種特定的環境所禁錮。不要僅僅是使用編輯器,要讓它乖乖降服於你,自動化,符合自己的按鍵習慣,寫出解決問題的指令碼。
6.自動化思維。
因為複製/貼上就是一種自動化模式,所以我們完全可以編寫指令碼來實現。而隨機寫入指令碼會讓程式設計更為有趣。也許只用30分鐘就能搞定一天枯燥乏味的工作。自動化能縮減過程,也能讓我們學到不少新的東西。
7.瞭解版本控制。
我喜歡幹什麼都用git。可惜,這麼棒的點子,我竟然在學校的時候根本不知道,真是情何以堪。版本控制能讓我們可以放心大膽地折騰程式碼,因為要是有什麼行不通的地方,恢復原狀或者取消鍵入就可以了。It’s so easy!
8.自己搞個小專案。
這非常鍛鍊人,哪怕有時候會覺得筋疲力盡,恨不得撒手不幹。由於我們的產品是抽象的,不像造大橋那樣能看到真真切切的成品,所以我們只能不停地編碼,沒勁透了。想不想專心致志搞一個自己中意的專案,像對待自己的孩子那樣,儘自己的全力做到最好,在這個過程中,還能學到新知識,學會運用工具,而在工作中是不可能有這樣的機會的?答案當然是YES了。
我自己也不是每次都能做到上面每一點的,但是我依然希望,在我剛剛跨入這個領域時,能有人將這些肺腑之言告訴我,我會真心不勝感激。
譯文連結:http://www.codeceo.com/article/8-things-new-programmer-know.html
英文原文:What I Wish I Knew When I Became a Software Engineer
翻譯作者:碼農網 – 小峰
[ 轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]
相關文章
- 新入行程式設計師應知的十個祕密行程程式設計師
- 新入行程式設計師必知的十個祕密行程程式設計師
- 寫給新入行的程式設計師小朋友程式設計師
- 有理想的程式設計師必須知道的15件事程式設計師
- 新程式設計師最想要的10件事情程式設計師
- 成為程式設計師之前必知的七件事程式設計師
- 程式設計師可以在週末做的8件事!程式設計師
- 程式設計師可以在週末做的8件事程式設計師
- 優秀程式設計師應該做到的8件事程式設計師
- Swoole 程式設計須知程式設計
- 程式設計師必須掌握的五個seo知識程式設計師
- 程式設計師應知道的12件事程式設計師
- 最令程式設計師沮喪的 10 件事程式設計師
- (轉)程式設計師應知道的12件事程式設計師
- 網路遊戲程式設計師須知 UDP vs TCP(轉)遊戲程式設計師UDPTCP
- 讓程式設計師失去程式設計激情的5件事程式設計師
- 程式設計師讀書這件事情程式設計師
- 新手程式設計師須知30個技巧!少走彎路程式設計師
- 程式設計師最應該知道的20件事程式設計師
- 最讓程式設計師懊惱的10件事程式設計師
- 想入行it能做什麼?程式設計?新媒體?程式設計
- 程式設計師須知,Python匯入模組的幾種姿勢!程式設計師Python
- Java程式設計師須知的七個日誌管理工具Java程式設計師
- Java程式設計師必須掌握的8大排序演算法Java程式設計師排序演算法
- 程式設計師必須克服的十大程式設計禁忌程式設計師
- 程式設計師必知的8大排序(java實現)程式設計師排序Java
- 老程式設計師應該記住的 5 件事程式設計師
- 成為程式設計師前需要做的10件事程式設計師
- 程式設計師應該知道的97件事程式設計師
- JAVA程式設計師“黃金5年”必須要掌握的知識技能Java程式設計師
- 強烈推薦:程式設計師必須懂的資料庫知識程式設計師資料庫
- 獨立開發者入行之前應該知道的8件事
- 一個28歲程式設計師入行自述和感受程式設計師
- 我是為何下定決心入行程式設計師的行程程式設計師
- 程式設計師的知識管理程式設計師
- 每個程式設計師都必須遵守的程式設計原則程式設計師
- 程式設計師的8個注意程式設計師
- Java程式設計師須知:分散式微服務為什麼很難?Java程式設計師分散式微服務