工作六年的前端開發(fā)在想什么
一開始我是微軟.Net陣營(yíng)的開發(fā)者,這源于大學(xué)時(shí)代的偏好。那個(gè)時(shí)候,在Windows平臺(tái)上開發(fā)桌面應(yīng)用和Web應(yīng)用,.Net Framework有著不可比擬的優(yōu)勢(shì)。優(yōu)雅無比的C#語言加上宇宙第一 IDE Visual Studio,簡(jiǎn)直是軟件開發(fā)領(lǐng)域的倚天屠龍。
借助可視化的開發(fā)工具,隨便拖拽幾下,加上幾行代碼,一個(gè)桌面軟件就出來了,Web開發(fā)也差不多。這也導(dǎo)致了很多程序員的誤解,認(rèn)為用 .Net 開發(fā)無非就是拖控件。其實(shí),這只是淺層次的認(rèn)識(shí)。
可視化的工具只是為了方便界面布局,提高開發(fā)效率。你完全可以不通過拖控件,而是用代碼實(shí)現(xiàn)所有界面元素的布局。只是代價(jià)比較大,你認(rèn)為值得嗎?
《荀子·勸學(xué)》里有句話說得好:“君子生非異也,善假于物也。”我們的最終目的無非是為了又快又好地完成開發(fā)任務(wù)。
大學(xué)時(shí)QQ上有一款休閑游戲叫《大家來找茬》,看室友玩了幾次,于是突發(fā)奇想,能不能寫個(gè)軟件,自動(dòng)找出兩張圖片的差別呢?
在做之前也去網(wǎng)上找了下類似的工具,大部分都操作不方便、識(shí)別率不高。經(jīng)過幾天的折騰,終于做出來了。核心技術(shù)就是圖像處理,加上鍵盤鉤子。
剛好當(dāng)時(shí)有圖像處理課程,這也算是學(xué)以致用吧,哈哈。后來還把這個(gè)工具放到網(wǎng)上供別人下載,幾個(gè)月時(shí)間下載量好幾萬。然后就動(dòng)了點(diǎn)小心思,在界面上加了廣告,并且有付費(fèi)去廣告的功能。
沒想到后來真有人給我轉(zhuǎn)賬了,這大概是我在軟件開發(fā)上賺的“第一桶金”。(或許應(yīng)該叫“第一桶鐵”,錢太少了╮(╯▽╰)╭)不過貌似不太光彩,游戲作弊o(hù)(╯□╰)o
畢業(yè)后順成章地從事 .Net 方面的開發(fā)工作。當(dāng)時(shí)做的是產(chǎn)品的后臺(tái)管理系統(tǒng)和在線辦公系統(tǒng)。
由于是內(nèi)部系統(tǒng),用戶量非常有限,技術(shù)含量就沒那么高。基本上是一些數(shù)據(jù)的增刪改查,以及Web界面上的東西。那個(gè)時(shí)候 jQuery 還統(tǒng)治著 Web 前端開發(fā)的半壁江山,市面上充斥著海量的 jQuery UI框架和插件。學(xué)好 jQuery 也就能解決一大半問題。
但我意識(shí)到 jQuery 不能解決所有問題,原理性的東西還是要懂的。比如JavaScript 語言,DOM 操作,CSS 規(guī)則等。
學(xué)這些東西不難,難的是找到用武之地。由于工作上開發(fā)的系統(tǒng)都是對(duì)內(nèi)的,整個(gè)公司也就那么幾百號(hào)人,就算做到極致也難有跨越性的提升。做了大概兩年后,我開始尋找別的出路。
然后就進(jìn)了一家做金融服務(wù)的外企。當(dāng)時(shí)選擇這家公司是因?yàn)楣ぷ鲀?nèi)容剛好契合我的技術(shù)背景:一部分.Net 桌面開發(fā),一部分Web。做了半年桌面開發(fā)后,開始全面轉(zhuǎn)向 Web 前端。
當(dāng)時(shí) Web 技術(shù)發(fā)展迅猛,各種框架如雨后春筍般冒出來。Backbone, Ember, Angular, Knockout……還可以列更長(zhǎng)。還有模塊化工具Require.js, Sea.js, Webpack。CSS預(yù)處理工具SASS, LESS。
簡(jiǎn)單來說,就是原本用HTML, JavaScript 和CSS 就可以完成的頁面開發(fā),變得規(guī)?;?、工程化。
這個(gè)轉(zhuǎn)變?cè)从跇I(yè)務(wù)邏輯越來越復(fù)雜,項(xiàng)目規(guī)模越來越大,瀏覽器的能力越來越強(qiáng)。這也給前端開發(fā)人員帶來不少壓力,似乎每天一睜眼就要不停地學(xué)習(xí),生怕錯(cuò)過某個(gè)新框架、新理念、新工具。同時(shí),這些新東西也在不停地優(yōu)勝劣汰,剛流行不久可能就難逃被遺棄的命運(yùn)。這就是前端開發(fā)領(lǐng)域的狀態(tài)。
在那家公司做的產(chǎn)品是PC端的單頁Web應(yīng)用。項(xiàng)目規(guī)模中等,瀏覽器要兼容到 IE8 。
這也是我第一次接觸到比較大型的項(xiàng)目,無論是代碼組織、模塊化管理,還是瀏覽器兼容性處理,還有項(xiàng)目打包部署等等,都刷新了我的認(rèn)知。
我開始系統(tǒng)地學(xué)習(xí) JavaScript 語言本身,研究原型鏈、閉包、面向?qū)ο箝_發(fā)方式,學(xué)習(xí) CSS 盒子模型、優(yōu)先級(jí),研究前端性能優(yōu)化、Web 安全、跨域、數(shù)據(jù)可視化技術(shù)等等。
公司員工每年有1000塊學(xué)習(xí)基金,可以用來買書。那段時(shí)間買了很多編程語言、算法、軟件工程方面的書,不過也沒看完。一年下來,算是可以稱自己為 Web 前端開發(fā)了。
也是從那時(shí)開始,斷斷續(xù)續(xù)地在各種平臺(tái)上寫技術(shù)博客。最早在博客園,一個(gè)以 .Net 技術(shù)為主的博客網(wǎng)站,也有不少前端的內(nèi)容。后來利用 Github Pages 搭建了自己的站點(diǎn),甚至還綁定了自己買的域名。
但是沒堅(jiān)持多久,只寫了十來篇。內(nèi)容基本是自己平時(shí)工作上碰到的問題和解決辦法,算是一些技術(shù)備忘吧。
由于英語還過得去,經(jīng)??葱┯⑽募夹g(shù)文章和資料,有空的時(shí)候還翻譯過不少。有段時(shí)間在開源中國(guó)上翻譯技術(shù)文章,排進(jìn)月度前十,網(wǎng)站還送了兩本書作為獎(jiǎng)品。
工作之余,也喜歡折騰些小項(xiàng)目,寫過簡(jiǎn)單的股市行情圖,也寫過 web 小游戲,還給合租的室友們寫過AA記賬平臺(tái)。但都是小打小鬧,上不了臺(tái)面。
我是一個(gè)不安分的人,一旦發(fā)現(xiàn)自己在原地踏步,就開始焦慮。為技能提升慢而焦慮,也為工資拿得少而焦慮。
看著周圍的同事,好多都是在公司待了四五年甚至七八年的,有的青云直上,但多數(shù)還是平平淡淡,安心地做著螺絲釘。內(nèi)心似乎有個(gè)聲音在召喚,于是我踏上了新的征程。
也是從這時(shí)開始明白履歷的重要性。當(dāng)時(shí)去騰訊面試過很多次,幾乎跑遍了深圳的各大辦公點(diǎn),然而接連受挫。要么是某些基礎(chǔ)不過關(guān),要么是項(xiàng)目經(jīng)驗(yàn)不夠格。
基礎(chǔ)不牢還可以補(bǔ)救,畢竟也系統(tǒng)學(xué)習(xí)過,只是某些平時(shí)用不到的知識(shí)點(diǎn)沒有去關(guān)注,像臨考復(fù)習(xí)一樣應(yīng)付下也能解決。
但是項(xiàng)目經(jīng)驗(yàn)就不同了,有些工具就是沒用過,有些工作流程就是不一樣,有些技術(shù)場(chǎng)景沒到那個(gè)產(chǎn)品級(jí)別就是碰不到,這個(gè)就麻煩了。你說你學(xué)習(xí)能力強(qiáng),可以馬上掌握?不好意思,已經(jīng)有候選人掌握了。
所以,能在畢業(yè)后或者一兩年內(nèi)進(jìn)入大公司學(xué)習(xí),優(yōu)勢(shì)是十分明顯的。當(dāng)然,能進(jìn)去也是一種能力。這么多次面試,最好成績(jī)是騰訊某個(gè)部門的GM面試。然而不巧的是遭遇架構(gòu)調(diào)整,崗位不需要人了。
后來因?yàn)闄C(jī)緣巧合,進(jìn)了現(xiàn)在的這家互聯(lián)網(wǎng)金融公司。當(dāng)時(shí)公司處于起步階段,產(chǎn)品從零開始打造。當(dāng)時(shí)覺得大施拳腳的機(jī)會(huì)來了。我也是第一次從事移動(dòng)端 Web 開發(fā),第一次從頭到尾掌控一個(gè)項(xiàng)目,也是第一次過上經(jīng)常加班的生活。
要知道,在此之前的四年多時(shí)間里,加班的次數(shù)一只手都能數(shù)過來。我不反對(duì)加班,我只反對(duì)無效的加班。當(dāng)時(shí)的加班顯然是必要而且有效的,因?yàn)槲覀円s在年底發(fā)布產(chǎn)品,時(shí)間緊迫。
由于團(tuán)隊(duì)小而精,溝通效率很高,有問題能馬上響應(yīng)、解決。但也由于產(chǎn)品定位不清晰,需求也一直變化,有過多次推倒重來。溯洄從之,道阻且長(zhǎng)。這都不是問題,只要有個(gè)共同的目標(biāo),哪怕艱難險(xiǎn)阻,都能一一克服。
經(jīng)過幾個(gè)月的日夜奮戰(zhàn),產(chǎn)品好歹上線了。作為回報(bào),年終獎(jiǎng)金還算可觀。
第二年公司人員迅速擴(kuò)張,由最初的十幾人增加到近百人。做事的人多了,加班反而沒有改善,這個(gè)問題一直困擾著我。
技術(shù)方面,我也算是獨(dú)當(dāng)一面,還帶幾個(gè)新手。我知道,我可能永遠(yuǎn)也做不成頂級(jí)程序員。所以只能退而求其次,盡量把手頭的工作做到極致,不斷探索更高效的工作方式,多幫助他人。
一年多下來,手頭負(fù)責(zé)的前端項(xiàng)目也有好幾個(gè),都是從零開始的。現(xiàn)已基本穩(wěn)定,處于維護(hù)階段。
面對(duì)深圳日漸高起的房?jī)r(jià),對(duì)比穩(wěn)如磐石靜如止水的工資條,我開始思考人生。工作六年的前端開發(fā),該何去何從?經(jīng)過自己的努力,還能到達(dá)怎樣的高度?公司的發(fā)展和個(gè)人的成長(zhǎng)到底是怎樣的關(guān)系?是追求公司的認(rèn)可,還是但行善事莫問前程?
來源:cnblogs.com/lzkwin/p/6848965.html
版權(quán)申明:內(nèi)容來源網(wǎng)絡(luò),版權(quán)歸原創(chuàng)者所有。除非無法確認(rèn),我們都會(huì)標(biāo)明作者及出處,如有侵權(quán)煩請(qǐng)告知,我們會(huì)立即刪除并表示歉意。謝謝!

