原文地址: http://www.yegor256.com/2017/...html
常常有人問我:如何成爲資深的軟件工程師或架構師?一個剛學會敲代碼的碼農,是怎麼成長爲年薪 15 萬刀以上、開着寶馬的開發團隊首領的?如何才能儘快走完這條路,減小浪費時間?我就在這分享下個人觀點。程序員
在寫篇文章以前,我在網上看過了不少別人給的這方面的建議,好比說樂於助人、多交朋友、不要拘泥於語言、多多練習、勇於對BOSS直言、不要跟同事起衝突,等等等等。它們當中有些是沒錯,但大多數能夠說離題甚遠,不着邊際。編程
而我給的建議不同,我要說的都是有理有據的大實話,對你在幾年後成爲時薪 100 刀級別的軟件架構師頗有幫助。並且一直以來我就是這麼作的,之後也會如此。架構
不要對公司忠誠。你如今的公司永遠只是一個鍛鍊本身的地方,僅此而已。不要對公司過度投入不相干的精力,這方面要自私一點。把目光集中在本身的我的技能、知識和經驗上。公司想要培養你的奉獻精神和忠誠度?這些手段對你無效。利用工做中的機會來學習新的技術、實踐本身的想法、自我訓練、自我學習。拿個什麼證書之類的,拓寬本身的業界人脈,等等。個人職業生涯應該爲我所用,這是原則。公司想要經過花錢或獎勵來收買你的奉獻和忠誠,定不會得逞。學習
不要把工做當工做。應該把編程當作愛好而不是工做。其餘的都是次要的,什麼家庭,朋友,魔獸世界之類的,都是次要的。不帶着這樣的態度,你只會被它們拖累,不能全身心的投入。編程是你的靈魂,編程對你來講不是工做,而是享受,是令你靈魂都感到歡欣愉悅的世上一等一的享受。不要去寫本身不想寫的東西,不然你就要對本身警戒了:這是不對的,這說明你的職業生涯出現問題了。網站
不要交朋友。我是指那些創建在工做關係基礎上的朋友,而不是志同道合的真正朋友。記住,你 99% 的同事最終不會成爲真正的專家,他們這輩子就只會作一個沒有激情沒有抱負的普通程序員。跟這種人過於親密的話,他們會拖你的後腿,讓你墮落成一個普通人,由於他們看不得你如此出衆,看不得你不斷前進,看不得你遠離他們。但你最終仍是會把他們甩在後面,離他們而去。htm
不要亂作好人。世上的程序員多得數不清,人人都有遇到困難的時候。難道你不去幫忙,這世界就完蛋了不成?你真想要有所做爲的話,不要拘泥於這種小事情,而要把目光放高遠一點:推出開源產品、寫本書、改進下項目文檔之類的。幫身邊的人的忙,剝奪他們本身尋求答案的機會,反卻是害了他們。ci
不要求人幫忙。具體地說是遇到技術問題不要隨便開口求同事,所謂求人不如求己,StackExchange 上的六百萬註冊用戶難道還幫不了你?要鍛鍊本身從公共資源中搜尋答案的能力,它能讓你在職業生涯中受益不淺。不然你習慣於向身邊的人求助,不但麻煩別人,也是害了本身。一樣。你想學習什麼東西,也不能侷限於周圍的同事,而是要從書本上學,從 StackOverflow 中學,從開源庫中去學。項目管理
不要浪費時間。這句應該說是最重要的,並且我應該先說給我本身聽——我就浪費了不少時間。成長的過程就是一個對別人說「不」的過程,你要隨時準備拒絕你的朋友、你的家人、你的同事、你的自身慾望、你的業餘愛好、你的項目、你的方法,甚至你寫的每一行代碼。不要寫那些花時間又沒一點回報的代碼,不要理會那些你不須要理會的人。沒錯,他們須要你,但你不須要他們,不要管他們。這話聽上去刻薄自私,但沒辦法,時間這個東西沒了就不能再有,並且它是你成長過程當中必須付出的。資源
不要捨不得花錢。爲了本身的成長,任何投資都是值得的。去買書。就算能弄到免費的盜版電子書,你也應該去買,去花錢,不然你就不會認真看。看看你讀過的書,要可以讓你有一種自豪感。軟件開發對你來講不是一個工做,不是身外之物,而是你的生命。一個月兩本書,那是最低限度。一樣的,花錢去考資質證書;一樣的,花錢去買軟件,不要用盜版。最後,你的電腦也不要買便宜的,它比你的車重要得多,它比你愛人的生日禮物重要得多,它是你用來吃飯的傢伙,重要程度不吝於演奏家本身的樂器。想要出類拔萃,你就必須全身心的投入。
不要滿工時的工做。把工做時間都花在工做上,你將沒有機會讓自身更進一步。想象你長期在一家公司工做,穩定的收入,舒心的辦公室環境,只有一堆稀鬆日常的問題要解決,久而久之,最終在一個很窄的領域內成爲專家,在這小圈子裏頭自鳴得意,無所畏懼。而後呢?沒有而後了,你的職業生涯已經到頭了。——想要擺脫這種命運,你必須不斷地去挑戰新的問題,去融入新的團隊,參與新的項目,甚至尋求新的工做。爲了時刻證實本身有能力勝任這些工做,最理想的狀況下,你應該騰出一些時間花在兩到三個其餘的項目上,並且每半年到一年換一次。
不要對本身開價過低。什麼「項目賺不賺錢不是最重要的,重要的是要有創意」,這都是那些碼界低能兒說的話。錢就是最重要的,賺不到錢的項目就是被市場視做垃圾項目,這種項目你呆在裏面幹嘛?你有能力去作那些賺大錢的項目,就不要理會那些廉價的「創意」。只管去要投資,越多越好。
不要小瞧行業認證。不少程序員以爲行業認證純粹就是花錢從大公司買來給本身裝潢門面的,沒多少含金量。這麼想就錯了。經過行業認證意味着,你的知識體系是清晰完備的,你的領域知識完整且沒有遺漏。對你的潛在僱主們來講,這意味着你在軟件開發方面至關專業並且有至關的發展潛質。
不要忽略管理方面的東西。程序員跟架構師和開發組長不是一個級別的,但這不表示程序員就應該一味的聽從安排,埋頭作事。爲了你的職業生涯着想,你要從入行的第一天就關注項目管理。項目管理是很複雜的,不是說你們一團和睦就什麼問題都沒有。項目管理是一門科學,有規律,有原則,有方法,有最佳實踐。你也要了解也要掌握,對管理方面的事情要像看你的代碼同樣看得通透。你能夠從「項目管理知識體系」開始學起,或去考個項目管理的證書。
不要忽略英語。我不少讀者的母語都不是英語,其實我也同樣。這點建議就是特別針對大家:必須提升本身的英語說寫水平,不然你永遠都不能成爲高收入的軟件架構師。並且我不是說你像個毛子似的講英語就能糊弄過去了,你得像舊金山本地人同樣說英語,不帶一點莫斯科味。最佳建議就是:看帶字幕的英語電影,學 Matt Damon 或 Al Pacino 那樣說話,不要學 Mutko。
不要忽略開源。在開源社區裏面表現得活躍點,這是頗有必要的。你要麼本身弄個開源項目,要麼積極參與別人的。在公司裏寫代碼和麪對全世界寫代碼是兩回事,大部分程序員就是不敢,他們有一堆的理由,但你不要學他們。參與開源確實有壓力,並且要耗費私人時間,又沒人付錢給你,但你要硬着頭皮頂上去,爲何,就由於這是最快最快的成長方式。並且我還建議你儘量的公開本身寫的源碼,哪怕寫它們最初的目的只是給本身用,或者只在公司裏用。若是公司比較開明,不會反對你這麼作。若是我要搜你的名字,我但願看到一堆的與軟件和開源有關的搜索結果,而不是什麼約炮網站上的我的主頁。
不要沒一點存在感。什麼臉書,推特,領英,Instgram,能註冊的都註冊起來,對了,還有博客。若是你是一個專業的資深的軟件架構師,我怎麼可能在 Google 上找不到你的名字對吧?別人也絕對會去搜。個人書《256 Bloghacks》能幫你正確找回存在感。
不要太宅。去參加一些聚會和交流會,至少每個月一次,你得去那些程序員彙集的地方。我不是要你表現的多突出——你只要在那看着就行。去得多了,你天然也會有些想法,願意分享出來。記住,你的同事對你的評價不重要,重要的是市場和業界對你的評價。一個快樂的成功的軟件架構師,是不會天天玩 GTA 到凌晨三點的。
不要懶得打理本身和放鬆享受。沒人喜歡那種一年才剪一次頭髮、一身臭味的傢伙。若是你是這樣子的話,僱主只會把你看做是碼猿,而永遠不會考慮將公司層面的責任重擔交給你,由於你看上去就是個精神不正常的傢伙。因此,你的形象要看上去像個「懂生意的人」,哪怕你骨子裏不是。因此,你要注意如何使用本身的業餘時間——不是天天玩 GTA 到凌晨三點,而是去運動,去旅遊,去夜店,等等。總之就是稍微像個正常人一點。
我要說的就這麼多了。還有什麼沒提的嗎?