IT程序員如何突破瓶頸期?
回答這個(gè)問題之前,小慕有話要說。一個(gè)人能夠發(fā)現(xiàn)自己遇到了瓶頸,說明他還有一顆追求上進(jìn)的心,并沒有選擇在現(xiàn)有的舒適圈里故步自封,這一點(diǎn)很值得鼓勵(lì)。
任何職業(yè)都有瓶頸期,程序員也不例外幾乎所有行業(yè)的從業(yè)人員都會(huì)遇到瓶頸期這個(gè)問題。拋開個(gè)人主觀上的原因先不談,從公司的層面來講,雇傭一個(gè)員工不是為了培養(yǎng)一個(gè)跨專業(yè)跨領(lǐng)域的技術(shù)專家,而只是為了獲得一個(gè)在某項(xiàng)業(yè)務(wù)方面熟練高效的技術(shù)工人,這種現(xiàn)象無疑加劇了個(gè)人瓶頸期的形成。
IT領(lǐng)域當(dāng)然也不能例外,IT行業(yè)本身就是一門技術(shù)特別顯性的行業(yè)。程序員工作范疇大而寬,知識(shí)內(nèi)容深而散,出現(xiàn)問題很容易,但是如果需要理解和解決問題,則涉及太多的知識(shí),所以相對(duì)較難,因此程序員比其他工種更容易出現(xiàn)瓶頸期。
程序員遭遇瓶頸期,有多種可能寬泛地說,小慕認(rèn)為程序員的瓶頸大致分為以下幾種:1.基礎(chǔ)知識(shí)缺乏
很多人在學(xué)習(xí)編程的時(shí)候,大都是針對(duì)需要解決的問題來學(xué)習(xí)的。只注重更快地上手掌握需要用到的工具,卻忽視了基礎(chǔ)知識(shí)的培養(yǎng)。對(duì)于更基礎(chǔ)的算法、計(jì)算機(jī)原理、網(wǎng)絡(luò)基礎(chǔ)等知識(shí),在真正理解之前,一般只能強(qiáng)行記憶,無法形成具體的知識(shí)體系不能“推斷”,造成了額外的心智負(fù)擔(dān)。
以Python舉例,許多初學(xué)者都遇到過:讀寫中文時(shí)總會(huì)出現(xiàn)這樣那樣的編碼錯(cuò)誤。求助之后得知:你可以打上編碼標(biāo)記,可以設(shè)置默認(rèn)編碼,也可以在讀寫時(shí)decode和encode解決問題,但卻不明白何要這么做,最終只能每種答案都試一試,運(yùn)氣好就不會(huì)報(bào)錯(cuò)。
如果這個(gè)問題落到一個(gè)懂得各種編碼的關(guān)聯(lián),明白字符在計(jì)算機(jī)中如何存儲(chǔ)和表達(dá)的人手里,就能很容易理解:
源碼的編碼標(biāo)記是為了告訴解釋器這個(gè)程序用何種編碼寫的;
設(shè)置默認(rèn)編碼是在不特別指出時(shí)以指定編碼來解碼讀入的字符,同時(shí)在輸出時(shí)把字符串按照指定編碼變?yōu)槎M(jìn)制流再交給系統(tǒng)底層進(jìn)行輸出;
以及encode是指把字符串變?yōu)槎M(jìn)制流,而decode則是反過來把二進(jìn)制流變?yōu)橛幸饬x的字符串。
同樣,對(duì)于算法、數(shù)據(jù)結(jié)構(gòu)等知識(shí),很多人僅僅停留在能夠應(yīng)付求職面試的水平,缺乏真正理解,而當(dāng)在工作中遇到具體的問題時(shí),往往就會(huì)覺得自己遭遇了瓶頸。當(dāng)你在編程遇到這樣的瓶頸時(shí),不妨稍稍“鉆鉆牛角尖”,把精力鎖定在基礎(chǔ)知識(shí)的穩(wěn)固與深究上,或許突破的鑰匙就隱藏在這些被忽略了的基礎(chǔ)知識(shí)里面。
2. 知識(shí)廣度不足
雖然程序員在工作中往往只專注于某一方向,但不同方向的編程知識(shí)也并非毫無關(guān)聯(lián)。有的程序員在遇到個(gè)人知識(shí)領(lǐng)域的邊界的問題時(shí),往往會(huì)不知所措,而這恰恰是知識(shí)的廣度不足而造成的瓶頸。
其實(shí)在編程的大圈子里,各個(gè)領(lǐng)域之間多少都有所互通。近些年前端火熱的MVVM模式,最早卻是來自于桌面應(yīng)用開發(fā)的圈子,服務(wù)端異步編程里的IO Loop,類似的結(jié)構(gòu)遍布各種GUI開發(fā)的事件系統(tǒng)中。
因此,在一個(gè)領(lǐng)域有一定認(rèn)識(shí)之后,大家也不妨拓寬視野,把目光看向其它有些許相關(guān)的領(lǐng)域,甚至找個(gè)新的語言,粗略地學(xué)習(xí)一番。即使這樣的學(xué)習(xí)并不一定能讓自己“轉(zhuǎn)行”,但其中的收獲和靈感往往能夠讓你在自己的領(lǐng)域中突破瓶頸,走的更遠(yuǎn)。
3. 偽瓶頸
當(dāng)你初次涉足某一個(gè)領(lǐng)域,所有的知識(shí)對(duì)于你來說都是新鮮的,大量且快速地吸收新的知識(shí)會(huì)讓你覺得自己每天都在進(jìn)步;但是經(jīng)過一兩年的工作磨合之后,你已經(jīng)可以對(duì)自己所負(fù)責(zé)的工作內(nèi)容得心應(yīng)手,并且能經(jīng)驗(yàn)老到的處理突發(fā)狀況,于是工作狀態(tài)便從之前的邊學(xué)邊做變成了現(xiàn)在的信手拈來。這種狀態(tài)看起來并沒有什么新的知識(shí)攝入,但這種現(xiàn)象卻叫做圈內(nèi)技術(shù)大圓滿。
小慕認(rèn)為,把圈內(nèi)技術(shù)大圓滿的現(xiàn)象叫做瓶頸顯然是不對(duì)的。真正的瓶頸期是經(jīng)過了一番努力也很難突破的障礙,比如你學(xué)習(xí)射箭,經(jīng)過練習(xí)之后達(dá)到了10米能射9環(huán)的成績(jī),為了獲得10環(huán)的成績(jī),你又經(jīng)過了一段時(shí)間的刻苦練習(xí),卻發(fā)現(xiàn)還是不能達(dá)到10環(huán),這才叫做瓶頸。
題主所說的也可能是在這半年或一年的時(shí)間里完成了圈內(nèi)技術(shù)大圓滿,讓自己進(jìn)入了一個(gè)舒適圈,并且沉迷在這種狀態(tài)中而不自知,就像,溫水煮青蛙。
突破這種偽瓶頸,走出舒適圈,學(xué)習(xí)一項(xiàng)圈外的新技能便是一種行之有效的快捷方式。IT領(lǐng)域目前正處于飛速發(fā)展時(shí)期,享受著大量資本紅利的同時(shí)也吸引了大量的年輕人涌入。技術(shù)的飛速迭代和新人的快速搶灘,將導(dǎo)致今天還很舒適的小島可能明天就被海水淹沒。所以只有讓自己從小圈子技術(shù)大圓滿成為小圈子技術(shù)深度大圓滿,才能不被淘汰下水(當(dāng)然,能成為大圈子技術(shù)深度大圓滿的話,那就更無敵了)。
4. 太疲憊
編程是很強(qiáng)的腦力勞動(dòng),長時(shí)間對(duì)著屏幕敲打鍵盤的同時(shí),腦子里還要構(gòu)想著自己所需要的設(shè)計(jì)。若是長時(shí)間困擾于某個(gè)問題,除了身體上的疲憊,心理上的挫敗感也不容忽視。很多時(shí)候這種挫敗感會(huì)讓程序員感覺到自己正遭遇瓶頸。
身體的疲憊可以通過運(yùn)動(dòng)和保健來調(diào)理,心理上的疲憊則需要一些更巧妙的手段。小慕的建議是適當(dāng)?shù)亟o自己放個(gè)假,太過緊繃的琴弦沒辦法奏出美妙的音樂,盡管程序員需要不斷地學(xué)習(xí)和提高,但與其一直逼迫著自己,不如在缺乏靈感的時(shí)候給內(nèi)心一個(gè)放松的空間。也許就在這期間,自己又能發(fā)現(xiàn)一些感興趣并且值得深入的新方向。
如何應(yīng)對(duì)瓶頸總之,程序員想要盡可能少地遭遇瓶頸,就要經(jīng)??纯醋约阂睦镒?,同時(shí)也回頭看看自己走了多遠(yuǎn)。
關(guān)于往哪兒走,可以看看Git Hub上的熱門項(xiàng)目,看看技術(shù)類的新聞,在工作之余也試著做一些其它自己感興趣的事情。搭建一個(gè)自己的博客服務(wù)對(duì)于單純的前端工程師或者后端工程師而言或許算不上很難的工作,但過程中會(huì)有所收獲;跟隨一個(gè)開源項(xiàng)目或者提交一個(gè)PR也許并不足夠引人注目,但也許能夠找到特別的靈感。
人工智能是2017年IT領(lǐng)域最熱的一個(gè)詞,雖說人工智能取代程序員看起來難度很大,但是架不住研究人工智能的那批人最熟練的事情就是寫代碼,那些你本以為不可能的事情,隨時(shí)可能發(fā)生。
今天熱得燙手的Java工程師很可能五年后會(huì)被一批需求描述工程師取代,所以了解我們的競(jìng)爭(zhēng)對(duì)手非常重要,這樣雖然不能改變長江后浪推前浪的趨勢(shì),但至少可以在被擊倒的時(shí)候體面一點(diǎn)。運(yùn)氣好的話萬一碰上一個(gè)新出現(xiàn)的風(fēng)口,或許還能吃到一波信息不對(duì)稱的紅利。
關(guān)于回頭看看,跟他人分享自己的知識(shí)和疑惑就是一個(gè)很好的辦法??梢赃x擇論壇交流、寫技術(shù)博客、知乎回答問題等手段來討論和總結(jié)自己的知識(shí)。
一方面,你會(huì)發(fā)現(xiàn)你的知識(shí)對(duì)于許多人而言也是十分高深的,可以增強(qiáng)繼續(xù)前行的信心;
另一方面,在分享知識(shí)的同時(shí),重新審視這之間的內(nèi)在聯(lián)系,深化記憶并加強(qiáng)理解,就像是零散知識(shí)點(diǎn)的一次梳理,隨著時(shí)間的推移將形成完整的知識(shí)體系,并讓你走得更遠(yuǎn)。
最后,小慕祝大家新手早日進(jìn)階。老鳥突破瓶頸,修得大圈子技術(shù)深度大圓滿。(為什么感覺這句話有種修仙的感覺)