成為優秀高階程式設計師的10個要點

2015-01-10    分類:程式設計師人生、首頁精華8人評論發表於2015-01-10

本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃

What

軟體工程師的職業生涯要歷經以下幾個階段:初級、中級,最後才是高階。這篇文章主要是講如何通過10個步驟助你成為一名高階軟體工程師。

Why

  • 得到更多的報酬!因為你的薪水會隨著你水平的提高而增加
  • 提升你的職業生涯。成為了高階軟體工程師之後,就可以朝著架構師、團隊負責人、CTO等職位前進
  • 歷經更大的挑戰。隨著你的成長,各種影響力也會提高。

How

軟體工程是很難的。這一行業在不斷變化中,所以你必須緊跟它的步伐。你必須不斷地投入時間和精力,因為你需要學習的東西總是比你能吸收的多。很多新手工程師甚至都不曾意識到他們如果想要攀登行業的高峰,要學習的東西、要付出的努力得有多少。不過,不用擔心,下面我將指出一條“明路”有助於你成為一名高階軟體工程師。

image

步驟0:選擇你的道路,堅持下去!

做一件事,就要把它做好。——Doug McIlroy《Unix Philosophy》

關於這一點,我真的是強調得不能再強調了。選擇好你將與之並肩作戰的專業和技術堆疊非常重要。堅持不懈,不要分心。至於應該怎麼做請看下面:

  • 選擇專業。也就是你想做的事情。例如:Web開發、移動開發、DevOps等。
  • 選擇專業中的實用技術。例如:如果你選擇了Web開發,那你就需要在Ruby on Rails、Python、Django,JavaScript和MEAN等之間做斟酌。如果你選擇的是移動開發,則需要在iOS和Android等之間做出選擇。
  • 堅持下去,直到掌握這門技術。

我的意思並不是說除了你的主要專業以外,你就不必熟悉其他的了。那種首屈一指的軟體工程師通常對其他的程式語言和技術都非常瞭解,當然首先他們對他們自己的主要專業瞭解得非常剔透。當你確定好主要專業之後,接下來要做的就是學習,閱讀所有相關的書籍、練習各種必要的技能,這可能需要很多年的時間。但是千萬不要氣餒,一步一個腳印,一個一個攻克難關,量變才能達到質變。關於技術,我的推薦是:Ruby on Rails之於web開發,iOS之於移動開發。這是我是以一個過來人的身份告訴你的寶貴經驗。不過我還是想補充一句,可能每個人的口味不同,我的經驗也許並不適合你,你完全可以選擇其他的技術,不過這樣的話,你要閱讀的書籍可能就和我的推薦不一樣了。

步驟1:奠定基礎

《The Pragmatic Programmer 》對於我們掌握軟體是一個很好的起點。該書總結了高水平的實踐探索。這與我們使用的是什麼語言/技術無關。無論你選擇的是哪種技術堆疊,其主要原理都是一樣的。

步驟2:掌握你的程式語言

你以後每天需要面對哪種程式語言取決於你今天選擇的技術。但是程式語言總有主次之分。例如,Ruby on Rails開發人員主要使用Ruby,AngularJS開發人員大多數時間用的是JavaScript。確定程式語言、掌握程式語言對你的職業生涯發展至關重要。因為以後你每天都會使用它!推薦你先閱讀有關書籍。

《The Swift Programming Language》之於Ruby開發人員,以及《Programming Ruby 》之於iOS開發人員。

步驟3:學習框架

選一個,然後好好學習:

對於Rails開發人員——《Rails Tutorial 》by Michael Hartl

對於iOS開發人員——《iOS programming: The Big Nerd Ranch Guide》

步驟4:掌握文字編輯器/ IDE

再選一個,然後堅持不懈地掌握這個工具。如果你選擇的是VIM,那就要成為它的主人,讓它往東就往東。

步驟5:使用版本控制系統

我建議使用Git。下面是我喜歡的資源:Pro git——免費的線上電子書,詳細講解了git的各個方面。

步驟6:做好測試驅動開發

將TDD新增到你的技術堆疊中。養成每天TDD的習慣。高質量的程式碼源於良好的測試。

對於Ruby on Rails開發人員——《Rails Test Prescriptions》

對於iOS開發人員——《Test Driven iOS Development》

步驟7:將重構養成習慣

隨著你不斷新增更多的功能,程式碼庫也會越來越複雜。為了保持程式碼庫的可管理化,你需要重構。如果你不重構的話,你很快就會進入兩難境地——即使是做很小的改動都很困難、bug沒法避免、沒有人願意處理這個凌亂的程式碼庫。重構能讓你的工作更加輕鬆。事不宜遲,趕快養成重構的習慣吧。下面這本好書能教你該怎麼做:《Refactoring: Improving the Design of Existing Code》by Martin Fowler

步驟8:學習軟體架構

根據你上面選擇的堆疊,再學習相關的架構。我推薦Martin Fowler寫的《Patterns of Enterprise Application Architecture》一書。

步驟9:展示命令列的力量

剛開始接觸命令列的第一感覺就是望而生畏。但是,一旦你學會如何使用,這將大大提高你執行一些基本任務的效率。而這本身就能讓你成為一名更好的開發人員,因為你能在更短的時間裡實現目標。然後你就能進入下一個水平。使用shell自動執行常見任務,建立自己的dotfiles。如果你使用的mac或者Linux發行版,那麼學會shell。下面這本書由Mark Bates所寫的書挺不錯:《Conquering the Command Line》

步驟10:code code code!

只有不斷地練習學到的知識,你才能真正掌握它。

總結

眾所周知,成為一名高階軟體工程師是非常難的。這需要大量的時間和精力。不同的人他們的學習速度也不盡相同,但是平均來說,大約需要10年時間才能成為一名可靠的高階開發人員。你付出的各種投資最後必將給你帶來巨大的回報。軟體工程師的錢途很美好,其就業市場的需求一直居高不下,薪資水平也根據經驗程度在提高。這是一個快速增長且相對較新的領域。軟體工程師的每一天都在面臨挑戰:挑戰改變人們的生活。來吧,各位軟體工程師,首先挑戰成為一名高階軟體工程師吧!

譯文連結:http://www.codeceo.com/article/10-steps-to-become-a-senior-software-engineer.html
英文原文:10 Steps to become a Senior Software Engineer
翻譯作者:碼農網 – 小峰
轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]

相關文章