程序員如何面對不斷更新的框架?學(xué)了記不住怎么辦?
10年前第一次接觸Java,抱著一本《Java編程思想》啃,然后陸陸續(xù)續(xù)接觸了一些網(wǎng)頁開發(fā)的教程,最后和班上的小伙伴們一起完成了xxx管理系統(tǒng)。當時不會用搜索引擎,只能是自己對著書,通宵熬,寫了調(diào)試,有問題再改。現(xiàn)在回想起來,那時怎么那么笨,直接網(wǎng)上找個源碼改吧改吧不就行了嘛?看到了么,現(xiàn)在的我與其說是在“編程”,不如說我是在“抄”。你怎么看待這個問題呢?抽個空想想。
當然,一種思維方式的形成并不是一蹴而就的。它是在你生活工作中慢慢培養(yǎng)成形的。人,天生就喜歡走捷徑,即使他知道走捷徑的想法并不好,最終會自食惡果,但這種刻進基因里的意識想法時不時地就跑出來誘惑我們。在現(xiàn)在這個快節(jié)奏的時代里,短平快是所有人的追求。開源、分享、培訓(xùn)、干貨……你會發(fā)現(xiàn),這個時代最不缺的就是知識了,它就在那里,卻沒有留在你的腦海里。于是,很多人開始了知識焦慮。程序猿這種職業(yè)尤其明顯,科技帶給我們層出不窮的新應(yīng)用、新框架、新工具、新模式。你還沒完全弄清楚Java是什么的時候,人家都開始用Python去搞人工智能了。你以為自己在維持現(xiàn)狀,其實你在退步。你說苦惱不苦惱?時不時就看到別人薪資往幾十k的方向走,而你只能安慰自己穩(wěn)定一點也挺好。
為什么我們會成為這樣一個自己都鄙視的人?
1、學(xué)了容易忘怎么辦?
是不是很多人像我一樣,到現(xiàn)在為止都沒有把《Java編程思想》啃完一遍?有時候看到網(wǎng)上的分享,有人把這本書啃了好幾遍,心里那個嫉妒啊。然后鄙視下自己怎么就沒靜下心啃完呢?這兩年我開始改變了,我的的確確啃完了一本又一本書,突然覺得從書里獲取的知識確實比較全面些。以前特別喜歡看博客文章,看得挺過癮,覺得自己獲得了原作者的真?zhèn)?。不過,博客文章都是一個點,為了解決某個問題,或者某些個知識點。
書是看了,當時以為都明白了。比如有段時間看了Nginx相關(guān)的一本書,里面講到了配置文件的寫法。真正到工作中要寫的時候,懵逼了。另外,有很多原理理論解釋的書,人家總結(jié)的一條條,你看得很爽。合上書本,腦子空白了。有時候我在想我自己怎么感覺越學(xué)越覺得啥也不會了呢?
2、大家是不是在遇到不會的時候通過Google解決?
工作中遇到的問題,我基本都可以用Google來解決。說得好聽點是站在巨人的肩膀上,說難聽點就是看下別人是怎么解決的,有源碼最好。時間充足的時候,會看下文章里解決問題的完整思路。任務(wù)緊時間少的時候,本著“拿來主義”,只校驗正確與否。運氣好,根據(jù)第一篇文章寫的就可以解決問題。運氣不好的時候,全網(wǎng)找了也不一定能找到答案。一般到這個時候,只能靜下心想想問題出在哪了。想明白了,自己就可以寫一篇文章了。哈哈。
3、開源框架帶來的錯覺?
舉個例子,從Spring到Spring boot,框架越來越強大,需要我們配置的東西越來越少,使用起來越來越傻瓜了。很多工具,開箱即用,API高度封裝,只需要寫很少的代碼就可以實現(xiàn)很復(fù)雜的功能了。所以,我們這代人天天站在巨人們的肩膀上會產(chǎn)生一個錯覺,以為自己的編程能力越來越強了??墒聦嵳娴娜绱嗣?我們是否還需要深入了解各種框架的源碼?
會開車的人不一定會修車,我們只是把車當做一種交通工具而已。作為Java程序員,Spring boot讓你如此快速就可以構(gòu)建出一個web服務(wù),似乎是你根本都不需要了解HTTP了。你是否和我一樣有心虛的感覺呢?
3、程序員內(nèi)心的不確定?
像文章開頭提到的,在這個知識爆炸的時代,每個人都不可能把所有知識學(xué)完。程序猿所在的計算機科學(xué),分類之復(fù)雜,嘆為觀止。每年的熱詞層出不窮,五花八門。你的內(nèi)心能安定么?你以為PHP能一招鮮吃遍天下,你以為Java是萬能的,那你面對現(xiàn)在大數(shù)據(jù)、人工智能、物聯(lián)網(wǎng)大行其道的事實有沒有一點恐慌?都說程序猿的薪資非常高,直接導(dǎo)致了這個行業(yè)培訓(xùn)機構(gòu)遍地開花,只要花點錢就可以輕松踏入這個行業(yè)。門檻的降低必然導(dǎo)致競爭的惡化,越來越多的企業(yè)加入到加班壓榨程序員的行列來,對于那些重復(fù)性較多的崗位,年輕人的優(yōu)勢越來越明顯,而老程序猿們中年危機陡現(xiàn)。如果你是一線碼農(nóng),技術(shù)不成長和等死有什么區(qū)別?
年輕時對新技術(shù)有足夠的好奇心和耐心,當你踏入中年,有一部分精力會被劃分到管理崗位,真正編碼的時間會減少。你要考慮的問題就不再只是代碼本身了。你需要對商業(yè)、人事、技術(shù)架構(gòu)、行業(yè)等內(nèi)容付出時間和精力。一方面,不想在技術(shù)層面上落伍;另一方面,管理能力亟待提高。
4、專一?全棧?
全棧工程師越來越流行,單一的技能對于門檻不高的崗位來說競爭力越來越小了。大公司有明確的崗位分工,你只能負責(zé)某一個領(lǐng)域的某一個產(chǎn)品或者項目。而小公司,有可能一人身兼數(shù)職,全棧的需求更高。倒不是說你一個人扛起一個公司,而是你有能力指導(dǎo)其他人,把一個系統(tǒng)或者項目抓起來。任何一個環(huán)節(jié)出現(xiàn)問題,你可以臨時頂一頂或者想辦法能解決。所謂技多不壓身嘛。
當然,也有人認為術(shù)業(yè)有專攻。你的價值在于你在某方面是獨樹一幟的,無人可取代。個人認為,這個目標很好,但我們大多數(shù)人達不到這個高度。如果你能力超群,意志堅定,專一門挺好。如果你隨波逐流,只是想提高自己解決問題的綜合能力,全棧是一個不錯的思路。