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