在2006年,我開始了編程工作。當意識到來到了十年這個重要的時間關口時,我覺得有必要回顧一下這十年間所犯下的錯誤,做一做經驗總結,并且給正在這個職業上奮斗的人們提出我的一些忠告。開發行業變化得很快,我無法肯定在未來十年里這些建議一直有效,但我的話對你們是肯定有幫助的,不管是剛開始工作的新人還是老手。
要堅持使用一個開發平臺,構架或語言
在過去十年間,我所犯的最大錯誤是:幾乎每次我換工作時也轉換了開發平臺。
我的經歷從Java企業開發開始,到嵌入式C編程,到用VB、C# 和 C++開發Windows桌面應用程序,然后用Objective-C寫iOS應用程序,到用NDK編寫Android庫,最后到寫Android應用。
這個職業經歷聽起來令人敬畏,但實際上雇主并不關心。雇主們并不會重點關注你擁有10年各式各樣的開發經驗,但如果他們看到你沒有足夠的Android應用開發經驗,你就不可能獲得一個 Android開發的工作。
轉換平臺會對你的簡歷產生巨大的負面影響。對于一個雇主來說,實際上他沒辦法通過簡歷來驗證你是不是某一特定開發領域的專家,為你付出大量資金是否合理。
大多數公司都不關心你的過去,技術面試會更加重要。這就是為什么很多經歷尚淺但專業對路的開發者可以找到工作的原因。
那么我們如何適應市場的變化呢?只要你不停的敲代碼,你就能自然而然的適應市場,但你也需要投入一些時間在新技能上,應在空閑時抽出時間來學習新技能,而且你也要降低期望薪水。你需要后退一步,才能前進兩步。
一旦你找到一個讓你覺得舒服的平臺,框架或語言,就應該堅持下去。從長期看,你期望的薪水和你的工作能力都會比頻繁跳槽來的更高。找到最需要你的專屬技能的那些最好的公司,然后踏實的在那里工作。我知道這聽起來很簡單,但我花了很多年才認識到。
不要為高工資追求管理角色
以前我總是以為那些穿著西裝,作行政決策的管理者拿的薪水高的令人神往。雖然在一些情況下這沒錯,但這只占一個非常小的百分比,經驗豐富的開發者的薪金一般會比中等管理者更好。
在我早期的職業生涯中,我一直想進入項目管理。我自修了管理碩士,在那里我學到了很多有趣的東西。最后,我在一家西班牙公司作了一陣開發經理,然而我意識到這不并適合我。
在做開發者的時候,我總是感到公司缺乏企業文化,尤其是缺少技術因素的企業文化。然而在做了管理者之后,不僅編程水平無法提高,而且在企業文化的孤獨感甚至更加強烈。最終當我離開這個崗位重歸技術開發時,我終于開始重新欣賞我的開發工作。
如果你對敲代碼感到厭煩了,那么轉成管理崗并不是解決方案,更好的辦法是橫向移動,換一個部門,換一家公司,或者是旅行,甚至在國外工作來放開你的思想,在全世界有許多技術中心,那里對開發者的要求很高,這能幫助你打開眼界。
休息一段時間
我從來沒有“失業”,直到去年。在十年后,我感到需要休息一下來“重構”我的職業生涯,事實證明這是我所作出的最好的決定之一。
我休息了5個月,辭掉工作,是自愿失業。我能感覺到身邊的每個人都在擔心我的職業生涯即將結束,但所發生的一切恰恰相反。
經過十年不停的跳槽和匆匆忙忙的完成各種帶薪年假,我終于體會到“失業”是如此“幸福”。事實上,在我們的職業生涯中,“幸福感”確實是最應該追求的東西。
從我的情況來說,這四年來,我一直想坐下來學習德語,但從來沒有時間去做。而在這5個月中,我參加了德語強化班,一天3小時,讓我的德語水平從A2升到B2。
重新找回工作是很容易的,比預期的要容易得多。所以,如果你覺得自己需要的話,不要害怕一個長時間的休假。簡歷中的一段空白對于開發者來說不會被人認為有錯。
當然,如果你讀了這篇文章后,無論你是否準備來個長期休假,請一定要遵循我下面的這條忠告:
ABC: 總是編碼(Always be coding)
即使是休息也不要停止編程,在我5個月的休息期間,我做了一個個人項目,一個使用discogs.com API的Android應用。這是一個方便的個人應用,幫我從數據表中添加和刪除記錄,而且我也想借此總結和更新一下我的開發技巧。
多虧了這個小項目,讓我能夠自信地應對工作面試。我嘗試了許多新的流行類庫和開發模式,這些正在我今天的工作中成功有效的使用中。
我真希望早點開始做這件事。我們的開發工作往往是重復的,時間越長,積累的編程習慣越難以更改,也讓我們自我提高的空間越來越少。
從長遠來看,擁有個人項目、閱讀、寫博客和參加訪談都會有助于你成為一個更好的開發人員。只要你覺得有意思,就把你的代碼推到GitHub,并把你的經驗與社區分享。
成為開發者社區的一部分
當我還在大學的時候,我總是懶得參加各種社團和俱樂部活動。當我找到我的第一份開發工作時,最不樂意做的也是和其他開發者們閑聊閑逛。
但是我錯了。
同行聚會和進入開發群是很有趣的事情,是結識開發者伙伴的好地方。如果你想在這個行業里做到最好,就盡量不要消極被動。提供你的幫助,分享你的經驗,與坐在你旁邊的人交談。每個人都喜歡談論自己的經歷,更不用說你會遇到很多潛在的雇主。
在那里你會碰到許多需要教練的初學者團體,你可以指導新手,給他們提供練手的機會,甚至贊助活動。
當然,要學習別人的開發技巧并且勇于實踐,要熱情的歡迎不同意見的人講話,勇敢的聽取他們的意見。
這是我最后的“智慧結晶”:不要申請那些在網站上張貼的工作職位。
招聘網站的背后是復雜的人力資源流程、候選人跟蹤系統、濫發個人簡歷和混亂的溝通,這也是許多公司找不到人才而要依靠獵頭公司的幾個重要原因。
優秀的人才應該跳過這些。網絡是尋找人才之路,更多的關注當地的社區消息,當有人離開一個重要的職位,當一個有意思的公司得到了融資,或者某個企業人事變動正在招聘人時,你都會獲得最新的第一手消息。
你也能通過網絡社交得知哪些公司的福利比較好,各公司的大多數開發者都會真誠對待你,他們會告訴你這些公司的架構是否老舊,經理是不是人品夠好,甚至工資待遇怎么樣。
如果你看到一個有意向的工作機會,首先看看你的社交網,看看你的用戶組或LinkedIn朋友圈,是否有人已經在那里工作了,或者問他們是否認識某些人。然后直接與他們聯系,與那個公司的CTO、招聘經理或其他開發人員直接交談。
獵頭是好的,但不要依賴他們。他們的任務只是幫助企業填上一個職位的空缺,因為他們并不為你工作。如果他們推薦的職位的確非常適合你所尋找的工作,那么你就去做,如果覺得不適合,那么就告訴他們:謝謝,我不去。
-
程序員
+關注
關注
4文章
952瀏覽量
29804
發布評論請先 登錄
相關推薦
評論