亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

從面試官角度觀察到的程序員技能瓶頸(突破瓶頸的建議)

  發(fā)布時(shí)間:2019-10-17 14:22:37   作者:佚名   我要評論
對此本文將圍繞著初級程序員,高級程序員和架構(gòu)師這三個(gè)職位,說明下這些級別的技能瓶頸,并給出若干突破瓶頸的建議,感興趣的朋友一起看看吧

我在做技術(shù)面試官的時(shí)候,面試對象大多數(shù)是初級開發(fā)和高級開發(fā),偶爾也會面試架構(gòu)師。我發(fā)現(xiàn),IT人的工資固然和相關(guān)技術(shù)的使用年限有關(guān),但如果候選人的技能無法跨越到更高層次的話,他們的收入也就會停留在當(dāng)前級別,哪怕工資年限再多,也無法提升工資水平。

比如,我就面試過不少工作了5,6年的程序員,他們的技能也就停留在增刪改查階段,那么只能領(lǐng)到初級程序員的工資。更可悲的時(shí),在面試過程中我發(fā)現(xiàn)他們甚至不知道上升的途徑和方式,這樣的話,可能當(dāng)他們有10年經(jīng)驗(yàn)時(shí),或許還只是初級程序員。

對此本文將圍繞著初級程序員,高級程序員和架構(gòu)師這三個(gè)職位,說明下這些級別的技能瓶頸,并給出若干突破瓶頸的建議。

1 初級程序員的技能瓶頸與收入瓶頸

哪怕是非相關(guān)專業(yè),從培訓(xùn)班出來的程序員,要找個(gè)工作也不難,更何況是計(jì)算機(jī)相關(guān)專業(yè)出身的學(xué)生。

在一般的公司里,對初級程序員的要求大多也是會增刪改查,熟悉基本的業(yè)務(wù),而且不少公司不會讓他們干更高級的活。所以我在面試過程中,不少3年以內(nèi)的初級程序員的水平和一些有5年經(jīng)驗(yàn)的人差不多,這就進(jìn)入了初級程序員的收入瓶頸。

比如Java方面,他們僅僅會用技能,比如集合,多線程,數(shù)據(jù)庫等,也會在Spring框架下干活,SQL方面,僅會寫基本的SQL語句,或許還會使用簡單的索引等技能。但如果我問及底層代碼,他們知道得很少,問及Spring等框架知識,他們只會告訴我如何配置,如何在現(xiàn)有框架里干活。至于一些高級技能,比如分布式組件,或者LInux下的部署和日志排查,他們大多就不知道了。對于項(xiàng)目管理的工具,比如Jenkins,sonar等,他們可能都沒聽說過。

如果面試時(shí)僅表現(xiàn)為會干活,不會調(diào)優(yōu),不會分析和解決問題,那么能力上也就是初級開發(fā)。這樣的話,在上海,按當(dāng)前行情,估計(jì)最高也就12k了,同時(shí),如果干了5年還是這樣的話,那么競爭力會大大降低。那么如何提升到高級開發(fā)呢?

1 在平時(shí)得熟悉調(diào)試代碼,并且,一旦組里出了問題,得盡量參與,剛開始可能分析和解決問題的能力不行,但慢慢就行了。

2 多看些優(yōu)化方面的技能,以及比較熱門的技術(shù),比如數(shù)據(jù)庫方面,別單純看JDBC的增刪改查,可以看些NoSQL甚至redis緩存,然后看下SQL調(diào)優(yōu)技能。

3 多關(guān)注些項(xiàng)目開發(fā)和管理的技能,比如敏捷開發(fā),站會,單元測試,集成部署,通過Sonar看代碼質(zhì)量等。

4 這點(diǎn)比較關(guān)鍵,得多和別人交流,比如多和需求方溝通需求,多和測試方溝通問題重現(xiàn)步驟,多和組員領(lǐng)導(dǎo)溝通問題的實(shí)現(xiàn)方式。

其實(shí)初級開發(fā)升級到高級開發(fā)還是相對容易的,只要主觀上態(tài)度上端正,別固步自封,然后到處看些資料多和人交流即可。如果進(jìn)互聯(lián)網(wǎng)公司,在大壓力環(huán)境下,身邊大牛再多些,升級過程會更加順利。

2 高級程序員的技能瓶頸在于分布式組件

高級開發(fā)論技術(shù),有一定的調(diào)優(yōu)經(jīng)驗(yàn),也有一定分析日志解決問題的能力,也能debug。論解決問題的能力,也能和別人溝通,從而接簡單的需求,并能分析和解決一些問題。論團(tuán)隊(duì)合作,也能帶3,4個(gè)人一起開發(fā)。其實(shí)這類能力,對工作個(gè)3年的程序員來說,不難達(dá)到,如果在節(jié)奏比較快的互聯(lián)網(wǎng)公司里,甚至2年即可。

論工資水平,當(dāng)前在上海,高級開發(fā)拿個(gè)15k都算低,如果進(jìn)個(gè)大公司,外帶5年左右開發(fā)經(jīng)驗(yàn),估計(jì)能到20k,如果在互聯(lián)網(wǎng)公司甚至能更高,但瓶頸估計(jì)在25k左右。

我面試高級開發(fā),他們一般基礎(chǔ)知識比較扎實(shí),比如Java集合內(nèi)部的實(shí)現(xiàn)代碼,高并發(fā)的諸多類,或者Spring框架的一些關(guān)鍵底層代碼,都能說得上來。一般給我的高級開發(fā)的面試標(biāo)準(zhǔn)是,所需初級開發(fā)的技能,并在此基礎(chǔ)上具有一定的調(diào)優(yōu)能力,通過日志定位問題,設(shè)計(jì)解決方案和解決實(shí)際問題的能力,而且linux上也能部署代碼。只要能說得上來,一般能給到高級開發(fā)的工資,就多少的問題。

但我面試時(shí),感受非常深的是,和架構(gòu)師相比,高級開發(fā)對于分布式組件或基于云組件(比如k8s)或其它高并發(fā)分布式組件,有些人可能用過,但僅限于會用其中的API,讓他們搭建一個(gè)集群,他們可能就力所不能及了,如果再問他們分布式組件在項(xiàng)目開發(fā)時(shí)經(jīng)歷過的坑,他們大多也說不上來。

比如我問,Dubbo里通訊協(xié)議有哪些?高級開發(fā)一般能說得上來,因?yàn)檫@有現(xiàn)成資料,但我再問,根據(jù)你們的業(yè)務(wù)實(shí)際情況,你們用的是長連接還是短連接方式?為什么要用這種協(xié)議?他們估計(jì)就很難回答。如果我再問,如果要處理高并發(fā)的請求,需要在Dubbo里做哪些配置?如何同其它組件搭建成集群以達(dá)到容錯(cuò)效果?高級開發(fā)就更難回答了。

同初級開發(fā)升級到高級開發(fā)相比,高級開發(fā)升級到架構(gòu)師更難,因?yàn)樵谝话愕墓ぷ鳝h(huán)境里,高級開發(fā)很難有相應(yīng)的實(shí)踐機(jī)會。不過話說回來,如果程序員有8年經(jīng)驗(yàn)后還是高級開發(fā),那么競爭力會逐步下降,一方面很難再要到更高的工資,另一方面很難通過面試爭取到架構(gòu)師的工作機(jī)會。那么高級開發(fā)如何升級到架構(gòu)師呢?這個(gè)時(shí)候光靠態(tài)度就不行了。

1 理論知識不可少,還需要在自己電腦上,可以搭建個(gè)腳手架項(xiàng)目,比如自己裝個(gè)虛擬機(jī),搭建個(gè)dubbo集群等,這樣能熟悉基本的配置和用法。

2 最好找個(gè)互聯(lián)網(wǎng)公司實(shí)踐下,哪怕在互聯(lián)網(wǎng)公司干的是高級開發(fā)的活,一定也有機(jī)會接觸分布式組件,這樣就有相關(guān)經(jīng)驗(yàn)了。我在一家外企自學(xué)了1年多架構(gòu)師的技能,然后到一家互聯(lián)網(wǎng)公司,發(fā)現(xiàn)3個(gè)月的實(shí)踐抵得上1年多的自己探索。

3 比如高級開發(fā),架構(gòu)師更得了解集群,而不是單機(jī)版的代碼,所以更得關(guān)注一些技術(shù)以外的技能,比如負(fù)載均衡,容錯(cuò)處理,通訊協(xié)議和流程等。積累著方面的經(jīng)驗(yàn)別無他法,只能多動(dòng)手排查和解決實(shí)際問題。

4 雖然說光靠態(tài)度不行,但沒態(tài)度也不行,在升級過程中,可能因定位問題不及時(shí)不準(zhǔn)確,或者提出的方案有瑕疵,從而受到別人挑戰(zhàn),相反如果回到高級開發(fā)的舒適區(qū)也能穩(wěn)定地過日子。我自己也有體會,我幸虧遇到了好師傅,而且我?guī)煾档膸煾凳谴笈?,也為我指明了不少進(jìn)階方向。否則的話,這條升級路能堅(jiān)持下來,還能難說。

3 架構(gòu)師的瓶頸在于項(xiàng)目實(shí)踐經(jīng)驗(yàn)

目前在上海,架構(gòu)師的月薪普遍在30k以上,如果稍微資深點(diǎn)的話,35k也不是問題,如果是一個(gè)公司的主心骨的話,那工資就更沒上限了。

雖然不多,但我好歹也面試過Java方面的架構(gòu)師,我在面試過程中發(fā)現(xiàn),一些資深的架構(gòu)師,相關(guān)實(shí)踐經(jīng)驗(yàn)相當(dāng)豐富,更有部署上線和在線排查問題方面的經(jīng)驗(yàn)。

比如MyCAT分庫分表方面,高級開發(fā)會使用,一般的架構(gòu)師會搭建集群,也會排查產(chǎn)線問題,而資深架構(gòu)第一能知道該如何上線,上線時(shí)如何采用分組發(fā)布確保數(shù)據(jù)兼容性,上線后又該如何清洗數(shù)據(jù),如果上線過程中出現(xiàn)問題又該如何回退。再比如針對Netty的OOM問題,資深架構(gòu)的腦海里會出現(xiàn)若干個(gè)優(yōu)先排查點(diǎn),在這些范圍內(nèi)找到問題的概率很大,不行再具體看日志分析。

如果說,架構(gòu)師還有人可以問的話,資深架構(gòu)則沒人可問,有問題得靠自己之前踩坑獲得的經(jīng)驗(yàn),或者自己找資料。從這個(gè)意義上來講,在架構(gòu)師級別,如果技術(shù)上再要提升,那么只能多靠解決實(shí)際問題時(shí)積累的經(jīng)驗(yàn),而且更得結(jié)合業(yè)務(wù),把負(fù)載均衡,容錯(cuò)處理等處理高并發(fā)的理念用分布式組件實(shí)現(xiàn)。這方面,我們可以參照下BAT或知名互聯(lián)網(wǎng)公司的架構(gòu)知識體系。

4 在任何時(shí)候,態(tài)度都是限制發(fā)展的瓶頸

不管是面試初級程序員還是高級開發(fā)或者是架構(gòu)師,我發(fā)現(xiàn)一些表現(xiàn)好的,都是比較積極向上的。

比如回答問題時(shí)聲音洪亮,溝通時(shí)也有盡量向表達(dá)清楚的愿望,哪怕某個(gè)方面回答不正確,但也能看出平時(shí)在不斷積累知識,當(dāng)被追問比較深時(shí),也能比較耐心地一一解答,總之通過交流,給人的印象是比較踏實(shí)靠譜。有些人甚至平時(shí)會寫博客,或者出過書,或者想盡一切辦法來積累和提升自己。這類人大多能過,哪怕個(gè)別過不了,但努力的大方向沒問題,完成進(jìn)級也僅僅是時(shí)間問題,未來潛力也是非常可觀的。

但相反,有些回答不好的候選人,總會給人些得過且過敷衍的感覺,比如回答問題比較簡單,或者總是想套面試官的話,或者總想用些模棱兩可的回答來蒙混過關(guān)。

我和其它的面試官溝通以后,對此感受很深,總是先自己要了,然后再肯上進(jìn),再自發(fā)地歸納出好的學(xué)習(xí)方法,并能有效地進(jìn)行時(shí)間和工作任務(wù)管理。

我見到過不少反面的案例,這些人論資質(zhì)不錯(cuò),但或者光有決心沒行動(dòng),或者干脆陷入在舒適區(qū)不可自拔,這些人很難有技術(shù)上的突破。相比之下,初級程序員在有決心有行動(dòng)后,升級所需的時(shí)間不會超過1年,有些半年就夠了,高級開發(fā)升級到架構(gòu)師可能有些難度,但一般不會超過2年。

所以說,要升級,首先態(tài)度要端正,人要上進(jìn),這話說起來太容易,但能做到的并且能堅(jiān)持下來的人數(shù)并不多,所以態(tài)度也是升級的瓶頸,這話雖然通俗,但不無道理。

5 總結(jié),技術(shù)可以暫時(shí)落后,但任何時(shí)候都要有上進(jìn)的信念

本文提到的各級別程序員的瓶頸和突破建議,都是我和其它多位面試官在面試過程中總結(jié)而來,希望能對大家有所幫助。

再者,除去因升級而帶來的收入提升外,在任何技術(shù)前提下,都有對應(yīng)的掙錢手段。比如我在博客園等地,看到不少大學(xué)生朋友靠寫文章掙錢,而開專欄也并不是要多高深的技術(shù)積累。同時(shí),當(dāng)程序員升級到高級開發(fā)后,就能通過寫書或者錄制視頻等方式掙錢。此外,如果是接項(xiàng)目,在各技術(shù)層面都有對應(yīng)的項(xiàng)目。不過話說回來,對我們程序員來說,在任何公司任何職位任何場景,都有機(jī)會進(jìn)入到舒適區(qū)“享福”。

有道是“技術(shù)窮但志不能短”,我在博客園里就見識過不少靠努力翻身的例子,在我身邊的同事朋友里,也經(jīng)??吹?ldquo;半年后技術(shù)大變樣”的例子,這些榜樣能激勵(lì)我不斷上進(jìn)。所以本文在給出突破瓶頸建議的同時(shí),更希望大家要有不斷上進(jìn)的信念。

好了,本文到此結(jié)束,希望大家喜歡!

相關(guān)文章

  • 程序員突破瓶頸必看,Java架構(gòu)師班課程招生

    Java架構(gòu)師,應(yīng)該算是一些Java程序員們的一個(gè)職業(yè)目標(biāo)了吧。很多碼農(nóng)碼了五六年的代碼也沒能成為架構(gòu)師。那成為Java架構(gòu)師要掌握哪些技術(shù)呢?程序員想要突破就一起來了解一
    2019-08-07

最新評論