程式設計師怎麼才能夠突破瓶頸?技術面試官的建議你不得不看!
前言:
曾經做技術面試官的時候,面試物件大多數是初級開發和高階開發,偶爾也會面試架構師。
我發現,IT人的工資固然和相關技術的使用年限掛鉤,但其技能無法跨越到更高層次的話,他們的收入也就會停留在當前級別,技術不行工作再久,工資也漲不了。
比如,我就面試過不少工作了5,6年的程式設計師,他們的技能也就停留在增刪改查階段,那麼只能領到初級程式設計師的工資。
更可悲的時,在面試過程中我發現他們甚至不知道上升的途徑和方式,這樣下去,可能有著十年經驗的他們還是初級。
對此本文將圍繞著初級程式設計師,高階程式設計師和架構師這三個職位,說明下這些級別的技能瓶頸,並給出若干突破瓶頸的建議。
1 初級程式設計師的技能瓶頸與收入瓶頸
在一般的公司裡,對初級程式設計師的要求大多也是會增刪改查,熟悉基本的業務,而且不少公司不會讓他們幹更高階的活
在面試過程中,不少3年以內的初級程式設計師的水平和一些有5年經驗的人差不多,這就進入了初級程式設計師的收入瓶頸。
比如Java方面,他們僅僅會用技能,比如集合,多執行緒,資料庫等,也會在Spring框架下幹活,SQL方面,僅會寫基本的SQL語句,或許還會使用簡單的索引等技能。
但如果我問及底層程式碼,他們知道得很少,問及Spring等框架知識,他們只會告訴我如何配置,如何在現有框架裡幹活。至於一些高階技能,比如分散式元件,或者LInux下的部署和日誌排查,他們大多就不知道了。
對於專案管理的工具,比如Jenkins,sonar等,他們可能都沒聽說過。
如果面試時僅表現為會幹活,不會調優,不會分析和解決問題,那麼能力上也就是初級開發。這樣的話,在上海,按當前行情,估計最高也就12k了,同時,如果幹了5年還是這樣的話,那麼競爭力會大大降低。那麼如何提升到高階開發呢?
1 在平時得熟悉除錯程式碼,並且,一旦組裡出了問題,得儘量參與,剛開始可能分析和解決問題的能力不行,但慢慢就行了。
2 多看些最佳化方面的技能,以及比較熱門的技術,比如資料庫方面,別單純看JDBC的增刪改查,可以看些NoSQL甚至redis快取,然後看下SQL調優技能。
3 多關注些專案開發和管理的技能,比如敏捷開發,站會,單元測試,整合部署,透過Sonar看程式碼質量等。
4 這點比較關鍵,得多和別人交流,比如多和需求方溝通需求,多和測試方溝通問題重現步驟,多和組員領導溝通問題的實現方式。
其實初級開發升級到高階開發還是相對容易的,只要主觀上態度上端正,別固步自封,然後到處看些資料多和人交流即可。如果進網際網路公司,在大壓力環境下,身邊大牛再多些,升級過程會更加順利。
2 高階程式設計師的技能瓶頸在於分散式元件
高階開發論技術,有一定的調優經驗,也有一定分析日誌解決問題的能力,也能debug。論解決問題的能力,也能和別人溝通,從而接簡單的需求,並能分析和解決一些問題。
論團隊合作,也能帶3,4個人一起開發。其實這類能力,對工作個3年的程式設計師來說,不難達到,如果在節奏比較快的網際網路公司裡,甚至2年即可。
論工資水平,當前在上海,高階開發拿個15k都算低,如果進個大公司,外帶5年左右開發經驗,估計能到20k,如果在網際網路公司甚至能更高,但瓶頸估計在25k左右。
面試高階開發,他們一般基礎知識比較紮實,比如Java集合內部的實現程式碼,高併發的諸多類,或者Spring框架的一些關鍵底層程式碼,都能說得上來。
一般給我的高階開發的面試標準是,所需初級開發的技能,並在此基礎上具有一定的調優能力,透過日誌定位問題,設計解決方案和解決實際問題的能力,而且linux上也能部署程式碼。只要能說得上來,一般能給到高階開發的工資,就多少的問題。
但我面試時,感受非常深的是,和架構師相比,高階開發對於分散式元件或基於雲元件(比如k8s)或其它高併發分散式元件,
有些人可能用過,但僅限於會用其中的API,讓他們搭建一個叢集,他們可能就力所不能及了,如果再問他們分散式元件在專案開發時經歷過的坑,他們大多也說不上來。
比如我問,Dubbo裡通訊協議有哪些?高階開發一般能說得上來,因為這有現成資料
但我再問,根據你們的業務實際情況,你們用的是長連線還是短連線方式?為什麼要用這種協議?他們估計就很難回答。
如果我再問,如果要處理高併發的請求,需要在Dubbo裡做哪些配置?如何同其它元件搭建成叢集以達到容錯效果?
高階開發就更難回答了。
同初級開發升級到高階開發相比,高階開發升級到架構師更難,因為在一般的工作環境裡,高階開發很難有相應的實踐機會。
不過話說回來,如果程式設計師有8年經驗後還是高階開發,那麼競爭力會逐步下降,一方面很難再要到更高的工資,另一方面很難透過面試爭取到架構師的工作機會。
那麼高階開發如何升級到架構師呢?這個時候光靠態度就不行了。
1 理論知識不可少,還需要在自己電腦上,可以搭建個腳手架專案,比如自己裝個虛擬機器,搭建個dubbo叢集等,這樣能熟悉基本的配置和用法。
2 最好找個網際網路公司實踐下,哪怕在網際網路公司乾的是高階開發的活,一定也有機會接觸分散式元件,這樣就有相關經驗了。我在一家外企自學了1年多架構師的技能,然後到一家網際網路公司,發現3個月的實踐抵得上1年多的自己探索。
3 比如高階開發,架構師更得了解叢集,而不是單機版的程式碼,所以更得關注一些技術以外的技能,比如負載均衡,容錯處理,通訊協議和流程等。積累著方面的經驗別無他法,只能多動手排查和解決實際問題。
4 雖然說光靠態度不行,但沒態度也不行,在升級過程中,可能因定位問題不及時不準確,或者提出的方案有瑕疵,從而受到別人挑戰,相反如果回到高階開發的舒適區也能穩定地過日子。
3 架構師的瓶頸在於專案實踐經驗
目前在上海,架構師的月薪普遍在30k以上,如果稍微資深點的話,35k也不是問題,如果是一個公司的主心骨的話,那工資就更沒上限了。
雖然不多,但我好歹也面試過Java方面的架構師,我在面試過程中發現,一些資深的架構師,相關實踐經驗相當豐富,更有部署上線和線上排查問題方面的經驗。
比如MyCAT分庫分表方面,高階開發會使用,一般的架構師會搭建叢集,也會排查產線問題,而資深架構第一能知道該如何上線,上線時如何採用分組釋出確保資料相容性,上線後又該如何清洗資料,如果上線過程中出現問題又該如何回退。
再比如針對Netty的OOM問題,資深架構的腦海裡會出現若干個優先排查點,在這些範圍內找到問題的機率很大,不行再具體看日誌分析。
如果說,架構師還有人可以問的話,資深架構則沒人可問,有問題得靠自己之前踩坑獲得的經驗,或者自己找資料。
從這個意義上來講,在架構師級別,如果技術上再要提升,那麼只能多靠解決實際問題時積累的經驗,而且更得結合業務,把負載均衡,容錯處理等處理高併發的理念用分散式元件實現。
這方面,我們可以參照下BAT或知名網際網路公司的架構知識體系。
4 在任何時候,態度都是限制發展的瓶頸
不管是面試初級程式設計師還是高階開發或者是架構師,我發現一些表現好的,都是比較積極向上的,思路清晰的人
有些人資質不錯,卻甘於安逸,不會學習。相比之下,初級程式設計師在有決心有行動後,升級所需的時間不會超過1年,有些半年就夠了,高階開發升級到架構師可能有些難度,但一般不會超過2年。
所以說,要升級就要先端正態度。
5 總結,技術可以暫時落後,但任何時候都要有上進的信念
附上我的Android核心技術學習大綱,獲取相關內容來GitHub:
vx:xx13414521
還有Android的精選學習進階影片,三星架構師、阿里p7、聯通架構師等大牛講解進階內容,私信【學習影片 】領取
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952849/viewspace-2676805/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PHP程式設計師突破成長瓶頸 - 附學習建議PHP程式設計師
- 給中級程式設計師突破瓶頸的幾個建議,收藏~程式設計師
- PHP程式設計師突破成長瓶頸PHP程式設計師
- 開發技術瓶頸期,如何突破
- Java程式設計師的黃金5年,你還在擔心技術瓶頸嗎?Java程式設計師
- 前端如何快速進階,突破技術瓶頸?前端
- Google前美女面試官談程式設計師面試的技巧和建議Go面試程式設計師
- 如何突破技術發展瓶頸、成功轉型?
- 對於一些想突破技術瓶頸的程式設計師,這是一篇價值百萬的文章!程式設計師
- 天天工作擰螺絲,怎麼突破瓶頸?
- 程式碼怎麼寫才能被面試官看上?小編帶你瞧瞧面試
- 如何提升程式設計師的非技術才能程式設計師
- 看BAT技術面試官如何挑選Java程式設計師BAT面試Java程式設計師
- 如何突破前端瓶頸???前端
- 工作一到五年的Java程式設計師遇到瓶頸應該如何提升自己突破Java程式設計師
- 技術面試中,當面試官「套路」你時,怎麼「反套路」回去?面試
- 一個技術大牛對程式設計師招聘的吐槽和建議程式設計師
- 怎麼面試(社招)程式設計師?面試程式設計師
- 我是設計師面試官,你有什麼想問我的?面試
- 給Android程式設計師的一些面試建議Android程式設計師面試
- 如果你不是程式設計師,你怎麼僱傭程式設計師呢程式設計師
- 你該怎麼做才能成為應屆程式設計師中的「佼佼者」?程式設計師
- 純乾貨!面試官如何面試程式設計師面試程式設計師
- 程式設計師,你能真正掌握多少程式設計技術?程式設計師
- 智慧城市資金瓶頸亟待突破
- 技術簡歷寫這麼寫,才能得到BAT面試官們的青睞BAT面試
- 作為面試官,講述他是怎麼快速判斷程式設計師能力的?面試程式設計師
- 【程式設計師面試系列】手把手教你如何面試,你要的我都有(技術篇)程式設計師面試
- 轉 36 氪--程式設計師怎麼遠端面試?「ShowMeBug」要做專業級技術面試工具程式設計師面試
- 騰訊架構師分享的Java程式設計師需要突破的技術要點架構Java程式設計師
- ShowMeBug 專案(程式設計師面試神器)招募技術運營官一枚程式設計師面試
- 程式設計師必知面試技術,程式設計面試IO模型有幾種?分別是什麼?程式設計師面試模型
- 天天寫業務程式碼的程式設計師,怎麼成為技術大牛程式設計師
- ??面試官:你會如何設計QQ中的網路協議?面試協議
- 怎樣才能叫高階程式設計師?程式設計師
- 從職業方向,談程式設計師如何突破成長瓶疾,我們該怎麼去學習?程式設計師
- 一個老程式設計師的建議程式設計師
- 程式設計師跳槽的10個建議程式設計師