程序員到高級程序員的職業(yè)生涯要經(jīng)歷以下幾個階段:初級程序員、中級程序員、最后是高級程序員。
為什么要成為高級程序員?其實,很簡單。為了生活下去和日常生活開銷。人生下來就離不開,衣食住行,這些都離不開消費。因為你的薪水會隨著你水平的提高而增加提升你的職業(yè)生涯。成為了高級程序員之后,就可以朝著架構師、團隊負責人、CTO等職位前進。歷經(jīng)更大的挑戰(zhàn)。隨著你的成長,各種影響力也會提高。
怎樣才能成為一名高級的程序員,這個值得去思考?想到解決問題的辦法是關鍵。軟件開發(fā)過程中是很難的。這一行業(yè)在不斷變化中,所以你必須跟緊他的步伐。你必須不斷地投入時間和精力,因為你需要學習的東西總是比你吸收的多。很多新手工程師甚至都不曾意識到他們?nèi)绻胍实切袠I(yè)的高峰,要學習的東西、要付出的努力得有多少。不過,不用擔心,下面我將指出一條“明路”有助于你成為一名軟件工程師。
選擇你的道路,堅持下去!
做一件事,就把它做好。——Doug Mcllroy《Unix Philosophy》
關于這一點,我真的是強調(diào)得不能在強調(diào)了。選擇好你將與之并肩作戰(zhàn)的專業(yè)和技術堆棧非常重要。堅持下去,不要分心。至于應該怎么做請看下面:
選擇專業(yè)。也就是你想做的事情。例如:Web開發(fā)、移動開發(fā)、DevOps等。
選擇專業(yè)中的實用技術。例如:如果你選擇了Web開發(fā),那你就需要在Ruby on Rails、Python、Django,JavaScript和MEAN等之間做斟酌。如果你選擇的是移動開發(fā),則需要在ios和Android等之間做出選擇。堅持下去,直到掌握這門技術。我的意思并不是說除了你的主要專業(yè)以外,你就不必熟悉其他的了。那種首屈一指的軟件工程師通常對其他的編程語言和技術都非常了解,當然首先他們對他們自己的主要專業(yè)了解得非常剔透。當你確定好主要專業(yè)之后,接下來要做的就是學習,閱讀所有相關的書籍、練習各種必要的技能,這可能需要很多年的時間。但是不要氣餒,一步一個腳印,一個一個攻克難關,量變才能達到質(zhì)變。關于技術,我的推薦是:Ruby on Rails之于web開發(fā),ios之于移動開發(fā)。這是我是以一個過來人的身份告訴你的寶貴經(jīng)驗。不過我還是想補充一句,可能每個人的口味不同,我的經(jīng)驗也許并不適合你,你可以完全選擇其他的技術,不過這樣的話,你要閱讀的書籍可能和我的推薦不一樣了。
奠定基礎
《The Pragmatic Programmer》對于我們掌握軟件是一個很好的起點。該書總結了高水平的實踐探索。這與我們使用的是什么語言、什么技術無關。無論你選擇的是哪種技術堆棧,其主要的原理都是一樣的。
掌握你的編程語言
你以后每天需要面對那種編程語言取決于你今天選擇的技術。但是編程語言總有主次之分。
例如,Ruby on Raily開發(fā)人員主要使用Ruby,AngularJS開發(fā)人員大多數(shù)時間用的是JavaScript。
確定編程語言,掌握編程語言對你的職業(yè)生涯發(fā)展至關重要。因為以后你每天都會使用它!推薦你先閱讀有關書籍。
《The Swift Programming Language》之于Ruby開發(fā)人員,以及《Programming Ruby》之于ios開發(fā)人員。
學習框架
選一個,好好學習。
對于Rails開發(fā)人員——《Rails Tutorial》by Michael Hartl
對于ios開發(fā)人員——《ios programming:The Big Nerd Ranch Guide》
掌握文本編輯器、IDE
選擇一個,然后堅持不懈地掌握這個工具。如果你選擇的是VIM,那將要成為它的主人,讓它往東就往東。使用版本控制系統(tǒng)
我建議使用Git。下面是我喜歡的資源:Pro git——免費在線電子書,詳細講解了git的各個方面。
做好測試驅(qū)動開發(fā)
將TDD添加到你的技術堆棧中。,每天養(yǎng)成TDD的習慣。高質(zhì)量的代碼源于良好的測試。
對于Ruby on Rails開發(fā)人員——《Rail Test Prescriptions》
對于ios開發(fā)人員——《Test Driven ios Development》
將重構養(yǎng)成習慣
隨著你不斷添加更多的功能,代碼庫也會原來越復雜。為了保證代碼庫的可管理化,你需要重構。如果你不重構的話,你很跨就會陷入兩年境地——即使是做很小的改動都很苦難、bug沒法避免、沒人愿意處理這個凌亂的代碼庫。重構能讓你的工作更加輕松。至于怎么重構代碼。我之前看過的一片博客:3000行代碼可以重構成15行,http://9534381.blog.51cto.com/9524381/1602363,以及下面這本好書能教你該怎么做:《Refactoring: Improving the Design of Existing Code》by Martin Fowler
學習軟件架構
根據(jù)你上面選擇的堆棧,在學習相關的架構。我推薦Martin Fowler寫的《Patterns of Enterprise Application Architecture》一書。
展示命令行的力量
剛剛開始接觸命令行的第一感覺就是望而生畏。但是,一旦你學會如何使用,你將大大提高你執(zhí)行一些基本任務的效率。而這本身就能讓你成為一名更好地開發(fā)人員,因為你能在更短時間里實現(xiàn)目標。然后你就能進入寫一個水平。使用shell自動執(zhí)行常見任務,建立自己的dotfiles.圖過你使用的mac或者Linux發(fā)行版,那么學會shell.下面這本書有Mark Bates所寫的書挺不錯:《Conquering the Command Line》
code code code
只有不斷的練習學到知識,你才能真正掌握它。
總結
總所周知,成為一名高級軟件工程師是非常難的。這需要大量的時間和精力。編碼的同時還要注意代碼的安全性,如果能事先就知道一些有效靠譜的解決辦法,一定可以省下很多時間,推薦多了解下源碼保護。不同的人他們的學習速度也是不盡相同,但是平均來說,大約需要10年的時間才能成為一名可靠的高級開發(fā)人員。你付出的各種投資最后必將給你帶啦巨大的回報。軟件工程師的前途很美好,其就業(yè)市場的需求一直居高不下,薪資水平也根據(jù)經(jīng)驗程度在提高。這是一個快速增長且相對較新的領域。軟件工程師的每一天都在面臨挑戰(zhàn):挑戰(zhàn)改變?nèi)藗兊纳睢?/p>
-
程序員
+關注
關注
4文章
949瀏覽量
29744
發(fā)布評論請先 登錄
相關推薦
評論