作者 | zishunchen
作為互聯(lián)網(wǎng)行業(yè)的技術(shù)從業(yè)人員,在職業(yè)發(fā)展的道路上,不少同學會遇到職業(yè)發(fā)展的成長瓶頸,例如:可學的技術(shù)繁多,精力不足;技能和業(yè)務(wù)不匹配,找不到突破;技術(shù)答辯屢屢受挫,無法體現(xiàn)價值等等。以及被塑造的“程序員 35歲論調(diào)”,使整個行業(yè)變得焦慮。
筆者作為鵝廠行家平臺的咨詢老師以及前端技術(shù)專家,總結(jié)了兩個大家關(guān)心的問題:
- 如何尋找技術(shù)突破:從事前端開發(fā)多年,技術(shù)進步遇到瓶頸,一直在做螺絲釘?shù)墓ぷ?,且有一些年齡焦慮。
- 如何體現(xiàn)技術(shù)價值:不善言辭,不知道如何在技術(shù)答辯或者交流時突出自己的工作亮點。
結(jié)合筆者自身經(jīng)歷和理解,和大家分享。也希望以下的內(nèi)容,可以幫助到熱愛前端,熱愛技術(shù)的同學們可以走得更遠。
一、如何尋找技術(shù)突破
典型問題:前端開發(fā)的廣度和深度的取舍,新的技術(shù)和業(yè)務(wù)場景脫鉤,如何提升自己的業(yè)務(wù)敏感度?
新技術(shù)的學習,固然讓人倍感興奮。在人類的基因里,好奇心刻在骨子里。作為程序員,我們始終需要不斷思考一個問題:我們期望用技術(shù)解決什么問題?
1. 從問題出發(fā)
做QQ空間的時候,我們遇到的問題是:網(wǎng)絡(luò)質(zhì)量普遍很差;用戶規(guī)模突增,服務(wù)器成本指數(shù)增長。為了解決“小水管”也能體驗富媒體的web產(chǎn)品問題。 前端性能優(yōu)化就變得尤其關(guān)鍵。
從統(tǒng)一框架解決瀏覽器兼容性問題,到監(jiān)控指標體系建設(shè),再到前端模塊化開發(fā)模式。早在10年前就已經(jīng)陸續(xù)在業(yè)務(wù)中落地,并且取得很好的效果。
現(xiàn)在看起來應(yīng)該算是一種技術(shù)突破吧。我們遇到很多技術(shù)挑戰(zhàn),在當時都是沒有現(xiàn)成的方法可以參考。做別人沒做過,解決最難的問題,并且把技術(shù)做到最好 。而這個過程,則需要有足夠的耐心和堅持,不斷摸索和求證。
2. 從結(jié)果反推導(dǎo)
在公司做了很長時間的通道面試官,參與了數(shù)不清的前端同學的技術(shù)答辯和招聘面試工作。不少同學在面對復(fù)雜技術(shù)問題的時候,容易受限在垂直技術(shù)領(lǐng)域中尋找解決方案。
舉個案例:我曾經(jīng)遇到過一個候選者,他告訴我,其精通前端react開發(fā)框架。我問,業(yè)務(wù)本身并沒有采用react進行研發(fā),如果參與過來需要重新學習,你會有什么辦法?候選人回答,他非常希望找到一個能繼續(xù)用react技術(shù)開發(fā)的業(yè)務(wù)。
這個案例可能比較極端,但事實上,我們會因過往經(jīng)驗,陷入先入為主,對號入座的思維模式:通過已掌握的工具去找問題,而不是通過問題去找適合的工具。
技術(shù)學習和技術(shù)突破,一個是過程,一個是結(jié)果。如果我們能夠從結(jié)果出發(fā),去思考:要解決當前問題,需要掌握什么樣的技術(shù)。就能夠?qū)W到更多東西、且學得更深刻。
3. 學會發(fā)現(xiàn)問題
在一線做研發(fā)工作的時候,當我的研發(fā)效率可以做到完全獨當一面后。我經(jīng)常會被leader挑戰(zhàn)的問題是:“你應(yīng)該學會自己去發(fā)現(xiàn)有價值的問題”。
作為打工人,進入職場,我們會習慣一種被安排的工作模式。產(chǎn)品提需求,技術(shù)完成需求。日復(fù)一日,這很容易讓人陷入一種螺絲釘?shù)臓顟B(tài)。久而久之,我們會缺乏目標和發(fā)現(xiàn)問題的能力。
在我們掌握各種研發(fā)工具,提升了研發(fā)效率后。我的理解是,這些效率的提升都是為了讓我們有更多時間和空間去思考:用戶或者客戶的痛點、產(chǎn)品或者業(yè)務(wù)上的問題、甚至是平臺和生態(tài)的關(guān)系。而作為前端程序員,我認為:除了技術(shù)技能外,前端同樣需要具備一定的產(chǎn)品感,能夠積極思考用戶和業(yè)務(wù)問題。
當然也需要避免,發(fā)現(xiàn)問題就必須解決問題的技術(shù)思維陷阱。因為很多問題的優(yōu)先級和重要性,是需要和團隊多溝通交流才能找到更多為什么。
二、如何體現(xiàn)技術(shù)價值
典型問題:如果不善言辭,應(yīng)該如何突出自己的工作亮點?
做技術(shù)答辯時,并不需要我們有非常華麗的口才。其重點是平時工作的積累,思考,以及總結(jié)能力。簡而言之,就是把我們所做的事情,抽象成一種創(chuàng)新的方法論。
1. 提出創(chuàng)新的技術(shù)方案
前端非常注重性能優(yōu)化,前端經(jīng)過十多年發(fā)展,已經(jīng)沉淀成許許多多技術(shù)最佳實踐和方法,這意味著技術(shù)成熟變得常規(guī)和有規(guī)可循。比方說你要減少加載時間,很容易想到用圖片壓縮的技術(shù),做緩存,CDN加速等技術(shù)。
如果我們答辯的時候,還在陳述常規(guī)技術(shù)手段,那么是無法體現(xiàn)出你獨特價值的。也就是工作很長時間的技術(shù)同學會陷入一種困境 “感覺前端的技術(shù)眼花繚亂, 但是每個方向的天花板并不高, 如何形成自己的競爭力” 。
在鵝廠,不少技術(shù)同學答辯過不了,不是因為他沒做好本職工作,而是僅完成常規(guī)的工作,并沒有留下一些讓其他人記住你做過什么事情的印象。
我們要明白一點,絕大多數(shù)新技術(shù),都源自現(xiàn)有技術(shù)的重新組合。 我們需要真正掌握和理解已有的技術(shù),根據(jù)業(yè)務(wù)需要,去組合出更好的原創(chuàng)解決方案。如果要打破技術(shù)重組,那就需要我們?nèi)ダ斫夂芏嗉夹g(shù)背后的原理和系統(tǒng)。比如:小程序是對web技術(shù)的一次重組,flutter 是對端渲染技術(shù)的一次重組,vue 是對dom操作模式的一次重組。
我自己的思考和總結(jié),給大家兩點建議:
- 不盲從新技術(shù),學會抽象分析,解構(gòu)
- 不要技術(shù)設(shè)限,學會系統(tǒng)問題,總結(jié)
最重要的是,不要害怕面對困難,敢于去挑戰(zhàn),承擔。學會做好技術(shù)規(guī)劃,做好成本和風險管理。才能達到 “程序員不能說不” 的境界。
2. 挖掘背后的動因
通道評審并不會去很刻意要求每個人都能說會道,因為這個不是技術(shù)通道評審的目的。
很多技術(shù)人員在答辯的時候不是不會講,而是不知道如何把自己做過的事情表達清楚。
舉個例子,有些員工答辯的時候很像工作匯報,把他做的事情全部復(fù)述了一遍,把通道要求里的建議掌握技能都羅列了一遍。這里面就存在一個很大的問題:忽略了動因,沒有把技術(shù)執(zhí)行背后的原因和思考講清楚。
例如,一個很典型的技術(shù)邏輯思維:發(fā)現(xiàn)問題 → 技術(shù)選型 → 量化驗證 → 調(diào)優(yōu)。一個問題通常會有好多種技術(shù)解法,那你為什么選擇了現(xiàn)在這個方法,它是最優(yōu)解嗎?你背后的思考和對比是什么? 選擇的這個方案有哪些優(yōu)點和缺點? … 我們要把這些東西講出來。
曾經(jīng),facebook來鵝廠分享他們的前端優(yōu)化手段,最后一句話印象深刻,“我們的方案并不見得適合你們” 。由此可見,我們更應(yīng)該吸收的是為何做,而不是如何做。
最后,也希望大家能夠擺脫“我是xxx程序員” 的技能枷鎖。成為真正的程序員,去面對問題,去解決問題。如有可能,也很建議程序員同學們,去努力提升語言表達能力,畢竟這也是可以通過練習獲得進步的。
3. 個人的經(jīng)驗總結(jié)和感悟
公司從最開始的用戶互聯(lián)網(wǎng)發(fā)展到現(xiàn)在的產(chǎn)業(yè)互聯(lián)網(wǎng),有很多角色已經(jīng)開始變化了,我覺得這個變化其實讓機會更多了。
如果業(yè)務(wù)還在做C端,那我們還是要保持對C端體驗的極致追求。如果是在做B端的能力,可以多去關(guān)注整體效率的問題,儲能賦能。
對前端而言,我認為他更應(yīng)該結(jié)合行業(yè)需求去思考自身的定位。舉個例子,我們做云開發(fā)能力的同學,雖然在公司里的職位是前端開發(fā),但放眼整個行業(yè)來說,其實做的是行業(yè)的后臺。那你做這樣的后臺,該靠什么能力賦能解決行業(yè)問題,怎么幫助這個行業(yè)更好地去提升產(chǎn)能和效率。
我遇到很多做B端前端開發(fā)的小伙伴,常常感到困惑,覺得我在這個里面做的事情好像沒有什么調(diào)優(yōu)價值,或者沒有什么成就感。因為他們可能自己都不知道,自己要做的是行業(yè)后臺,我們要解決的問題,不是螺絲釘?shù)膯栴},而是一個系統(tǒng)問題。
隨著技術(shù)的發(fā)展,前端開發(fā)的成長機會會越來越多,選擇的空間也非常豐富,不論是成為一個性能優(yōu)化專家,還是一個可視化專才,還是作為一個資深的游戲技術(shù)從業(yè)者,都比過去擁有更多選擇。
我們要從自身業(yè)務(wù)所處的行業(yè)出發(fā),重新加強對行業(yè)的認知和理解,找到自己的角色的定位,保持激情。持續(xù)提升分析、解決問題的能力,同時積累發(fā)現(xiàn)問題的能力。?