最近了解到有幾個從事計算機相關專業的朋友,他們想轉前端卻又不知道該怎么做,甚至覺得心有余而力不足,正好自己一年前也有這樣的打算,自己剛好也做了好多准備,所以就冒昧的也是時候改給那段經歷做個了解了,也希望能給他人一點參考。
先講講自己的那段時間的經歷和想法吧。
以前在搜房時那時項目組前后端沒有完全分開,自己又做前端又做后端開發,只是不懂的或者不會的,網上又沒找到剛剛好的,就去問問公司大牛,或者直接讓他們幫忙敲代碼,這個過程很重要,因為別人在幫你敲代碼的時候你可以問很多問題,比如怎么調試這段代碼,怎么用chrome上的調試快捷鍵,這段代碼為什么要這么寫,為什么要用這個函數,自己的苦惱等等反正各種問題都可以問(這個時候你就覺得有個大牛帶着是多么幸福的事,真的是事半功倍,而且他們的經驗很受用,所以如果你身邊有個大牛,一定要想辦法把他傍着,哈哈,當然如果有機會請別人吃吃飯,自己帶的零食什么的也給別人多多分享,這也是人之常情嘛)。隨着自己的開發,發現我們組后端能接觸的東西不是很多,而經常阻礙我項目進程的基本上就是前段的問題,慢慢的我的前端能力和后端能力就感覺差不多了,而且現在前端也很火,所以當時就有轉前端的想法了,那個時候感覺學習很有效的方式就是去問他們問題,看着他們幫忙解決問題,不放過每一次前端做codereview的機會(即使那時剛好自己也特忙),偷偷地學他們的經驗,慢慢的自己的實踐能力有了點基礎,但是還是感覺只是停留在表層,所以最后就一直看博客啊,看前端的書,或在網上找些視頻看,印象最深的就是看那個分析jquery源碼的視頻,當然好多看不懂,各種前端的經典思想和原生態的js以及簡易寫法,看的那會覺得那個人真是牛逼哄哄的,最后還是耐着性子看完了,說實話沒啥感覺,只是覺得別人牛,然后就是學了一點小技巧和知道了一點專業術語,要是我是做專業前端開發的那個視頻我估計會每半年看一次,就這樣持續了有大半年吧,去年離開那個公司那會絕對是前端比后端厲害,后來換了公司本來也想着直接做前端的,但是公司需要就一直忙着做后端了,不過現在絕對是后端比前端厲害了,也挺好的,有了這一個過程就知道怎么和前端的同事溝通了,他們不會的基礎問題我也還能給點幫助,有時跟別人談論前端的東西基本的也都知道,只是大半年沒寫前端的了,現在寫的能力稍微差點,但是如果有需要,很有信心花一兩個星期就能跟上前端項目組的節奏,因為知道怎么調試啊,別人封好的函數自己也看的懂啊,很親幸自己能有這么好的項目條件。多問,多看(看別人的代碼、看視頻、看書、看博客都是很好的),多思考,多寫,還有適當的做些筆記,其實也沒那么難。
現在前端發展是很火的,你可以自己下載個拉鈎的app,你會發現招開發的公司基本上都會招前端,有沒有前途直接看市場需求和它的變化節奏,基本上心里就有個底了。最近幾年前端發展很快,gulp、node、h5、less、require、angular等等各種新專業術語層出不窮,有js的也有css方面的,以前都還沒有前端工程師這個職業的,現在也是滿大街的飛,當一個東西分的越來越細致就說明那個東西也來越成熟了,做的會越來越好。若想轉前端就別猶豫了,一個人做了半年的開發,一個人做了半年的准備,一個人猶豫了半年,這三個等級差別是很大的,以同樣的發展步調,這半年的差距你基本上是無法彌補的,當然特例除外,我說的只是普遍的概率,當然在工資上的體現,這半年就差不多有1000到2000的差距,有實際項目經驗,說2000那是保守估計。
可以大致給一個工資和能力提升流程以供參考,如果你現在所從事的職業從5000算起吧,因為你現在不是做開發,所以你的主要精力還是在你現在的工作上,這半年內你每天堅持看三四篇前端博客,定時定量的看完前端相關專業書籍,或者成套的看完別人的視頻,然后自己又親手調試了所看到的代碼,半年后你找一個前端的開發工作,大概4.5k左右,別嫌棄,如果你不是從一個開發人員轉到做前端開發的,轉行后能拿到這個工資水品,那說明你這半年做了很大努力了,然后在這個公司實戰半年,同時把你前半年看的東西在看一遍,敲一遍,你的基礎基本上可以了,半年后你有基礎你有些開發經驗,找個6.5k左右的應該是沒啥問題的,接下來的一年你就老老實實的在那個公司待着吧,跳槽固然能很快加工資,但是導致的問題就是接觸的東西不夠深入,這一年你就要在基礎的上面做一些更加深入的研究了,比如兼容性、改別人的插件、甚至寫插件,並爭取自己帶團隊,而不僅僅局限於把頁面功能做好,這樣一年的積累,一年后再去找一個公司,不給10k你就別考慮別人了,兩年你從4.5k變到10k這挺正常的,不過如果是在北上廣,工資變動幅度會更大,在武漢這樣的城市開發人員的工資到10k,你基本上都是有能力帶團隊的了或者你已經帶着個團隊了。
從另一個角度來說,做前端和做后端的選擇問題。一是難易性,前端的東西最難的就是兼容性,有個去百度的同事在百度呆了半年后他就說基本上就是在做兼容,因為好多功能模塊一兩個項目過后你都已經封裝的差不多了,以后只是簡單的調用或修改。前端的東西比較靜態化吧,兼容做好了在移植項目環境的時候基本上不會出現問題,但是后端對環境要求挺高的,開發環境,測試環境,線上環境都有可能不同,容易出問題。二是知識面,前端要學的大概就是html、css、js,后端要學的包括你從事的開發語言(如java、php。java里面的大數據相關東西)、操作系統(如Linux系統,還特么的分redhat系類和debian系類,雖然大致相同但是還是有點區別的)、服務器相關知識(如apache、nginx、tomcat)、數據庫相關知識(sql基本語句,sql語句優化,數據庫配置優化)、緩存相關的(如redis、memcache等),哪一個不是可以單獨的夠你研究一輩子的了。三是開發舒服度,前端做出來直接就可以看到效果,做的好立馬很有成績感,但是后端如果你是一個女生,你能天天對着數據、或者看着操作系統的那個黑框框,那我真是很佩服你,很枯燥,業務邏輯基本上是后端要很清楚的,考慮的東西也很多。所以你如果是一個女生,又想做開發,我建議你就做前端吧,反正我是不喜歡一個頭發油油的目光呆滯的女生的。
如果已經做了決定就莫問前程,好好朝着那個目標發展,總會走出你比較滿意的路,只是開始比較困難點,以后會越走越寬。
愚夫所見,僅供參考。
下面就推薦一些自己寫的或自己看過的視頻、書籍、網站的資料。
chrome自帶調試工具介紹(工欲善其事必先利其器)
長期關注的博客頻道:博客園、伯樂在線、segmentfault
可供作參考的視頻網站:慕課網、極客學院、51cto、兄弟連官網
自己以前都認真看過的博客:
http://www.cnblogs.com/qiantuwuliang/archive/2010/01/12/1645302.html
Javascript 中 null、NaN和undefined的區別
js 運算符 || && 妙用 (特精彩)