JS 說起來必須是一個神器,這個當年10天內被開發出來的神器,以一種誰也想象不到的速度快速發展,它擊敗了Java Applet,逼死Flash,當Android和IOS看似一統全球的時候,JS慢條斯理的和Html5一起蠶食App市場,甚至還出來了NodeJS 這種連后端都不放過的殘暴東西。
原生和WEB的兩種方式一直在爭論不休,而我自己在三年前就是絕對的WEB支持者,windows對于JS支持的更徹底,只是Winphone一直不給力。
好 吧,對于拿NODEJS做后端工程項目我還是有點不情愿,然而提供各種輔助工具什么的還是挺不錯的。JQuery,Ajax和RequireJS和 Angularjs和PhoneGap都是一些標志性的轉變,還包括ReactJS。JS簡直了,簡直了,簡直什么都不放過。
所以JS簡單么?我帶著你們了解一下JS工程師是什么樣子的。
1 工作內容:
JS工程師其實分成兩類,一個是套頁面的,一個是前后端分離的。
對 于套頁面來說,JS工程師的職責非常簡單,一個是做一些簡單的動畫和交互和驗證,輪播圖,彈框,驗證用戶名是否為空等等。另一個就是通過Ajax取一些后 臺數據,然后在頁面上展示出來。那個時候的JS工程師并不被太多人重視,很多時候一些后端的人把前端的工作也做了--除了寫CSS,大部分的后端工程師寫 點JS還是不成問題的。
可 是前后端分離的出現,徹徹底底的改變了前端的世界。前端居然有架構了,前端居然也有“編譯”的概念了(你能想象么,JS的項目居然不能直接打開源碼直接使 用了,必須要經過編譯才可以)。前端工程師和后端工程師只通過Json數據交互(感謝Nginx提供了一個完美的跨域解決方案,再也不用什么Jsonp 了),然后服務器端的同學發現:好簡單啊,我對Android,對IOS,對Html都只需要提供一套API就夠了~~
前 端同學更開心,再也不用去搭建各種悲劇的開發環境了!前端變的很輕,而且控制欲很強(AngualarJS好贊),頁面跳轉神馬的SoEasy,而且也有 了Bower這樣的包管理工具,還有類似于JSP自定義Tag的指令,MVC,還有了Service的概念,馬丹,前端到底發生了什么!
所以我們現在說到的,基本上就是前后端分離的工程師,他們的工作職責就是和IOS&Android的工程師一樣,跟后端定接口,確定框架和架構,分模塊,然后跟后端聯調互相吐槽對方是渣渣。
項目結束之后修復線上Bug,不停的跟用戶說:在我這里是正常的,你換個瀏覽器試試?不行就清一下Cookie,再不然就換臺電腦。
2 需要技能:
環境【IDE(WEBStorm,Sublime,EditPlus),源碼管理(SVN/Git) ,WEB服務器(nginx)】
基礎【Http,REST,跨域,語法,組件,F12,Json,Websocket】
框架【JQuery,AngularJS,Bower,RequireJS,GruntJS,ReactJS,PhoneGap】
業務【金融,教育,醫療,汽車,房產等等等等各種行業】
第三方【微信,QQ等各種第三方登錄,支付,IM,地圖,語音,視頻,圖片】
環境不說了,參考CSS的。
基礎跟CSS差別就好大了,要有一些網絡協議的基本概念,要了解什么是Http,什么是Https,什么是WebSocket,什么是Rest,各種JS的語法(太復雜的完全不用管,別去管什么閉包什么Prototype什么This的指向),Json是必不可少的東西。
框 架就多了去了。直接拿JQuery來學習就好,表去太在意什么原生語法,大部分場景你都不用擔心引入一個JQuery的庫導致系統變 慢,AngularJS真是一個好東西,表太糾結一些細節,Bower,RequireJS和GruntJS這些會有一些前端大牛幫你搭好框架你直接用就 好了。
想做點App就用PhoneGap,想嘗試一下ReactJS就去試吧(我很想試一下然而看到有Render就看不下去了)。
必須提醒一次,如果你是從CSS轉到JS的,這里強調的就是,你必須要懂業務邏輯,這跟CSS完全不需要懂業務邏輯簡直是天壤之別,很多時候你并不是因為技術而無法學會JS,而是缺少對于業務邏輯的理解。
當然啊,這并沒有完。還有無數的第三方庫等著你,做微信呢你必須要用WX的SDK,要用百度地圖呢就必須要用百度的SDK,還有各種支付啊神馬的。如果你要做IM就有環信啊神馬的。
所以。JS就是一個真正的程序員,一個真正的工程師,不但要能把代碼實現,還需要理解需求,需要懂得編碼規范,需要知道如何控制項目流程和進度風險,需要修復線下Bug,需要調優,需要做版本管理,需要制訂接口,需要編寫技術文檔,還需要做新技術的調研或者是帶新人。
現在你了解了咩?
3 發展前景:
我說了那么多,你們對JS的期望也很高了吧。坦白的說,有點高的離譜!
JS是唯一一個可以在兩年之內薪水到20K的職業。雖然工作五年或者是七年的JS在薪水上差別并不太大,但是也已經讓很多人難以置信了好么。
好多人在別的行業,工作十年都拿不到10K啊親。
0~6個月:6K~10K
6~12個月:8K~14K
一年~兩年:12K~20K
兩年~五年:18K~30K
五年以上:24K~
JS的入門相對來說比CSS難的多,但是他的好處是學會一點是一點,并不像Java一樣,絕對是前期Gank型英雄,到了6級就能四處殺人。Java是后期,要到16級以后才能出山才能夠震撼全場。
所以JS相對來說比較平滑,而且現在學習的曲線也比較清晰,慢慢在業界都形成了相對完善的框架。JS可以選擇前進的路有很多種,只要你不是太瞎,就沒什么大的問題。
成長路徑:JS菜鳥-JS初級工程師-JS中級工程師-JS架構師-UED-前端Leader-前端大牛
大概這個樣子啦,JS工程師在后面有一點后續無力,一般來說,我還是強烈推薦JS,IOS,Android三者通吃,在我的帶的Team中也一直要求他們這么做(雖然并未能完全實施成功)。
這三者有太多相似之處了,到最后你會發現,語言只是一種工具而已。要做的事情,其實是差不太多的,并不需要對所有的語言都特別熟悉,有一種打底的,其他的都可以隨意去玩了。
4.入門門檻
必須有CSS基礎,必須有CSS基礎,必須有CSS基礎。或者是有后端Java基礎。
總之你要么是會了CSS,要么是精通了一種后端語言,千萬不要CSS沒學好,后端語言也不會就直接學JS,心里會沒底,不踏實。
其他的都沒什么了,列出來的基礎知識,自己慢慢補就行了。
5.哪些行業適合做JS
IT界:CSS,然后是所有的都可以
其他界:所有的都可以
好蛋疼的結論然而事實上就是如此,這波JS的紅利受益于微信,以及移動端的普及。我不確定在三年或者是五年之后會不會還是這種狀態,然而三年和五年已經足夠可以改變你的人生了,所以,你在等毛線?
6.職業限制
JS的職業限制也挺多的,主要就在于學習的方向上很容易誤入歧途(至少在我眼里是這樣的,相信我,我不是什么好人,我并不會我說過的每一句話負責)。比如說一直堅持喜歡用原生,各種喜歡寫一些奇奇怪怪語法(我把我看不懂的語法都歸結為奇怪的語法),各種回調等等等等。
學到一些好的框架其實很贊的,對于大多數人來講,就夠了。只是缺少一個清晰的指引。
有的時候你會發現,你對Http了解的比較少,會是一個瓶頸。
你對數組啊,循環啊不了解,是一個瓶頸。
你對MVC不了解,也是另一個瓶頸。
對Json不懂,不知道怎么定接口,也是個問題。
這些都學會了,也會遇到一些問題。就是JS的工程師三年,五年,七年的差別,大多數人都不算特別的大。
所以總會有人想學后端--但是我絕對不贊成學Java,NodeJS也可以不去學,不如去學習Python,更不要提PHP啦(我真心不喜歡PHP,不知道為嘛)
或者說,后端并不是語法,而是牽涉到算法,架構,性能,業務,選型等等跟前端幾乎沒有任何關系的知識,所以學習一門腳本語言,能做點簡單的東西就好了。
還是需要把注意力轉到IOS,Android上去。
7.去哪里學,怎么成長
如果你不想用這種方式去學習,還是我之前說的那些話,W3C,然后做點東西,跟著去一家公司實習。
-
工程師
+關注
關注
59文章
1570瀏覽量
68514 -
JS
+關注
關注
0文章
78瀏覽量
18101
發布評論請先 登錄
相關推薦
評論