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