在程序員圈,一直流傳著這樣一個傳說,用發(fā)量來判斷程序員的級別,這明顯是種調(diào)侃。那么,中級程序員,相對于初級程序員,有哪些不一樣的特質(zhì)呢?
總得來說,比較于初級而言,中級程序員在執(zhí)行層面屬于攻堅(jiān)力量,他們不僅能獨(dú)立完成高檔難度的開發(fā)使命,并且在用戶體驗(yàn)(質(zhì)量提高)和功能優(yōu)化(優(yōu)化效率)都能作更全面的考量。
以下,是小編總結(jié)的關(guān)于中級程序員七大特點(diǎn),各位讀者可以對號入座。
(一)善于溝通
程序員內(nèi)向的居多,喜歡交流的很少,但中級程序員往往能夠克服自己的內(nèi)新的恐懼心理,多和同事交流。
甚至有管理者認(rèn)為,程序員應(yīng)該80%的時間,花在同事的交流上。不僅是部門內(nèi)的同事,也還包括跨部門溝通,敲代碼的需要經(jīng)常與產(chǎn)品經(jīng)理、運(yùn)營的同事溝通需求。
日本不少跨國公司,甚至有讓程序員去體驗(yàn)幾個月銷售員的傳統(tǒng)。公司要求,程序員在敲代碼的同時,也要能夠理解一線用戶的需求。
交流對于初級程序員了解技術(shù)的發(fā)展,也相當(dāng)有好處:讀讀博客、學(xué)學(xué)新語言和框架、討論討論話題、看看同行在做什么。自掃門前雪,很難成為一個優(yōu)秀的程序員。閉門造車型的程序員終將被時代的潮流所淘汰。
(二)對編程有激情
有些程序員干這一行只是為了掙錢,如果有更好的職業(yè),他們會毫不猶豫的辭掉程序員的工作。
能夠順利晉升為中級程序員的人,往往熱愛編程,喜歡鉆研代碼中的問題,他們感到能指揮電腦來幫助人們和自己解決現(xiàn)實(shí)生活中的問題是一種神奇的能力。當(dāng)遇到問題無法解決時,他們會茶不思、飯不想,無法入睡。
每個人都有心理上的舒適區(qū),但是中級程序員,會不斷地突破自己心理上的舒適區(qū)。
他們很樂于經(jīng)常去研究沒有接觸過的代碼,也正因?yàn)檫@樣,成長速度快的中級程序員會越來越熟悉不同的代碼結(jié)構(gòu)和設(shè)計(jì)模式。
(三)精通代碼調(diào)試
幾乎所有的程序員寫代碼都不是一遍就能寫好的。精通代碼調(diào)試 ( debug )很多人在寫代碼的過程中,經(jīng)常會有的一個問題就是:為什么我寫出來的代碼不能運(yùn)行?為什么運(yùn)行的結(jié)果不是我想要的?
中級程序員非??斓木兔靼鬃约捍a的問題可能是什么。代碼調(diào)試是一個很重要的能力,但是偏偏學(xué)校里不教,面試的時候考官也不經(jīng)常提及。那么怎么去調(diào)試代碼呢?
代碼調(diào)試是有一套方法論的。最簡單的就是在代碼里輸出日志來判斷,復(fù)雜一點(diǎn)則需要去接觸一些高級的工具,或者直接帶有 Debug 功能的編輯器。
(四)主人翁精神
部分初級程序員剛?cè)胄校赡苓€沒有進(jìn)入狀態(tài),往往認(rèn)為自己是打工者,以打工者的身份和心態(tài)工作。
中級程序員卻會把自己當(dāng)成企業(yè)的主人,他們知道企業(yè)的利益和自己休戚相關(guān)。
成熟的程序員明白一點(diǎn),作為一名優(yōu)秀的企業(yè)員工,自己是生產(chǎn)者而非消費(fèi)者。他們心中一直想得是自己能夠?yàn)楣荆瑸轭櫩蛣?chuàng)造什么價值,而不僅僅只想著待遇。
(五)工具型思維
中級程序員知道如何能更高效的完成任務(wù),如何更能有效的解決問題。其原因是工具型思維,如同荀子所言,“君子生非異也,善假于物也?!?/p>
Facebook 前技術(shù)總監(jiān) Bobby Johnson 說,高效率的程序員都把時間花在制作工具上。很多人也認(rèn)為工具是很重要的,但是他們并沒有花時間去制作、整合自己的工具。但是,Jonson 團(tuán)隊(duì)最出色的員工耗費(fèi)了他們 1/3 的時間在工具制作上,這些工具可以用來發(fā)布代碼,監(jiān)控系統(tǒng),以及能讓他們花更少的時間去做更多事情。
中級程序員遇到問題時,不鉆牛角尖,善于利用外部工具解決自己的問題,特別是能熟練應(yīng)用搜索引擎。
(六)刻意練習(xí)迭代速度
魔鬼在細(xì)節(jié)上,如果一個程序員想要提高自己的工作效率,就需要他能夠不斷地在細(xì)節(jié)方面,進(jìn)行微創(chuàng)新,提高效率。
舉一個例子,假設(shè)一個初級程序員,每次要花 12 秒鐘去搜索某個函數(shù)是在哪里定義的。如果,他每天做這個動作 60 次,就要花 12 分鐘去搜索函數(shù)定義。
中級程序員會選擇用一個好一點(diǎn)的編輯器,每次找到函數(shù)定義只要 2 秒鐘,那么他每天將節(jié)約 10 分鐘,每年節(jié)約 40 個小時。如果能夠找到 3 個這樣的場景去優(yōu)化一下,那么對于中級程序員來說,每年可以節(jié)約一個月的時間。
(七)系統(tǒng)學(xué)習(xí)
學(xué)習(xí)是要有方法的,尤其是在職場中,程序員的自我學(xué)習(xí)要符合兩點(diǎn)要求:一是有結(jié)果;二是高效。因此,系統(tǒng)性學(xué)習(xí),非常重要。
高級程序員系統(tǒng)學(xué)習(xí)指南如下:
第一步,源碼分析??纯创笈J侨绾螌懘a的,提升技術(shù)審美,提升核心競爭力。
第二步,工程化。工欲善其事必先利其器,不管是小白,還是資深開發(fā),都需要先選擇好的工具,提升開發(fā)效率和團(tuán)隊(duì)協(xié)作效率,讓自己有更多的時間來思考。
第三步,分布式。從深度到廣度的完善自己的知識體系,準(zhǔn)備迎接高并發(fā)大數(shù)據(jù)的挑戰(zhàn)
第四步,微服務(wù)。繞微服務(wù)的通用模式,學(xué)習(xí)spring Cloud的常見用法及原理,讓微服務(wù)的開發(fā)更加方便 快捷,讓微服務(wù)應(yīng)用更加穩(wěn)定 可用。
第五步,性能優(yōu)化。從JVM底層原理到內(nèi)存優(yōu)化 再到各個中間件的性能調(diào)優(yōu),做最科學(xué)和最嚴(yán)謹(jǐn)?shù)男阅苷{(diào)優(yōu)。
第六步,并發(fā)編程。深入了解底層原理,不只是做一個開發(fā)者。
第七步,積極參加大牛的分享。
(八)總結(jié)
可以理解,對于初入職場的程序員來說,他們在內(nèi)心也知道學(xué)習(xí)的重要性,但因?yàn)闆]有時間,被老板的需求給填滿,沒有精力去提升自我。
然而,根據(jù)人類的學(xué)習(xí)曲線來說,任何一門新的技藝,都是一條對數(shù)曲線。其分為兩個階段:緩慢期和高速發(fā)展期,即初期很慢,后期進(jìn)展迅速。
如果,能夠讓程序員在剛進(jìn)入職場的時候,便擺脫初級程序員的桎梏,直接擁有中級程序員的實(shí)力,是不是就能跨越學(xué)習(xí)曲線的緩慢期呢。
在7月11日,知名IT教育機(jī)構(gòu)傳智播客將舉辦行業(yè)變革大會,屆時傳智播客知名行業(yè)大牛與大家一起探討,如何讓程序員剛?cè)肼殘?,便擁有中級程序員的實(shí)力。沒有時間或者不在北京的程序員,可以在線上觀看。
-
程序員
+關(guān)注
關(guān)注
4文章
949瀏覽量
29746
發(fā)布評論請先 登錄
相關(guān)推薦
評論