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