工作六年的前端開發在想什么


今年是工作的第六個年頭,從事專職前端開發也有四年多了。先后換過兩家公司,從后台開發逐漸轉到專職Web前端。

一開始我是微軟.Net陣營的開發者,這源於大學時代的偏好。那個時候,在Windows平台上開發桌面應用和Web應用,.Net Framework有着不可比擬的優勢。優雅無比的C#語言加上宇宙第一 IDE Visual Studio,簡直是軟件開發領域的倚天屠龍。借助可視化的開發工具,隨便拖拽幾下,加上幾行代碼,一個桌面軟件就出來了,Web開發也差不多。這也導致了很多程序員的誤解,認為用 .Net 開發無非就是拖控件。其實,這只是淺層次的認識。可視化的工具只是為了方便界面布局,提高開發效率。你完全可以不通過拖控件,而是用代碼實現所有界面元素的布局。只是代價比較大,你認為值得嗎?《荀子·勸學》里有句話說得好:“君子生非異也,善假於物也。”我們的最終目的無非是為了又快又好地完成開發任務。

大學時QQ上有一款休閑游戲叫《大家來找茬》,看室友玩了幾次,於是突發奇想,能不能寫個軟件,自動找出兩張圖片的差別呢?在做之前也去網上找了下類似的工具,大部分都操作不方便、識別率不高。經過幾天的折騰,終於做出來了。核心技術就是圖像處理,加上鍵盤鈎子。剛好當時有圖像處理課程,這也算是學以致用吧,哈哈。后來還把這個工具放到網上供別人下載,幾個月時間下載量好幾萬。然后就動了點小心思,在界面上加了廣告,並且有付費去廣告的功能。沒想到后來真有人給我轉賬了,這大概是我在軟件開發上賺的“第一桶金”。(或許應該叫“第一桶鐵”,錢太少了╮(╯▽╰)╭)不過貌似不太光彩,游戲作弊o(╯□╰)o

畢業后順成章地從事 .Net 方面的開發工作。當時做的是產品的后台管理系統和在線辦公系統。由於是內部系統,用戶量非常有限,技術含量就沒那么高。基本上是一些數據的增刪改查,以及Web界面上的東西。那個時候 jQuery 還統治着 Web 前端開發的半壁江山,市面上充斥着海量的 jQuery UI框架和插件。學好 jQuery 也就能解決一大半問題。但我意識到 jQuery 不能解決所有問題,原理性的東西還是要懂的。比如JavaScript 語言,DOM 操作,CSS 規則等。

學這些東西不難,難的是找到用武之地。由於工作上開發的系統都是對內的,整個公司也就那么幾百號人,就算做到極致也難有跨越性的提升。做了大概兩年后,我開始尋找別的出路。

然后就進了一家做金融服務的外企。當時選擇這家公司是因為工作內容剛好契合我的技術背景:一部分.Net 桌面開發,一部分Web。做了半年桌面開發后,開始全面轉向 Web 前端。

當時 Web 技術發展迅猛,各種框架如雨后春筍般冒出來。Backbone, Ember, Angular, Knockout……還可以列更長。還有模塊化工具Require.js, Sea.js, Webpack。CSS預處理工具SASS, LESS。簡單來說,就是原本用HTML, JavaScript 和CSS 就可以完成的頁面開發,變得規模化、工程化。這個轉變源於業務邏輯越來越復雜,項目規模越來越大,瀏覽器的能力越來越強。這也給前端開發人員帶來不少壓力,似乎每天一睜眼就要不停地學習,生怕錯過某個新框架、新理念、新工具。同時,這些新東西也在不停地優勝劣汰,剛流行不久可能就難逃被遺棄的命運。這就是前端開發領域的狀態。

在那家公司做的產品是PC端的單頁Web應用。項目規模中等,瀏覽器要兼容到 IE8 。這也是我第一次接觸到比較大型的項目,無論是代碼組織、模塊化管理,還是瀏覽器兼容性處理,還有項目打包部署等等,都刷新了我的認知。我開始系統地學習 JavaScript 語言本身,研究原型鏈、閉包、面向對象開發方式,學習 CSS 盒子模型、優先級,研究前端性能優化、Web 安全、跨域、數據可視化技術等等。公司員工每年有1000塊學習基金,可以用來買書。那段時間買了很多編程語言、算法、軟件工程方面的書,不過也沒看完。一年下來,算是可以稱自己為 Web 前端開發了。

也是從那時開始,斷斷續續地在各種平台上寫技術博客。最早在博客園,一個以 .Net 技術為主的博客網站,也有不少前端的內容。后來利用 Github Pages 搭建了自己的站點,甚至還綁定了自己買的域名。但是沒堅持多久,只寫了十來篇。內容基本是自己平時工作上碰到的問題和解決辦法,算是一些技術備忘吧。由於英語還過得去,經常看些英文技術文章和資料,有空的時候還翻譯過不少。有段時間在開源中國上翻譯技術文章,排進月度前十,網站還送了兩本書作為獎品。工作之余,也喜歡折騰些小項目,寫過簡單的股市行情圖,也寫過 web 小游戲,還給合租的室友們寫過AA記賬平台。但都是小打小鬧,上不了台面。

我是一個不安分的人,一旦發現自己在原地踏步,就開始焦慮。為技能提升慢而焦慮,也為工資拿得少而焦慮。看着周圍的同事,好多都是在公司待了四五年甚至七八年的,有的青雲直上,但多數還是平平淡淡,安心地做着螺絲釘。內心似乎有個聲音在召喚,於是我踏上了新的征程。也是從這時開始明白履歷的重要性。當時去騰訊面試過很多次,幾乎跑遍了深圳的各大辦公點,然而接連受挫。要么是某些基礎不過關,要么是項目經驗不夠格。基礎不牢還可以補救,畢竟也系統學習過,只是某些平時用不到的知識點沒有去關注,像臨考復習一樣應付下也能解決。但是項目經驗就不同了,有些工具就是沒用過,有些工作流程就是不一樣,有些技術場景沒到那個產品級別就是碰不到,這個就麻煩了。你說你學習能力強,可以馬上掌握?不好意思,已經有候選人掌握了。所以,能在畢業后或者一兩年內進入大公司學習,優勢是十分明顯的。當然,能進去也是一種能力。這么多次面試,最好成績是騰訊某個部門的GM面試。然而不巧的是遭遇架構調整,崗位不需要人了。

后來因為機緣巧合,進了現在的這家互聯網金融公司。當時公司處於起步階段,產品從零開始打造。當時覺得大施拳腳的機會來了。我也是第一次從事移動端 Web 開發,第一次從頭到尾掌控一個項目,也是第一次過上經常加班的生活。要知道,在此之前的四年多時間里,加班的次數一只手都能數過來。我不反對加班,我只反對無效的加班。當時的加班顯然是必要而且有效的,因為我們要趕在年底發布產品,時間緊迫。由於團隊小而精,溝通效率很高,有問題能馬上響應、解決。但也由於產品定位不清晰,需求也一直變化,有過多次推倒重來。溯洄從之,道阻且長。這都不是問題,只要有個共同的目標,哪怕艱難險阻,都能一一克服。經過幾個月的日夜奮戰,產品好歹上線了。作為回報,年終獎金還算可觀。

第二年公司人員迅速擴張,由最初的十幾人增加到近百人。做事的人多了,加班反而沒有改善,這個問題一直困擾着我。技術方面,我也算是獨當一面,還帶幾個新手。我知道,我可能永遠也做不成頂級程序員。所以只能退而求其次,盡量把手頭的工作做到極致,不斷探索更高效的工作方式,多幫助他人。一年多下來,手頭負責的前端項目也有好幾個,都是從零開始的。現已基本穩定,處於維護階段。

最近,面對深圳日漸高企的房價,對比穩如磐石靜如止水的工資條,我開始思考人生。工作六年的前端開發,該何去何從?經過自己的努力,還能到達怎樣的高度?公司的發展和個人的成長到底是怎樣的關系?是追求公司的認可,還是但行善事莫問前程?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM