App下載

怎樣做一個很出色的程序員?

猿友 2021-03-03 18:03:54 瀏覽數(shù) (6213)
反饋

一、擁有旺盛的好奇心,并能轉(zhuǎn)化為求知欲

好奇心是什么東西?

其實就是人的一種想要探索未知的短暫行為。

有很多程序員或者在工作中偶然碰到了一些新概念,或者自己業(yè)余主動探索了一些新概念。然后,覺得這些東西很好玩兒,就興起了探索的欲望,這玩意兒就是好奇心。

但小王也見過不少程序員,尤其是年紀大點的,那見了新概念和新技術(shù),就跟給媳婦交公糧一樣,避之唯恐不及。這對嗎?這不對。

所以,年輕程序員的好奇心,它就跟圍棋建立了先手優(yōu)勢一樣,可以不講武德,有了直線超車老同志的資本。

可是,只有好奇心還不夠。好奇心這玩意兒就跟普通人看明星八卦一樣,是個人有興趣了,都能追追,沒啥門檻。

有門檻的是什么?求知欲。

這可厲害了,就像普通人追明星八卦覺得不夠,于是變身成為狗仔隊,直接干成了職業(yè)的。狗仔隊要追明星隱私很辛苦的,上山爬樹,裝電線桿子,啥都得干。

求知欲就類似這種,你得把好奇心轉(zhuǎn)化成一種穩(wěn)定的認知欲望,需要堅持不懈,需要付出辛苦,這就是門檻。

小王原來就有個同事,不知道從哪里知道了 go 語言,那時候,go 語言剛出來不久,連個成熟的編輯器也沒有。

小王這同事,人家就有那種好奇心,先去搜了搜概念,然后又研究了下 go 語言的技術(shù)文檔。頓時,他覺得 go 很有前途,好奇心就變成了求知欲,一路跟著 go 成長。工作中,也是想辦法用 go 做點小項目,小工具。

得,短短三四年,人家就成了 go 語言領(lǐng)域的大牛,出書,講座不斷。這就是好奇心轉(zhuǎn)化成求知欲的好處。

有了好奇心,你可能就有了一個進入新的技術(shù)藍海的機會,而有了求知欲,就意味著你可能有了在藍海建立自己的話語權(quán)的資格。

所以,小王的那些后來發(fā)展的非常好的前同事們,大多數(shù)人都擁有這種鮮明的共性,這個共性,讓你的職業(yè)生涯很可能將會擁有別人沒有的先發(fā)優(yōu)勢。

二、 勇于嘗試新技術(shù)并能快速掌握

一個人有了好奇心求知欲就完了嗎?那不能,這可不夠。

除了好奇去探索外,你還得有把探索所得,轉(zhuǎn)化成自己經(jīng)驗的能力。這種能力的外在表現(xiàn)就是勇于嘗試新技術(shù),而且還得快速掌握。

再舉個小王另一個同事的例子,這個同事在工作中遇到了一個問題,就是存儲海量數(shù)據(jù)的問題。那時候,還是 2008 年,這人剛畢業(yè)不到一年。他知道了 HDFS 這技術(shù),就想著能不能把這東西用到項目上。

可是,他只是個小年輕,人微言輕,怎么辦?他也有本事,人家利用業(yè)余時間,沒日沒夜花了一周時間,自己搞了環(huán)境,又寫了 Demo,還寫程序模擬了大量數(shù)據(jù)去測試。

然后把這些拿給領(lǐng)導(dǎo)看,得,有理有據(jù),最牛的是這哥們兒還弄了個像樣的圖表。

OK,徹底 KO 了領(lǐng)導(dǎo)。

這個小伙子后來逐漸成了這個項目中的最懂大數(shù)據(jù)的人。再后來,小伙子跳槽去了百度搞鳳巢,如今人家又去了 Google,再 Transfer 到美國,活得有聲有色的。

所以,有了好奇心,有了求知欲,你還得把學(xué)到的東西落地,形成自己的獨到經(jīng)驗,還得讓別人知道你掌握了它,這樣這個先發(fā)優(yōu)勢就進一步落了地,你的職業(yè)生涯可能開始有了自己的小地位了。

三、 用批判性思維批判下

你有了求知欲,又有了落地的能力,但是要把握好怎么落地?何時落地?

一般來說,在我們工作中,如果想應(yīng)用新技術(shù),就得找到現(xiàn)有方案的不足。有了不足,把不足作為切入點,和領(lǐng)導(dǎo)談?wù)?,在項目的某些小地方可以先嘗試你想搞的新技術(shù)。一般來說也沒啥問題。

除了找現(xiàn)有項目的茬,你還得明白新技術(shù)有哪些坑。

新技術(shù)一般為了快速推廣,往往夸大其詞,搞得世界沒了它就要滅亡一樣。

這時候,怎么找到新技術(shù)的問題和不足,是至關(guān)重要的。找到不足,你既可以把控落地到項目中的風(fēng)險,也有了去當這項新技術(shù) Commiter 的機會,再不濟去提個 Issue 刷刷存在感也是好的。這對將來職業(yè)發(fā)展都是大有幫助的啊。

那找新技術(shù)的不足就需要批判思維了。這批判性思維的前提,就是要求你能獨立思考,獨立判斷,不是做做樣子,找個小問題就行了的。

有一陣子,小王的公司項目一直是用的 Spring MVC 搞 Web 項目。有個同事用了覺得很麻煩。為啥?因為在 Spring MVC 需要大量的配置,每次搞一個小項目都需要大量的改動配置。如果再加個 Hibernate,那配置把人要搞瘋。

于是,這個同事就想到了 SpringBoot。但是在用 SpringBoot 之前,他認為,SpringBoot 也是剛推出不久的,肯定也有自己的問題。于是,他就去 Google 上用 SpringBoot challenge 這種關(guān)鍵字,挖出了不少坑出來。

同時,又發(fā)現(xiàn) SpringBoot 封裝的太好了,他又認為封裝的太過易用,如果出現(xiàn)了一些底層問題,估計不好解決。他把這些優(yōu)勢和劣勢統(tǒng)統(tǒng)搞了個報告,去申請 SpringBoot 試用。申請過后,他又從各方面審視項目的各種不足,不斷改進問題。

獨立思考,以批判的眼光找到現(xiàn)有的不足,以批判性思維找到可以改進的方向,你將在自己的團隊中擁有自己的行業(yè)話語權(quán),項目前進的方向也可以在你的主導(dǎo)下進行。

四、現(xiàn)實點,別吹牛逼

小王和小馬談到現(xiàn)在行業(yè)內(nèi)存在的一些弊病的時候,不禁搖頭嘆氣?,F(xiàn)在行業(yè)內(nèi),做事飄得多,踏實的少。

掌握點兒 Docker,就給你吹自己掌握了云技術(shù)。了解點兒 SpringBoot、SpringCloud,就告訴你精通了微服務(wù)。

可是,就小王的經(jīng)驗,真能成功的,那都是腳踏實地的實干者。

實干者們對一個項目,有著充分的評估,能在最壞的情況時,拿出早就準備好的方案。能在項目出現(xiàn)延期風(fēng)險的時候,作出提前而精準的判斷。

而這些,可不是那些夸夸其談的營銷類、建立類、PPT 類程序員能搞定的。

需要沉下心來,去了解項目可能出現(xiàn)的問題的每一個核心原因。沉下心了解問題核心,可不僅僅是給項目帶來好處。這東西可以直接訓(xùn)練人們處理問題的思路,也能加強對項目風(fēng)險預(yù)測的嗅覺。這兩種東西對將來團隊管理、項目管理的好處就不言而喻了。

做事兒踏實點,錯不了。

青銅圣斗士有了第七感能打敗黃金圣斗士。你有了敏銳的解決問題思路和預(yù)先嗅到風(fēng)險的感覺,就能踢開阻擋你突飛猛進的攔路虎。

五、啥都知道點,關(guān)心些職責(zé)之外的

小王、小馬身邊那些成功的程序員們,做事可不是只悶頭做自己眼前這點兒就行了。

人家從小兵子的時候,工作除了擰螺絲,還會關(guān)心整個航母。當個后端工程師,人家把前端的活兒也攬過來,把前端框架了解的透透的。寫個業(yè)務(wù)代碼,順便把底層框架摸了個滾瓜爛熟。

工作態(tài)度主動點兒,干好自己手頭工作之余,盡可能的去多多了解整個項目。把項目弄的越熟悉,項目就越離不開你,這時候,別人還會把你看成小兵子嗎?

以上說了這么多,小王自己全都做到了嗎?沒有,知易行難嘛,小王只是像數(shù)學(xué)的極限一樣,不斷地逼近這些特點。小王期待自己最終也會破繭而出,能變得更加出色。


推薦好課:初級腳本算法、正則表達式、JavaScript面向?qū)ο缶幊?/a>


0 人點贊