程序員最重要的能力是什么?
不管是什么行業(yè),無(wú)論是工作還是學(xué)習(xí), 我們經(jīng)常會(huì)思考一個(gè)問題:對(duì)于目前的 職業(yè)來(lái)說(shuō),最重要的能力是什么?
今天我們邀請(qǐng)了 4 名淘系技術(shù)的工程師,給大家分享一些 他們認(rèn)為最重要的能力 ,希望能夠?yàn)槟闾峁┮环輩⒖肌?/p>
01
淘系技術(shù)部 繁易
對(duì)寫代碼始終充滿興趣,這是我一切的源動(dòng)力。
過(guò)往 - 從 HR 專業(yè)學(xué)生到程序員繁易
我是一名半路出家的程序員。高中讀的文科,大學(xué)選的人力資源管理專業(yè),生活如果按部就班的下去,這個(gè)世界或許會(huì)多一位叫繁易的 HR 或者獵頭,波瀾不驚。
引導(dǎo)我走上程序員之路的故事也很簡(jiǎn)單,2014 年剛?cè)雽W(xué),大一課程少,期末時(shí)便在網(wǎng)絡(luò)上自學(xué)起了 C 語(yǔ)言,當(dāng)時(shí)沒有電腦就在手機(jī)上的 C 語(yǔ)言軟件敲著簡(jiǎn)單的 if/else
,就這樣我入坑了。
往后的半年中,編程的學(xué)習(xí)也并沒有像想象中的那樣順利。學(xué)習(xí)進(jìn)度停滯不前。我還清楚的記得當(dāng)時(shí)的自己:“會(huì)用20門語(yǔ)言輸出Hello World!”,“別人一周就能上手的 BootStrap 我學(xué)了四個(gè)月” 等諸如此類的事情。
雖然整個(gè)過(guò)程中極其令人喪氣, 但我始終知道,我對(duì)寫代碼這件事情是抱有極大的興趣的 。在當(dāng)時(shí)同齡的同學(xué)已經(jīng)紛紛在準(zhǔn)備考證、找實(shí)習(xí)之類的事情,而我依舊樂此不疲。
我想, 如果不是因?yàn)檎娴挠信d趣,我大概會(huì)放棄編程,選擇做一些“更適合”自己的工作 。
成長(zhǎng) - 從“年輕工程師”到阿里前端技術(shù)專家
在學(xué)寫代碼半年后,偶然的一個(gè)契機(jī),我找到了愿意帶我寫代碼的同學(xué),并磕磕絆絆的完成了第一次 Ajax
操作。那之后的我仿佛開竅了一般,編程世界的大門,終于向我敞開,任我探索和遨游。
直到有一天,我遇到了瓶頸。 2016 年的前端,技術(shù)日新月異,當(dāng)時(shí)的我頗有一些手足無(wú)措,總覺得時(shí)間不夠用。于是在參加當(dāng)年的 JSConf 時(shí),遇見了當(dāng)時(shí)前端圈的名人賀師?。℉ax),于是便壯著膽上去交流了一番。
對(duì)話的內(nèi)容我只記得個(gè)大概,在交流結(jié)束時(shí)我向賀老致謝,他回復(fù)我說(shuō):“學(xué)東西不要有那么強(qiáng)的功利心,而且對(duì)于我來(lái)說(shuō),能幫你們這些年輕的工程師就非常好了。”
在那時(shí)候我發(fā)現(xiàn),對(duì) 編程的興趣已經(jīng)托著我從學(xué)生過(guò)渡到大家眼里“年輕的工程師”了 ,我想 我會(huì)繼續(xù)帶著興趣走下去,盡全力去 Coding 就行 。
時(shí)間一晃眼已經(jīng)過(guò)去了 5 年,當(dāng)年的學(xué)生,也從“年輕的工程師”蛻變成了阿里的前端技術(shù)專家, 身份在變、環(huán)境在變、技術(shù)在變,只有對(duì)代碼的興趣沒有改變 。
開源 - 從 Node.js 使用者到 Node.js Collaborator
由興趣驅(qū)動(dòng)的源動(dòng)力,往往是純粹且不摻雜利益的,而在軟件世界中, 興趣驅(qū)動(dòng)與開源精神是高度契合的 。
在 2020 年冬季到來(lái)的時(shí)候,我遇到了新的瓶頸,想學(xué)習(xí)更多 Node.js 的知識(shí)卻不知從何下手。
這一次我的選擇是參與 Node.js 開源社區(qū)的協(xié)作。我開始閱讀 Node.js 的源碼,解決 Github 上的 Issue 等。在事后提名 Node.js Core Collaborator 時(shí),我統(tǒng)計(jì)了一下,兩個(gè)月的時(shí)間內(nèi)我一共提出了 50+ 的 Pull Request。
現(xiàn)在回頭來(lái)看, 這些與實(shí)際工作“無(wú)關(guān)的興趣”,最終支撐著我走的更遠(yuǎn) ,現(xiàn)在的我在 Node.js 架構(gòu)團(tuán)隊(duì),全職負(fù)責(zé)著 Node.js 的工作,個(gè)人的眼界也開拓了許多。
總結(jié) - 興趣與代碼
在別人眼里,我是枯坐一整天的“怪人”,在我的腦海中,我是“鍵新世界(阿里 2018 年校招 Slogan)”的程序員。
因?yàn)槭桥d趣,所以獲得成長(zhǎng)時(shí)會(huì)快樂,而停滯不前時(shí)也不會(huì)焦慮與抱怨。對(duì)代碼的興趣支撐我走到了現(xiàn)在,我想后面也會(huì)是一樣。
這就是我眼中程序員最重要的能力與我的經(jīng)歷。
02
淘系技術(shù)部 寶瀾
在我的角度看,不同階段不同場(chǎng)景都會(huì)產(chǎn)生問題,他們分別對(duì)應(yīng)不同的能力,需要分析問題根本原因并通過(guò)不同手段解決,更考驗(yàn)人的綜合能力。
作為程序員,你認(rèn)為最重要的能力是什么?
新手剛?cè)腴T時(shí),需要掌握寫代碼的能力,熟悉工作后,我們不能僅僅滿足于是代碼的搬運(yùn)工,還需要具有深入分析問題和精準(zhǔn)解決問題的能力。這個(gè)能力不是縱向某一個(gè)領(lǐng)域,更類似于思考問題的方式。
在項(xiàng)目合作、業(yè)務(wù)溝通、個(gè)人成長(zhǎng)、人際交往、績(jī)效考核各類場(chǎng)景,我們都會(huì)遇到一個(gè)共有的名詞”問題“,由于“問題”產(chǎn)生的背景、原因和影響都不同,如何分析問題個(gè)根本原因并通過(guò)各種手段去解決它,非??简?yàn)我們個(gè)人的綜合素養(yǎng)和能力。
為什么你會(huì)認(rèn)為這個(gè)能力是最重要的?
掌握了這份能力,(你就是勇敢牛牛,不怕困難?。┘词挂院蟛皇浅绦騿T,對(duì)我們其他的職業(yè)發(fā)展方向也會(huì)有很多幫助。
你通過(guò)什么事情認(rèn)識(shí)到這點(diǎn)?
總結(jié)工作中的規(guī)律并將這類經(jīng)驗(yàn)抽象化。
生活中的任何事物都有其生命周期,無(wú)論是食物、工作還是代碼,都存在開始,發(fā)展,結(jié)束的過(guò)程。
而影響我們發(fā)展的周期和發(fā)展趨勢(shì)中,最重要的影響因素就是“問題”,我們能否發(fā)現(xiàn)阻礙我們發(fā)展的“問題”,尋找產(chǎn)生的原因并修復(fù)它,決定了我們這個(gè)函數(shù)是正趨勢(shì)還是負(fù)趨勢(shì)。
你現(xiàn)在是否擁有這樣的能力?如果沒有,你是怎么學(xué)習(xí)調(diào)整的?
現(xiàn)在我個(gè)人還不完全具備這種能力,因?yàn)檫@個(gè)能力它是伴隨著我們對(duì)“未知”的深入了解才逐漸增強(qiáng)的。
當(dāng)我們?cè)谝粋€(gè)工作中遇到了困難,沒辦法突破時(shí),其實(shí)往往是因?yàn)槲覀儗?duì)它的不了解或者是我們對(duì)未知事物的恐懼,能我們?yōu)榱税l(fā)現(xiàn)這個(gè)“問題”尋找解決這個(gè)問題的“方法”時(shí),就需要不斷學(xué)習(xí)學(xué)習(xí)學(xué)習(xí),俗話說(shuō)“知己知彼百戰(zhàn)百勝”,了解對(duì)手,才有機(jī)會(huì)戰(zhàn)勝對(duì)手,才能找到對(duì)手的“痛點(diǎn)”和“軟肋”,而學(xué)習(xí)的過(guò)程,就是我們尋找問題產(chǎn)生原因的過(guò)程,找到"軟肋",就是我們找到解決方法的過(guò)程。
一般我會(huì)通過(guò)這樣一個(gè)流程去提升:
-
分析
-
認(rèn)清問題:先好好審題再答卷,不要停留在“表面”
-
解決
-
尋找已有方案:先看別人怎么解決,如果沒有,尋找問題之間的共性并關(guān)聯(lián)起來(lái),產(chǎn)出自己的解決方案;
-
拆解問題:大矛盾自己一個(gè)人解決不了,就將其拆解,分清主次,或者尋找能幫助解決問題的人;
-
平時(shí)多積累經(jīng)驗(yàn),學(xué)習(xí)別人的思維方式;
03
淘系技術(shù)部 柳千
于我而言,最重要的能力是「好奇心」,或者換個(gè)詞叫「求知欲」、也可以叫「探索精神」。
保持好奇心
我是一個(gè)充滿好奇心的人,我喜歡問為什么?在我五年多的職業(yè)生涯中,有接近 2/3 時(shí)間在做 Cloud IDE 相關(guān)的工作,可以說(shuō)正是好奇心驅(qū)使我做了這么多年,以至于有段時(shí)間完全忘記了自己本職是一名「前端工程師」。記得那個(gè)著名的前端面試題嗎?—— 從輸入 URL 到頁(yè)面展示到底發(fā)生了什么?我想知道從按下「.」符號(hào)到 IDE 彈出提示框之間到底發(fā)生了什么? 為什么 VS Code 相比同類技術(shù)棧的產(chǎn)品這么快?Refactor 是如何實(shí)現(xiàn)的?當(dāng)你嘗試自己去解答某個(gè)問題時(shí),一定是將這個(gè)問題拆解為很多個(gè)小問題,一步一步深入下去,最后再找到答案。重復(fù)這個(gè)過(guò)程很多次會(huì)不斷的鍛煉你的思維模式,也一定會(huì)學(xué)習(xí)到優(yōu)秀的架構(gòu)設(shè)計(jì)、更好的源碼閱讀與調(diào)試技巧、性能優(yōu)化技巧等等...軟件行業(yè)每一個(gè)看起來(lái)很小的點(diǎn),深入下去都包含著非常復(fù)雜的背景和設(shè)計(jì)??赡苡腥藭?huì)問為什么我一個(gè)「前端工程師」要了解這些東西,前端不是應(yīng)該只關(guān)心切圖畫網(wǎng)頁(yè)嗎?還是那句老話,我先是一個(gè)工程師,然后才是前端工程師。
不設(shè)限
前端只是軟件開發(fā)領(lǐng)域中很小的一部分,如果我只是習(xí)慣性的將自己的思維限制在「前端」這個(gè)領(lǐng)域,那么很難獲得真正的成長(zhǎng)。保持對(duì)其他領(lǐng)域的好奇心與求知欲,不要給自己太多諸如「xxx 工程師不需要知道這些」的限制。前端程序員可以了解游戲領(lǐng)域的知識(shí)嗎?后端程序員可以了解音視頻處理嗎?客戶端程序員需要了解高并發(fā)、容器化嗎?如果你只需要一技傍身來(lái)解決生存問題,那基本是不需要的。但我還是建議對(duì)自己感興趣的事物保持好奇心,勇于探索各種不了解的領(lǐng)域,在這個(gè)過(guò)程中不斷吸收新的知識(shí)、技能,也許收獲會(huì)比單純得到一個(gè)問題的答案更多。
放大到程序員這個(gè)職業(yè)也是一樣,不要將自己陷入程序員的思維定式中,覺得「程序員應(yīng)該xxx,不應(yīng)該xxxx」。我認(rèn)識(shí)的許多優(yōu)秀的工程師涉獵非常廣泛,攝影、健身、游戲、B 站 Up 主、視覺設(shè)計(jì)。我也認(rèn)識(shí)幾個(gè)優(yōu)秀的設(shè)計(jì)師能寫一手代碼、畫 PRD。雖說(shuō)隔行如隔山,但我相信程序員的學(xué)習(xí)能力都不會(huì)太差,適當(dāng)?shù)慕佑|其他領(lǐng)域給自己帶來(lái)的是全方位的成長(zhǎng)。
04
淘系技術(shù)部 福豆
信息技術(shù)行業(yè)的發(fā)展日新月異,每天都會(huì)出現(xiàn)新內(nèi)容,一直保持學(xué)習(xí)的狀態(tài)非常重要。
保有好奇心的重要性
信息技術(shù)區(qū)別于傳統(tǒng)行業(yè),發(fā)展很快,新技術(shù)日新月異,昨天是傳統(tǒng)的統(tǒng)計(jì)學(xué)習(xí),今天就是深度學(xué)習(xí),明天可能就是量子計(jì)算。
在這個(gè)“長(zhǎng)江后浪推前浪”的大潮中,保持對(duì)新事物的好奇心和探索就顯得尤為重要。
好奇心可以讓我們主動(dòng)接觸新技術(shù),而不是被迫的后知后覺,可以讓我們的日常工作變?yōu)樽陨淼呐d趣,而不會(huì)覺得工作是個(gè)負(fù)擔(dān),只為了完成績(jī)效,同樣好奇心也可以讓我們的工作做的更加出色,不僅僅滿足于完成和結(jié)束。
在我長(zhǎng)期學(xué)習(xí)和工作中,逐漸感覺一直保持對(duì)新事物的興趣可以讓我忘掉加班加點(diǎn)的疲勞,覺得一天的思考讓自己在項(xiàng)目或者業(yè)務(wù)上邁出了一小步,會(huì)覺得比較有成就感,在一步步推動(dòng)一件事情發(fā)展。
比如以前完成第一個(gè)研究課題,又或者剛開始工作時(shí)接觸第一個(gè)比較有挑戰(zhàn)性的項(xiàng)目時(shí),可以直接參考的解決方案都屈指可數(shù),要把一個(gè)方案落地或者完善成論文都不是一蹴而就的。在這個(gè)過(guò)程中,我遇到過(guò)許多想放棄的時(shí)刻,明明有更穩(wěn)健、風(fēng)險(xiǎn)更小的任務(wù),為什么我要偏偏走上這條路,也成了每天反問自己的問題。幸運(yùn)的是,我仍然保持著本科學(xué)生時(shí)代對(duì)知識(shí)的好奇,想想自己在這個(gè)探索的過(guò)程中還可以滿足自己的興趣,能夠提升自己解決問題的能力,并不是僅僅為了完成任務(wù),從而讓自己在困難的時(shí)候堅(jiān)持了下去,也在項(xiàng)目的后期更加專注解決問題本身帶來(lái)的喜悅感和成就感,而不是關(guān)注功利性的東西,進(jìn)而最后讓自己滿意的看到努力的結(jié)果。
保持好奇心可以使工作和生活處于一個(gè)良性循環(huán)的過(guò)程,將自己的工作轉(zhuǎn)變?yōu)樘剿魑粗呐d趣,融入自己的生活一部分,也同時(shí)讓好好工作真正為生活服務(wù)。
此外,基于好奇心促成項(xiàng)目的成功,讓我對(duì)于未來(lái)的業(yè)務(wù)或者項(xiàng)目更加有自信,對(duì)后面的新事情更加有激情,不疲倦。
每天不忘學(xué)習(xí)新技術(shù),一點(diǎn)一點(diǎn)積累,也不會(huì)被落伍,讓大腦時(shí)刻進(jìn)步,掌握學(xué)習(xí)學(xué)習(xí)的方法而不僅是完成一項(xiàng)任務(wù)。
結(jié)語(yǔ)
如上,沒有永恒最重要的能力,只有對(duì)于不同階段來(lái)說(shuō)相對(duì)更重要的能力。保持好奇心,保持學(xué)習(xí)的狀態(tài),去面對(duì)不同階段的不同挑戰(zhàn)吧。






