很可惜 T 。T 您現(xiàn)在還不是作者身份,不能自主發(fā)稿哦~
如有投稿需求,請把文章發(fā)送到郵箱tougao@appcpx.com,一經(jīng)錄用會(huì)有專人和您聯(lián)系
咨詢?nèi)绾纬蔀榇河鹱髡哒埪?lián)系:鳥哥筆記小羽毛(ngbjxym)
問:IT行業(yè)都有哪些職位,初學(xué)者(0基礎(chǔ),新人)該如何選擇,才能夠快速進(jìn)入這個(gè)行業(yè)?做為一個(gè)不太了解互聯(lián)網(wǎng)的小白,經(jīng)常分不清互聯(lián)網(wǎng)的職業(yè)名稱,不清楚發(fā)展前景和門檻,想進(jìn)入這個(gè)行業(yè)又不知道怎么開始。
@xdyl答:互聯(lián)網(wǎng)行業(yè)的薪資水準(zhǔn)相對較高,剛?cè)胄幸粋€(gè)月,半年,或者一年超過其他行業(yè)薪資很正常。那么,互聯(lián)網(wǎng)行業(yè)究竟有哪些職位呢,又分別適合哪些傳統(tǒng)行業(yè)轉(zhuǎn)型?
1.產(chǎn)品
2.UI
3.CSS
4.JS
5.后端(Java/php/python)
6.DBA(mysql/oracle)
7.運(yùn)維(OP)
8.測試(QA)
9.算法(分類/聚類/關(guān)系抽取/實(shí)體識別)
10.搜索(Lucene/Solr/elasticSearch)
11.大數(shù)據(jù)工程師(Hadoop)
12.Android
13.IOS
14.運(yùn)營
然后等下我會(huì)分別介紹每個(gè)職業(yè)的工作內(nèi)容,發(fā)展前景,入門門檻,適合哪些職業(yè)轉(zhuǎn)行,成長周期,薪水范圍等。
* 薪水都以北京為例
* 運(yùn)營和市場都有更細(xì)致的劃分,然而我并不太了解了
* 其他的偏門的
一.產(chǎn)品
1 工作內(nèi)容:了解用戶需求,做競品調(diào)研,畫產(chǎn)品原型,寫產(chǎn)品文檔,講解產(chǎn)品需求,測試產(chǎn)品Bug,收集用戶反饋,苦練金剛罩以防止程序員拿刀砍。
2 需要技能:PPT,Word, Axure,XP,MVP,行業(yè)知識,溝通
PPT是最容易被忽視的技能,很多時(shí)候很多人都把產(chǎn)品經(jīng)理=畫原型,如果你這么想,再做五年的產(chǎn)品經(jīng)理也是一個(gè)畫原型的,產(chǎn)品經(jīng)理更多的是理解一個(gè)行業(yè),熟悉這個(gè)行業(yè)的用戶,知道這個(gè)行業(yè)有哪些沒有滿足的需求,尋找解決方案,對比行業(yè),找到自己的切入點(diǎn),最終落地成:哪些功能要做,哪些功能不要做。
這些都是要在PPT里寫清楚的。所以,PPT并不是簡簡單單的一個(gè)工具,而且是用這個(gè)工具把你對這個(gè)行業(yè)的了解和分析和解決方案展示出來。
XP是敏捷開發(fā),不會(huì)敏捷開發(fā)的產(chǎn)品經(jīng)理很難說會(huì)是一個(gè)好的產(chǎn)品經(jīng)理(我很偏激,所以接受不了可以直接無視)。敏捷開發(fā)對于產(chǎn)品經(jīng)理來講,是逼著產(chǎn)品經(jīng)理去用Story的方式去思考,去考慮自己每一個(gè)Story的價(jià)值是什么,所有的Story優(yōu)先級是什么。
MVP是最小化驗(yàn)證產(chǎn)品的縮寫,這在精益創(chuàng)業(yè)里是很重要的概念。也就是說,你臆想了一個(gè)產(chǎn)品,他有了什么樣的功能,但是!請注意,我們認(rèn)為所有沒有經(jīng)過用戶驗(yàn)證的功能都是在扯淡。所以,你其實(shí)是設(shè)計(jì)了一個(gè)扯淡的功能然后交給一堆人去開發(fā),再交給人去運(yùn)營,直到一個(gè)月或者是三個(gè)月以后才能拿到反饋結(jié)果。我們等不了,所以你必須在程序員開始啟動(dòng)之前,先想辦法驗(yàn)證自己要解決的問題是存在的,要解決的需要是用戶確實(shí)需要的---你有無數(shù)的辦法可以這么做,真的。好比是,我做IT,并沒有先直接做線上的網(wǎng)站,而是直接去貼吧發(fā)貼,用QQ群,在論壇直接做,去觀察這些弟子的行為,然后去修正自己的產(chǎn)品設(shè)計(jì),我發(fā)現(xiàn)了他們需要日報(bào),需要點(diǎn)評,需要有班級的概念,需要有學(xué)號,需要有首席大弟子等等等等這些。然后我會(huì)把這些需要分析整理之后加入到網(wǎng)站的設(shè)計(jì)里去,這就是MVP的價(jià)值--當(dāng)年窮瘋了每個(gè)決策都慎重的時(shí)候,就會(huì)特別喜歡這種方式,土豪除外,只會(huì)浪費(fèi)時(shí)間而已。
Word是產(chǎn)品需求文檔,我自己不太喜歡Word文檔,更喜歡XP的Story,不過會(huì)一點(diǎn)也沒有關(guān)系。
行業(yè)知識是產(chǎn)品經(jīng)理最重要最重要的技能,沒有之一,你可以不懂PPT,不會(huì)Axure,不會(huì)Word,也不會(huì)什么XP和MVP,但是絕對不能不懂一個(gè)行業(yè)。某種程度上來講,產(chǎn)品經(jīng)理擁有的其實(shí)是快速了解一個(gè)行業(yè)的能力。現(xiàn)在的互聯(lián)網(wǎng)已經(jīng)和以前的不一樣了。以前的產(chǎn)品經(jīng)理懂點(diǎn)兒交互,知道什么是表單,知道點(diǎn)IT術(shù)語就能混日子了,現(xiàn)在必須要懂一個(gè)行業(yè),地產(chǎn),金融,汽車,教育,餐飲,醫(yī)療等等各種行業(yè),你都需要了解這個(gè)行業(yè)的模式,如果你不懂,你就是一個(gè)畫原型的人。
溝通也是產(chǎn)品經(jīng)理的必備技能,出門不帶溝通技能,一定會(huì)被程序員砍。一方面是要跟用戶溝通,一方面是要跟程序員溝通(這是世界上最難溝通的物種,沒有之一),一方面要跟領(lǐng)導(dǎo)溝通(其實(shí)就是想辦法拍領(lǐng)導(dǎo)馬屁然后哄著他們聽自己的話)。
3 發(fā)展前景
不用說,產(chǎn)品經(jīng)理絕對是一個(gè)炙手可熱的職業(yè),而且,TNND的幾乎是零門檻,這表示,是個(gè)人都可以說,我想成為一個(gè)產(chǎn)品經(jīng)理。
然而,好的產(chǎn)品經(jīng)理很多么?并不多,所以,好像圍棋一樣的,入門容易,學(xué)精難。
而且,似乎并沒有一個(gè)系統(tǒng)的教程(這真是一個(gè)很難讓人相信的事情啊,這么一種職業(yè),沒有大學(xué)的知識培養(yǎng),甚至都很少有標(biāo)準(zhǔn)化的職業(yè)化培訓(xùn),全靠業(yè)界手把手培養(yǎng)和自發(fā)的交流,就能夠拿著無數(shù)DS程序員根本就想像不到的薪水--產(chǎn)品經(jīng)理真的跟DS有點(diǎn)兒不搭邊的,當(dāng)然,我大修真還是在努力做產(chǎn)品人員的培養(yǎng)的)。
產(chǎn)品經(jīng)理的發(fā)展前景是很贊的,只是越來越體系化了,而且很容易出人頭地。
一般來說:
0~6個(gè)月:4K~8K
6~12個(gè)月:6K~12K
1年~3年:10K~24K
3年~5年:20K~40K
5年~ :30K~
三個(gè)月到半年左右就可以算是邁入這個(gè)行業(yè)啦,如果遇到P2P這種對于專業(yè)屬性要求比較高的,隨便在一家公司混點(diǎn)經(jīng)驗(yàn),跳到另外一家新的公司就是一個(gè)產(chǎn)品總監(jiān):因?yàn)椴]有其他人又了解金融又了解互聯(lián)網(wǎng)。
成長路徑:產(chǎn)品助理-產(chǎn)品經(jīng)理-高級產(chǎn)品經(jīng)理-產(chǎn)品總監(jiān)-CEO
大致這個(gè)樣子。
4.入門門檻
無(甚至你可以不認(rèn)識字)
5.哪些行業(yè)適合做產(chǎn)品經(jīng)理
IT界:程序員,UI,QA,運(yùn)營,市場
其他界:無限制
PS:想了想,還真是沒見過身邊有做運(yùn)維的轉(zhuǎn)產(chǎn)品經(jīng)理的。
6.職業(yè)限制
很多產(chǎn)品經(jīng)理都很怕跟程序員溝通。而且經(jīng)常會(huì)苦惱,覺得自己設(shè)計(jì)的功能,程序員做不了,做不出來,做的太慢,做的太差。惟獨(dú)不會(huì)覺得自己設(shè)計(jì)的太爛。
所以,很多產(chǎn)品經(jīng)理都會(huì)認(rèn)為不同技術(shù)是自己的一個(gè)弱項(xiàng),我曾經(jīng)整理過一個(gè)產(chǎn)品經(jīng)理需要了解的技術(shù)術(shù)語,有需要直接看樓下的廣告。
7.去哪里學(xué),怎么成長
可以去一些有產(chǎn)品經(jīng)理培訓(xùn)的地方去。
如果這些產(chǎn)品經(jīng)理培訓(xùn)的差不多了,有了一個(gè)基本概念了,找個(gè)產(chǎn)品助理或者是實(shí)習(xí)的職位去吧。
會(huì)畫點(diǎn)兒原型圖,有個(gè)線上的作品,就能找工作(雖然我很不喜歡這樣的產(chǎn)品經(jīng)理)。
然后有機(jī)會(huì)就去大公司了解一下各個(gè)部門是如何扯皮的,鍍鍍金,Over了。
二 UI
1 工作內(nèi)容:收到產(chǎn)品原型,給原型上色,偶爾會(huì)自作主張調(diào)整下原型的位置,出不同的風(fēng)格給老板和客戶選,然后聽他們的意見給出一個(gè)自己極不喜歡的風(fēng)格,最好給Android,IOS或者是CSS做好標(biāo)注,還有的需要直接幫他們切好圖,最后要練出來象素眼,看看這些不靠譜的程序員們有沒有上錯(cuò)色或者是有偏差。
2 需要技能:PS,Illustrator,Sketch,耐性,找素材
PS是最基礎(chǔ)的技能。各種圖層通道蒙版神馬的細(xì)節(jié)的東西就不用說了,很多時(shí)候很多公司都愿意出所謂的高保真圖。什么叫高保真圖,簡單說就是不折磨產(chǎn)品折磨UI的破玩意兒。就是把所有的圖都畫出來然后對著UI圖來改,偶爾還會(huì)要求做出來網(wǎng)頁能夠點(diǎn),對于這點(diǎn)我不想再吐槽了,總之,PS是少不了的技能,基本上很多時(shí)候其他人都會(huì)以為你只需要用PS就能搞定一切。
然而PS始終只是一個(gè)工具而已,所以在這里,PS代表的更多的是一種方案的選擇。比如什么行業(yè)用什么配色,怎么樣對齊,怎么突出重點(diǎn),PC下應(yīng)該是多寬,手機(jī)應(yīng)該是多寬,等等等等。
ILLustrator最近似乎是用的少了,我不太確定,但是做矢量圖以前是就是靠他的。什么是位圖什么是矢量圖,自行百度就好。以及還有CoreDraw,不知道現(xiàn)在是否常用。然而,慢慢的似乎Sketch流行起來了。
SKetch和Illustrator和CoreDraw之間的差別我說不上來,我記得我的UI小姑娘跟我講這個(gè)工具很好用。
耐性必須是UI必備的技能,因?yàn)橛械臅r(shí)候,老板跟你較真起來,一個(gè)星期不停的反復(fù)修改一個(gè)首頁是很正常的事兒??赡茴伾獜募t換成黑再換成綠。所以你必須要有耐性,除非你做的設(shè)計(jì)沒人管,你說了算。而且,UI這東西,是個(gè)人都有自己的審美觀。更不用說之前朋友圈的測試,人和人看到的顏色真心不一樣。
所以你必須要有耐性,這是很重要的。
找素材的能力也是必不可少的,你手上必須要備幾個(gè)常用的素材網(wǎng)站,大部分的人都是在別人的素材基礎(chǔ)上改來改去。
說到這里,其實(shí)忍不住想加上一句。UI設(shè)計(jì)師最重要的能力并非是以上幾種,而在于是理解產(chǎn)品經(jīng)理的需求--前提條件是產(chǎn)品經(jīng)理很明確的說出來了而且講清楚了需求。
比如說,一個(gè)頁面的重要是什么?最想引人注目的內(nèi)容是什么?應(yīng)該配什么樣的圖?加上什么樣的元素能讓網(wǎng)站的風(fēng)格更醒目一些呢?
這里大部分其實(shí)都是原型設(shè)計(jì)師要做的事兒,我一直有一個(gè)觀點(diǎn),就是UI其實(shí)最應(yīng)該做原型,只有這樣,才能讓產(chǎn)品經(jīng)理著重去考慮功能點(diǎn),讓設(shè)計(jì)完美傳達(dá)產(chǎn)品的功能點(diǎn)。
然而原型設(shè)計(jì)師這個(gè)角色慢慢的被消融了,已經(jīng)變成了產(chǎn)品經(jīng)理了。所以大部分產(chǎn)品經(jīng)理都以為自己是畫原型的,然后大部分UI都會(huì)自作主張改掉原型,因?yàn)闆]有美感。所以通常你會(huì)發(fā)現(xiàn)美感說有了,也有那么一點(diǎn)兒,可是總覺得會(huì)有一些不對。
我對他們的要求就是,先別管美不美,你先告訴我這張頁面每個(gè)模塊想要重點(diǎn)表達(dá)的內(nèi)容是什么,能不能讓人分清主次。做到了這一點(diǎn) ,再去考慮美感。
3 發(fā)展前景
UI的發(fā)展前景是很贊的,在兩到三年前,甚至都有人推動(dòng)讓UI來代替產(chǎn)品經(jīng)理來驅(qū)動(dòng)。某種程度上來說,UI其實(shí)最好的發(fā)展方向就是UE,也就是交互,然后就是所謂的用戶體驗(yàn)優(yōu)化師--坦白的說我并未覺得有多少公司會(huì)真正的設(shè)置這個(gè)職位,因?yàn)樘毫?。但是對于現(xiàn)在火熱的O2O來說,無論是線上還是線下,都希望提供一個(gè)極致的用戶體驗(yàn),所以我說不好。
但是大部分的UI都應(yīng)該去朝著交互的方向發(fā)展,而不是去切頁面。。。
UI薪水其實(shí)跟產(chǎn)品經(jīng)理在前期差不太多,中期差點(diǎn)。后期相差比較遠(yuǎn),一般來說:
0~6個(gè)月:4K~8K
6~12個(gè)月:6K~12K
1年~3年:10K~20K
3年~5年:16K~30K
5年~ :24K~
UI的成長時(shí)間大概是在兩年左右,基本上PC,IOS,Android,H5全部都做過一些項(xiàng)目,設(shè)計(jì)過幾個(gè)Logo,做過一些專題和Banner圖,才算是比較完美報(bào)。
然而想要做的更好一些就有點(diǎn)困難了,除非你的遇到了一家公司,對用戶體驗(yàn)要求極致,然而那個(gè)時(shí)候,并不僅僅是UI和UE相關(guān)的內(nèi)容了。
成長路徑:實(shí)習(xí)UI-初級U-中級UI-高級UI(UE)
大致這個(gè)樣子。
4.入門門檻
UI對入門門檻要求還算是比較高的。首先你得有一臺(tái)Mac。。大部分的情況下你都需要Mac。
然后你要懂之前提到的常用軟件,UI的交互規(guī)范,配色等等等。
5.哪些行業(yè)適合做UI
IT界:無
其他界:傳統(tǒng)做VI的,就是平面設(shè)計(jì)的會(huì)轉(zhuǎn)一些。跟著基本上就是小鮮肉了,剛畢業(yè)就從事這個(gè)行業(yè)的會(huì)比較多一些。還有一些學(xué)美術(shù)的,會(huì)手繪的。
PS:想了想,從沒怎么見過程序員轉(zhuǎn)行做UI的。只見過UI人員會(huì)寫代碼的。
6.職業(yè)限制
UI這個(gè)職業(yè)的限制在某種程度上就是不太清楚自己應(yīng)該朝著UE發(fā)展。所以時(shí)間長了工作就會(huì)變得單調(diào),兩年或者是三年之后原地踏步走沒怎么有進(jìn)步的人很多。像Metro(扁平化)或者是material design這樣的風(fēng)格一不熟悉二不了解三不想嘗試的人還是挺多的。
很多人做了很久其實(shí)還是分不清產(chǎn)品經(jīng)理想要在一個(gè)頁面上表達(dá)什么--這有時(shí)候真的并不是UI的錯(cuò)。
7.去哪里學(xué),怎么成長
對于初學(xué)者來說,找個(gè)培訓(xùn)學(xué)校還真是比較好的選擇。
一般來說,最好的成長路線就是不斷的去參考別人的例子,然后再多動(dòng)動(dòng)腦子,多看一些UI規(guī)范。
先想清楚自己要表達(dá)什么,然后想想用什么表達(dá),再去查查怎么樣能做到自己期望的結(jié)果。
三 CSS
1 工作內(nèi)容:產(chǎn)品設(shè)計(jì)好原型,UI做出來了效果圖,剩下的就是CSS工程師用代碼把靜態(tài)文件寫出來的。
所以CSS工程師和OP一樣,都是可以在不用了解業(yè)務(wù)需求的情況下就能完成工作的唯一兩個(gè)特殊職業(yè)。
一般來說,CSS工程師并不存在,寫CSS的人多少要寫一些JS代碼,然而確實(shí)也會(huì)有一些妹子真的就是學(xué)不會(huì)JS,有一些漢子真的就是寫不出來JS,所以我還是把他們兩個(gè)拆開了。
CSS工程師要考慮更多的就是兼容性,簡單說,IE內(nèi)核和非IE內(nèi)核(WEBKit),IE10以下和其他。我是強(qiáng)烈建議新人不要去學(xué)IE10以下的Hack的寫法的,讓IE10以下的,不支持Html5的都去死吧,表再來跟我說用戶還在用IE678了。
當(dāng)頁面切完以后,另一個(gè)工作就是去幫助菜鳥后端和某些JSER把頁面又重新套錯(cuò)了,什么是套頁面,可以看這個(gè) http://www.zhihu.com/question/22689579/answer/69899644 。
2 需要技能:
環(huán)境【IDE(WEBStorm,Sublime,EditPlus),源碼管理(SVN/Git) ,WEB服務(wù)器(nginx)】
基礎(chǔ)【PS,域名,Html,Html5,CSS,CSS3】
擴(kuò)展【自適應(yīng),響應(yīng)式,Bootstrap,Less,F(xiàn)lex】
無論是哪一種程序員,學(xué)會(huì)搭好的自己的環(huán)境都是第一步。選好IDE,選好源碼管理工具,學(xué)會(huì)每天把自己做好的Html文件發(fā)布到服務(wù)器上可以直接訪問。這都是最基礎(chǔ)的技能,記著這些東西并不難,你只是需要不斷的去練習(xí)去熟悉它而已。所以從第一開始就去適應(yīng)它。
會(huì)用PS是因?yàn)橐皇且袌D,二是要制作雪碧圖。這兒簡單說一下,很多人都會(huì)說,切圖這個(gè)活倒底分給UI還是分給前端。我一直都覺得這是CSS必須要做的,因?yàn)橹挥蠧SSER才會(huì)知道怎么切合適。然而大部分Android和IOS人員都不具備切圖的能力,這也是我一直很無語的工作方式,反正,我要求我的Team,無論是Android還是IOS都必須要會(huì)自己切圖。
另外再解釋一下所謂切圖和切頁面的概念。切圖指的是把需要用到的小圖標(biāo)了神馬的切出來。切頁面一般指的是就是把整個(gè)效果圖做成Html網(wǎng)頁。兩種叫法我都覺得Low的不行,然而很多人都喜歡這么叫,而且會(huì)混到一起,時(shí)間長了,也就習(xí)慣了。
自適應(yīng)和響應(yīng)式是前端人員必須要懂的概念,也是必須要能做到的。畢竟現(xiàn)在是各種跨屏?xí)r代,以及各種分辨率都層出不窮,H5又是眼下最火紅的職業(yè)和技能。
曾經(jīng)有過工作半年或者是一年都不太懂什么是自適應(yīng)和響應(yīng)式的,這并不好。
Bootstrap,Less和Flex也是CSS工程師必須要會(huì)的。學(xué)會(huì)Bootstrap更重要的還是要去學(xué)習(xí)它的思想,這是很重要的一點(diǎn),它幫助你開闊視野,你才會(huì)明白,靠,原來可以這么寫。
Less也是一樣,在推薦less和Sass之前我猶豫了很久,然而看到Sass要Ruby環(huán)境就有點(diǎn)不喜歡了,雖然Bootstrap已經(jīng)轉(zhuǎn)向Sass,但是在一般的項(xiàng)目中,Less也夠用了。所以還是果斷的推薦Less了。
Flex是一個(gè)好東西,我了解的還不多,在真實(shí)的項(xiàng)目中還未有使用過,不過挺看好的。
簡單說呢,前端工程師需要的大多數(shù)就是技術(shù)相關(guān)的技能,倒不需要太多的溝通啊和耐性啊神馬的技巧。
哦哦,想起來了,CSS的知識比較零散,要死記的東西其實(shí)是比較多的。
3 發(fā)展前景
CSS的發(fā)展前景最近幾年好的不行。在Android和IOS大行其道的時(shí)候,一大部分人都轉(zhuǎn)去做了這兩個(gè)行業(yè),然而突然之間,因?yàn)槲⑿诺木壒始由螶S的魅力,H5突然又火爆起來,所以呢,CSS整體來說還是一個(gè)挺靠譜的職業(yè)。最關(guān)鍵的是,CSS入門最快的職業(yè)啊,幾乎零門檻,只是轉(zhuǎn)JS還是挺不容易的。
CSS薪水如果純粹只是做CSS的話,12K到15K基本上就是封頂了。。。所以:
0~3個(gè)月:4K~6K
3~12個(gè)月:5K~8K
12個(gè)月以上~:8K~15K
CSS的成長是非常快的。專門去學(xué)的小白都是一個(gè)月左右就可以獨(dú)立做項(xiàng)目,可以進(jìn)入IT修真界闖蕩江湖了。正常情況下,3個(gè)月左右是沒問題的。
我的要求比較高,所以所謂的獨(dú)立做項(xiàng)目就一定是獨(dú)立做項(xiàng)目,不用懷疑這一點(diǎn)。包括自適應(yīng),響應(yīng)式和Bootstrap。
所以。想要拿高薪,CSS都必須要學(xué)JS,沒有其他的途徑。
成長路徑:
CSS工程師-初級JS工程師-JS工程師-前端架構(gòu)師-前端Leader(IOS,Android和JS通吃)
不要相信NodeJS,那只是玩玩而已。不要想從前端轉(zhuǎn)后端,太難了,后端和前端是兩個(gè)不同的概念,特別是對基礎(chǔ)知識要求的特別高。
CSS和JS最好的方式就是IOS和Android通吃,精通一種,然后其他的能做項(xiàng)目,并不需要考慮其他的選擇,推薦再學(xué)點(diǎn)其他腳本語言,首推Python,永遠(yuǎn)不要去學(xué)PHP,表問我為啥,個(gè)人好惡。
你一定要問,等我心情不好的時(shí)候再說。
4.入門門檻
零門檻!你相信咩,一個(gè)程序員的職業(yè)居然可以零門檻進(jìn)入。。。
好吧,大多數(shù)人其實(shí)并不把CSSER稱為程序員,不過,你至少學(xué)會(huì)了CSS,就能在IT修真界這個(gè)神奇的元世界里生存,就有了進(jìn)軍其他職業(yè)的可能性。
5.哪些行業(yè)適合做CSS
IT界:All
其他界:All
PS:正常人都可以學(xué)的會(huì)啦(馬丹我就不是正常人)
6.職業(yè)限制
CSS的職業(yè)限制有三個(gè),一個(gè)就是不去學(xué)自適應(yīng)和響應(yīng)式,一個(gè)是不去學(xué)框架,另一個(gè)就是學(xué)不會(huì)JS。
這三點(diǎn)都是很重要的突破。然后這個(gè)職業(yè)呢,怎么講,在一家公司里可替代的程度比較高,并不算特別重要,做不了核心崗,也不存在什么代碼交接。你就算代碼寫的再爛,也最多就是花一個(gè)月時(shí)間重寫。。。
所以如果你不想做JS,你就真的真的發(fā)展受限制了,一定要記著,CSS只是你的一個(gè)跳板。
另外,因?yàn)榱汩T檻,所以你其實(shí)還是有很多計(jì)算機(jī)相關(guān)的知識要補(bǔ)的,這是一定的,沒什么可商量的。
只是做前端還好,如果想做后端,只是不想花那么長的時(shí)間才進(jìn)入這個(gè)行業(yè),就必須要從CSS做起,跟著用自己的其他時(shí)間惡補(bǔ)計(jì)算機(jī)基礎(chǔ)了。
7.去哪里學(xué),怎么成長
如果你不要看視頻或者是交錢學(xué)什么的,看W3C吧,自己按照別人的偷偷做項(xiàng)目,跟著就找家公司實(shí)習(xí)去吧。
雖然慢了點(diǎn),好壞也入門了。
四 JS
JS說起來必須是一個(gè)神器,這個(gè)當(dāng)年10天內(nèi)被開發(fā)出來的神器,以一種誰也想象不到的速度快速發(fā)展,它擊敗了Java Applet,逼死Flash,當(dāng)Android和IOS看似一統(tǒng)全球的時(shí)候,JS慢條斯理的和Html5一起蠶食App市場,甚至還出來了NodeJS這種連后端都不放過的殘暴東西。
原生和WEB的兩種方式一直在爭論不休,而我自己在三年前就是絕對的WEB支持者,windows對于JS支持的更徹底,只是Winphone一直不給力。
好吧,對于拿NODEJS做后端工程項(xiàng)目我還是有點(diǎn)不情愿,然而提供各種輔助工具什么的還是挺不錯(cuò)的。JQuery,Ajax和RequireJS和Angularjs和PhoneGap都是一些標(biāo)志性的轉(zhuǎn)變,還包括ReactJS。JS簡直了,簡直了,簡直什么都不放過。
所以JS簡單么?我?guī)е銈兞私庖幌翵S工程師是什么樣子的。
1 工作內(nèi)容:JS工程師其實(shí)分成兩類,在之前講CSS的時(shí)候已經(jīng)提到過,一個(gè)是套頁面的,一個(gè)是前后端分離的。對這兩個(gè)概念還是分不太清的,可以回過頭去看CSS的部分。
對于套頁面來說,JS工程師的職責(zé)非常簡單,一個(gè)是做一些簡單的動(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):好簡單啊,我對Android,對IOS,對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)互相吐槽對方是渣渣。
項(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í)就好,表去太在意什么原生語法,大部分場景你都不用擔(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ù)邏輯簡直是天壤之別,很多時(shí)候你并不是因?yàn)榧夹g(shù)而無法學(xué)會(huì)JS,而是缺少對于業(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ā)展前景:
我說了那么多,你們對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的入門相對來說比CSS難的多,但是他的好處是學(xué)會(huì)一點(diǎn)是一點(diǎn),并不像Java一樣,絕對是前期Gank型英雄,到了6級就能四處殺人。Java是后期,要到16級以后才能出山才能夠震撼全場。
所以JS相對來說比較平滑,而且現(xiàn)在學(xué)習(xí)的曲線也比較清晰,慢慢在業(yè)界都形成了相對完善的框架。JS可以選擇前進(jìn)的路有很多種,只要你不是太瞎,就沒什么大的問題。
成長路徑:JS菜鳥-JS初級工程師-JS中級工程師-JS架構(gòu)師-UED-前端Leader-前端大牛
大概這個(gè)樣子啦,JS工程師在后面有一點(diǎn)后續(xù)無力,一般來說,我還是強(qiáng)烈推薦JS,IOS,Android三者通吃,在我的帶的Team中也一直要求他們這么做(雖然并未能完全實(shí)施成功)。
這三者有太多相似之處了,到最后你會(huì)發(fā)現(xiàn),語言只是一種工具而已。要做的事情,其實(shí)是差不太多的,并不需要對所有的語言都特別熟悉,有一種打底的,其他的都可以隨意去玩了。
4.入門門檻
必須有CSS基礎(chǔ),必須有CSS基礎(chǔ),必須有CSS基礎(chǔ)。
或者是有后端Java基礎(chǔ)。
總之你要么是會(huì)了CSS,要么是精通了一種后端語言,千萬不要CSS沒學(xué)好,后端語言也不會(huì)就直接學(xué)JS,心里會(huì)沒底,不踏實(shí)。
其他的都沒什么了,列出來的基礎(chǔ)知識,自己慢慢補(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í)很贊的,對于大多數(shù)人來講,就夠了。只是缺少一個(gè)清晰的指引。
有的時(shí)候你會(huì)發(fā)現(xiàn),你對Http了解的比較少,會(huì)是一個(gè)瓶頸。
你對數(shù)組啊,循環(huán)啊不了解,是一個(gè)瓶頸。
你對MVC不了解,也是另一個(gè)瓶頸。
對Json不懂,不知道怎么定接口,也是個(gè)問題。
這些都學(xué)會(huì)了,也會(huì)遇到一些問題。就是JS的工程師三年,五年,七年的差別,大多數(shù)人都不算特別的大。
所以總會(huì)有人想學(xué)后端--但是我絕對不贊成學(xué)Java,NodeJS也可以不去學(xué),不如去學(xué)習(xí)Python,更不要提PHP啦(我真心不喜歡PHP,不知道為嘛)
或者說,后端并不是語法,而是牽涉到算法,架構(gòu),性能,業(yè)務(wù),選型等等跟前端幾乎沒有任何關(guān)系的知識,所以學(xué)習(xí)一門腳本語言,能做點(diǎn)簡單的東西就好了。
還是需要把注意力轉(zhuǎn)到IOS,Android上去。
7.去哪里學(xué),怎么成長
如果你不想用這種方式去學(xué)習(xí),還是我之前說的那些話,W3C,然后做點(diǎn)東西,跟著去一家公司實(shí)習(xí)。
五 后端(Java/python/go)
說到后端,其實(shí)我主要想說的是Java。C和PHP這兩種語言我都不喜歡,之前也說過了,我自己絕對不是一個(gè)說話公平公正的人,什么觀點(diǎn)都帶著自己偏激和極端的調(diào)調(diào)。
我之前在貼吧跟Java吧的吧主一直在撕逼(原因很簡單,我說教大家學(xué)Java,一個(gè)月收400塊錢,他說我是騙子封我貼。然后我說好吧,我不說教大家學(xué)Java了,我來給大家解決在學(xué)習(xí)過程中遇到的困惑,他說貼吧不能發(fā)問答貼。我說行,那么我就寫一些新人學(xué)Java必須要學(xué)數(shù)據(jù)庫,數(shù)據(jù)結(jié)構(gòu)和計(jì)算機(jī)網(wǎng)絡(luò),于是一群吧主過來噴我說,我沒學(xué)過這些我也照樣學(xué)會(huì)Java了啊,什么多線程什么繼承等等,我無語了解釋說Java語法不重要,重要的是要學(xué)會(huì)后端的架構(gòu),要懂算法,要懂業(yè)務(wù),要懂系統(tǒng)的擴(kuò)展性,要會(huì)調(diào)試程序,于是吧主們就把我封了,我很不爽,就新開貼子跟他們撕逼對罵--我從來不是一個(gè)重身份的人,我罵人會(huì)很臟,所以如果看到這個(gè)貼子覺得我很厲害那么你瞎眼了,我就是一個(gè)不喜歡就說,誰噴我一臉我噴誰一身的性格,現(xiàn)在的結(jié)果就是Java吧的吧主每隔10天就來封我一次-哈哈哈哈哈比鬧鐘都要準(zhǔn),所以三個(gè)月過去了,我?guī)С鰜砗芏郈SS和JS的學(xué)員,然而Java的學(xué)員并沒有多少。所以如果有人去Java吧替我罵一下那些XX吧主并且截圖給我看,我會(huì)很開心很開心很開心,說不定就會(huì)給你們開小灶哈哈哈哈。)
之所以說這些,一方面是400多的贊讓我覺得有點(diǎn)羞愧,另一方面也是想強(qiáng)調(diào)一個(gè)概念,學(xué)后端,學(xué)會(huì)語法只是開始而已,最后一個(gè)就是我是一個(gè)小人,誰欺負(fù)我我就想欺負(fù)回去。
我想想該怎么描述后端的工作。后端跟前端是截然不同的,之前講過。前端是Gank,后端是大后期,要等到16級以后才能V5起來,而且我非常不推薦前端去學(xué)后端(所謂的全棧工程師完全是扯,我有時(shí)間會(huì)寫一下,為什么不要去做一個(gè)全棧工程師)。后端要積累到足夠多的項(xiàng)目經(jīng)驗(yàn),才能夠成為一個(gè)靠譜的后端工程師。我覺得。我來舉一個(gè)跟著我線下半年的小培宇的例子就能簡單說明一下后端的工作。
小培宇是第一個(gè)來到我大修院面試(嗯,最初我是給他們發(fā)工資然后帶他們學(xué)習(xí)的)的人,跟我講他是考研失敗,差了幾分,然后也做過點(diǎn)項(xiàng)目,我隨便問了幾句就知道了他的狀態(tài):人挺聰明的,但是在學(xué)??隙ㄍ娴寞?,所以問點(diǎn)排序算法還是能夠答的出來,數(shù)據(jù)結(jié)構(gòu)也懂一點(diǎn)兒,LinkedList和ArrayList刪除數(shù)據(jù)誰更快也能答的挺靠譜的,但是絕對絕對沒寫過一行工程代碼。
他打動(dòng)我的那句話就是:不在乎工資多少就想多學(xué)點(diǎn)東西。很好,我默默的點(diǎn)個(gè)贊,因?yàn)槲冶旧砭拖氚炎约哼@幾年積累的經(jīng)驗(yàn)和知識和走過的坑整理出來,告訴互聯(lián)網(wǎng)的新人,所以也不抵觸帶新人,坦白說,愿意像我這樣帶新人的公司,幾乎沒有,帶新人真不是一般的累。幸好我之前在各種公司中都帶過各種新人,好的壞的都帶過,所以還算是熟悉。
于是我給培宇精心設(shè)計(jì)了他的學(xué)習(xí)曲線,這也是我大IT核心觀點(diǎn):
1.先搭建基礎(chǔ)環(huán)境(Maven,SVN,Eclipse,jetty,SecureCRT,Linux,Mysql)
2.做簡單的CRUD(DAO-自己封裝的數(shù)據(jù)層,junit,Log4j,Rest,Spring,Spring MVC,Json,JsonTaglib)
3.做一個(gè)相對復(fù)雜的系統(tǒng)DB設(shè)計(jì),接口設(shè)計(jì),項(xiàng)目部署,錯(cuò)誤提示,Bug查找,怎么打系統(tǒng)日志。
4.做了一個(gè)微信相關(guān)的項(xiàng)目,了解微信的API,交互方式,Cookie,***,AOP,登錄系統(tǒng)的設(shè)計(jì),命名規(guī)范等。
5.拆分Service,將Home和Service分開,使用RMI調(diào)用,實(shí)現(xiàn)各個(gè)層次之間都可以完成分布式的部署,使用Tuscany(真心喜歡Tuscany)完成SCA。
6.使用MongoDB完成地理位置的搜索,短信,圖片上傳,云存儲(chǔ),使用Tiles來配置頁面模板。
這些內(nèi)容他花了將近三個(gè)月的時(shí)間。對他來說已經(jīng)是學(xué)會(huì)了很多東西了,這三個(gè)月是幾乎沒日沒夜的學(xué)出來的,要知道他之前壓根就不知道什么是Spring,生成Json和套JSP的區(qū)別我罵了他好幾次他才弄明白,經(jīng)常會(huì)遇到一些Maven或者是Tuscany的報(bào)錯(cuò)不知道該怎么解決,數(shù)據(jù)庫字段的規(guī)范和接口規(guī)范常常被我黑的體無完膚。很多東西都只是知道個(gè)皮毛而已,你們自己說說,學(xué)會(huì)Java語法算什么?
這還是有我來帶,有我來教,有我給他定制合適的項(xiàng)目教給他去做,如果沒有這些,你們自己學(xué),學(xué)會(huì)我說的這些東西要多久?
別的不說,學(xué)會(huì)怎么打日志,怎么根據(jù)線上的報(bào)錯(cuò)去找錯(cuò)就不是一個(gè)月兩個(gè)月能解決的。做為一個(gè)工程師,應(yīng)該明白,很多時(shí)候要學(xué)會(huì)正確的路怎么走,還必須要知道錯(cuò)誤的路是走不通的。正確的路大概就那么幾條,錯(cuò)誤的路呢?
為什么很多時(shí)候我看到錯(cuò)誤日志就會(huì)明白是什么地方報(bào)錯(cuò)了,是因?yàn)槲抑盎藷o數(shù)的心血和心力在查找這些錯(cuò)誤上,所謂的經(jīng)驗(yàn)就是這樣,看的多了,一眼就知道大概什么地方報(bào)錯(cuò)了,然后隨便百度下,就能找到解決方案,跟著去嘗試倒底行或者是不行。這些是看書,或者是看視頻能教會(huì)你的么?
到現(xiàn)在為止培宇已經(jīng)跟了我快半年了,還是被我罵的狗血噴頭,別的不說,就是接口的Wiki文檔和代碼保持一致,他都會(huì)經(jīng)常犯錯(cuò)---這跟Java語法有什么關(guān)系,然而不經(jīng)過一個(gè)好的訓(xùn)練,想做的很好,很不容易。
其實(shí)他接下來要學(xué)的東西更多。Memcache或者是Redis,ActiveMQ或者是RabbitMQ或者是QPid,Mybatis或者是SpringJDBC,Struts或者是SpringMVC,我告訴他的只是一個(gè)我們在項(xiàng)目中經(jīng)過實(shí)踐的,認(rèn)為最合適的架構(gòu)體系,然而他并不知道是怎么選擇的。他必須要把這些相關(guān)的選擇都有所了解,然后才能成為一個(gè)架構(gòu)師。這個(gè)時(shí)間,如果一直跟著我,我覺得應(yīng)該是在一年到兩年左右。
這是一個(gè)橫向擴(kuò)展的內(nèi)容,在這個(gè)時(shí)候我還沒有要求他去看一些深層的東西。只是需要他停留在會(huì)用的狀態(tài)就可以。在會(huì)用這些技術(shù)之后,再去了解一些自己喜歡的技術(shù)的細(xì)節(jié),不成為一個(gè)只會(huì)使用工具的碼農(nóng),所以培宇問我還需要多久才能達(dá)到我的水平的時(shí)候,我其實(shí)并不想打擊他。我也是很刻苦努力的人啊,曾經(jīng)無數(shù)個(gè)日夜也是默默的去一行一行代碼去用最笨的方法調(diào)錯(cuò),并沒有人告訴我怎么樣是正確的只有靠一個(gè)又一個(gè)的項(xiàng)目總結(jié)出來的經(jīng)驗(yàn)。
而且我還會(huì)一些Drools,CRM,Lucene等等一些和架構(gòu)師關(guān)系不大的事兒偏算法一些的東西,畢竟當(dāng)年也學(xué)過點(diǎn)數(shù)據(jù)挖掘機(jī)器學(xué)習(xí)之類的內(nèi)容。
就算是學(xué)會(huì)這些了,對于一個(gè)后端工程師來說就夠了么?不不不,還需要學(xué)習(xí)JVM優(yōu)化,監(jiān)控,部署流程,發(fā)布流程,項(xiàng)目進(jìn)度管理,代碼重構(gòu)等等等等。
所以,你們自己算算,這些東西如果都學(xué)會(huì),一個(gè)Java工程師要多久才能成為架構(gòu)師?
然而我還是對帶培宇很有信心,首先他相信我,他愿意學(xué),跟我當(dāng)年一樣,不怕苦不怕累,人也夠聰明,做事也有責(zé)任心,其次我知道他應(yīng)該怎么走這條路,先做什么,再做什么,哪些該花時(shí)間和精力,哪些不該花。
我希望他能夠在一年之內(nèi)就成為一個(gè)架構(gòu)師。就如他在三個(gè)月和六個(gè)月之間獨(dú)立做項(xiàng)目已經(jīng)不成問題了一樣(記著,我說的是獨(dú)立做項(xiàng)目,自己設(shè)計(jì)DB設(shè)計(jì)接口設(shè)計(jì)架構(gòu)完成需要的功能,從設(shè)計(jì)到實(shí)現(xiàn)完全自己來)。
我也希望我能夠幫助很多和培宇一樣,有實(shí)力有能力只是沒有遇到我的那些人,這也是我為什么在知乎發(fā)貼的原因,IT技術(shù)的培訓(xùn),哪些培訓(xùn)機(jī)構(gòu)能做到這一點(diǎn)?
這個(gè)真實(shí)的小故事,就是想跟大家提前說清楚,我對后端的要求有多高,這也是后端特別好玩的地方。你必須要會(huì)很多種框架,有足夠?qū)拸V的視野,還需要有足夠多的項(xiàng)目經(jīng)驗(yàn)(做金融和做地產(chǎn)是兩個(gè)完全不同的概念),還需要懂項(xiàng)目開發(fā)流程以及快速定位線上問題的能力。
這些,就是我說的后端的主要工作內(nèi)容了,這也是為嘛我說到后端的時(shí)候,大部分就是在指Java,而我說Java的時(shí)候,基本上是只指后端,根本就不是指Java的語法。更不是說是Android。
現(xiàn)在明白為什么后端是大后期了么, 為什么不建議前端學(xué)后端了么。后端要懂的東西,太多了。
言歸正傳,我來講一下后端工程師的相關(guān)內(nèi)容。
1 工作內(nèi)容:
大部分的后端工程師都停留在功能實(shí)現(xiàn)的層面上。這是現(xiàn)在國內(nèi)二流或者是三流的公司的現(xiàn)狀,甚至是在某些一流的公司。很多時(shí)候都是架構(gòu)師出了架構(gòu)設(shè)計(jì),更多的外包公司根本就是有DBA來做設(shè)計(jì),然后后端程序員從JS到CSS到Java全寫,完全就是一個(gè)通道,所有的復(fù)雜邏輯全部交給DB來做,這也是幾年前DBA很受重視的原因。
所以你能看到成千上萬行的存儲(chǔ)過程(存儲(chǔ)過程,視圖,事務(wù),外鍵 這些東西我真心希望永遠(yuǎn)不要在Mysql里出現(xiàn)),這就是外包公司中最常見的架構(gòu)體系。來個(gè)SSH,Over。
好一點(diǎn)的會(huì)個(gè)WebService,用過ActiveMQ,也用過Redis,甚至還會(huì)用過Dubbo。然而大多數(shù)情況也根本不了解為什么這么用。
很多人寫了兩年或者三年代碼都沒做過獨(dú)立的DB設(shè)計(jì),不知道什么是REST,不懂怎么做接口設(shè)計(jì),也不知道怎么去定位問題。
所以對于他們來說,拿到產(chǎn)品經(jīng)理的需要,會(huì)有一個(gè)項(xiàng)目經(jīng)理或者是Leader分配任務(wù),跟著按步就班的把代碼寫完,跟前端調(diào)試完,QA測試不通過,加班改回來重新改,改完QA又沒通過,再加班再改,QA終于通過了然后上線了突然發(fā)現(xiàn)另一個(gè)好的功能不能用了,跟著再接著改,在線上發(fā)布一次又一次。。眼睛熬的通紅最終真的受不了了,休息幾天換另一家公司漲個(gè)40%左右的薪水繼續(xù)這樣的日子。
不不不。我?guī)С鰜淼暮蠖顺绦騿T并不要這么做。所以,我?guī)У暮蠖顺绦騿T的工作方式是這樣的。
拿到產(chǎn)品需求-》后端程序員做接口設(shè)計(jì),架構(gòu)設(shè)計(jì),DB設(shè)計(jì)-》拿出方案來做技術(shù)方案評審-》評審?fù)ㄟ^,開始預(yù)估時(shí)間-》每日更新自己的Task-》接口完成自測一百遍,每日部署到開發(fā)環(huán)境,隨時(shí)集成-》CodeReview-》重構(gòu)代碼-》性能測試-》Demo通過-》發(fā)布到測試環(huán)境-》修正Bug-》重新發(fā)布-》發(fā)布到線上環(huán)境。
這中間需要理解需求,需要拿出多個(gè)方案,需要跟前端配合,需要跟QA配合,需要跟運(yùn)維配合。需要跟產(chǎn)品溝通,有時(shí)候還需要找UI。后端幾乎是一個(gè)核心節(jié)點(diǎn),而這個(gè)核心節(jié)點(diǎn)接起來了所有的人。
我不知道我講清楚沒,很多時(shí)候我都發(fā)現(xiàn)我可能太久沒做一個(gè)IT新人了,都忘記了新人們關(guān)心的問題或者是困惑是什么。
這就是我知道的,兩種后端程序員的工作內(nèi)容。你選哪一種?
2 需要技能:
環(huán)境【IDE(Idea/Eclipse,Maven,jenkins,Nexus,Jetty,Shell,Host),源碼管理(SVN/Git) ,WEB服務(wù)器(nginx,tomcat,Resin)】
基礎(chǔ)【Http,REST,跨域,語法,Websocket,數(shù)據(jù)庫,計(jì)算機(jī)網(wǎng)絡(luò),操作系統(tǒng),算法,數(shù)據(jù)結(jié)構(gòu)】
框架【Spring,AOP,Quartz,Json TagLib,tiles,activeMQ,memcache,redis,mybatis,log4j,junit等等等等等】
業(yè)務(wù)【金融,教育,醫(yī)療,汽車,房產(chǎn)等等等等各種行業(yè)】
第三方【微信,QQ等各種第三方登錄,支付,IM,地圖,語音,視頻,圖片】
環(huán)境不說了,搭環(huán)境永遠(yuǎn)是后端人員比較頭疼的事兒,所以才會(huì)有很多人想用簡單方便的的語言來解決這些問題,比如說Python之類的。我還是喜歡Java,大概很多人覺得重,然而我喜歡,我覺得不是“重”,而是“正”。好像劍一樣,王者之劍,路子很正。
基礎(chǔ)知識太多了,正是我一直強(qiáng)調(diào)的,做后端,這些基礎(chǔ)知識了解多少,其實(shí)就是決定了你以后能走多遠(yuǎn)。這些科班出身的計(jì)算機(jī)ER,會(huì)了這些,才有了一個(gè)平臺(tái),才可以站在這個(gè)平臺(tái)之上去搭建更高層的建筑,如果根基不穩(wěn),你覺得你會(huì)對上層的知識理解透徹么?
框架是Java最有資格說自己是架構(gòu)師的原因。無數(shù)的開源框架,選型,篩選,對比,填坑,優(yōu)化,維護(hù),尋找最適合的業(yè)務(wù)場景,很多時(shí)候很多公司的架構(gòu)簡直了(我不吐了,很多技術(shù)都在用然而每一種用法幾乎都是錯(cuò)誤用例的典范)。所以你想想,你大概要有多少框架要學(xué)要用?很多時(shí)候,你必須要想清楚,哪些是需要認(rèn)真了解的,哪些是需要一筆帶過的。
業(yè)務(wù)對于后端人員來講無比重要,不懂業(yè)務(wù),就沒有架構(gòu)。這是我經(jīng)常說的一句話,這個(gè)世界上不存在不懂業(yè)務(wù)的架構(gòu)師(我不怕被打臉),一個(gè)架構(gòu)師必須要深入了解業(yè)務(wù)體系,知道哪些是會(huì)變的,哪些是不會(huì)變的,哪些是重要的,哪些是不重要的,然后才能做出來適合某個(gè)應(yīng)用場景的架構(gòu)來。比如說,同樣的表,幾千萬的量和幾億的量差別非常大,頻繁讀和頻繁寫的設(shè)計(jì)也完全不同。會(huì)有一些通用的架構(gòu)思想和理念在里面,但是都是需要跟業(yè)務(wù)結(jié)合落地的。
PS:很多金融證券行業(yè)的程序員,就是靠業(yè)務(wù)知識混飯吃的。對他們來說,對業(yè)務(wù)體系的了解要比在技術(shù)上的追求重要的多。
第三方的東西和JS的內(nèi)容相似,我不想多說了,而且 J***A的第三方的東西更是多的離譜,坦白的說Drools這東西我就沒徹底研究明白,雖然很喜歡。而像這種類似的東西,太多太多了。
3 發(fā)展前景
對于后端人員的發(fā)展前景,我有兩點(diǎn)想說的。
A.無論是B/S還是C/S,無論是WEB還是原生,或者是智能硬件,后端都會(huì)屹立不倒。
B.隨著后端架構(gòu)體系的穩(wěn)定和成熟,后端人員在性能上需要擔(dān)心的問題不多(再加上大部分應(yīng)用場景其實(shí)并不需要那么多的性能),所以更多的應(yīng)該會(huì)關(guān)注于一個(gè)穩(wěn)定的擴(kuò)展性好的架構(gòu),以及快速實(shí)現(xiàn)能夠復(fù)用的業(yè)務(wù)邏輯模塊實(shí)現(xiàn)上。
最近后端人員在價(jià)格上,其實(shí)有點(diǎn)偏低于前端人員的,就向我之前所說。兩年的JS可能拿到20K。兩年的Java想拿到這個(gè),非常難。然而,五年的Java或者是七年的Java,拿到30~40K,不難。
更高的,也不稀奇。
0~12個(gè)月:4K~10K
一年~三年:8K~20K
三年~五年:18K~30K
五年以上:30K~
成長路徑:Java初級工程師-Java中級工程師-架構(gòu)師-技術(shù)經(jīng)理-技術(shù)總監(jiān)-CTO-CEO
后端的爆發(fā)力并不差,只要你給他時(shí)間,只要你愿意前進(jìn),后端的路線很深,深到你有時(shí)候會(huì)覺得自己還沒來得及全部了解,就已經(jīng)有無數(shù)的新人涌進(jìn)來要替換你的位置了。
4.入門門檻
計(jì)算機(jī)網(wǎng)絡(luò),數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)庫,操作系統(tǒng),Java基礎(chǔ)語法。
Java是入門門檻最高的一個(gè),沒有之一。(好吧,我雖然說的是后端,然而一直把Java等同于后端)
當(dāng)然,如果你的志向并不是一個(gè)架構(gòu)師,只是像NodeJS和Python或者是PHP一樣隨便做點(diǎn)小項(xiàng)目,那么也可以說的得上是沒有門檻,但是我說過我有偏見,所以可以直接把我無視掉。如果你覺得我說的哪點(diǎn)不對,你過來揍我啊。
要跟我學(xué)Java,就必須把這些基礎(chǔ)知識學(xué)好,我只帶想成為架構(gòu)師的人。
5.哪些行業(yè)適合做后端工程師
IT界:無
其他界:無
科班生:計(jì)算機(jī)專業(yè)的中等水平能力以上
所以如果有各種培訓(xùn)學(xué)校告訴你零基礎(chǔ)4個(gè)月20000塊錢把你教出來做Java后端,然后你月薪上萬,你就直接一鍋蓋蓋他臉上吧。
那么零基礎(chǔ)的人想做后端,怎么樣才能入門呢,我比較推薦的是先做前端,然后把自己的基礎(chǔ)知識各種補(bǔ),補(bǔ)回來,再去轉(zhuǎn)后端--但是實(shí)際上,你做了前端,再想轉(zhuǎn)后端,就太難了,因?yàn)槟愕綍r(shí)候就不太想放棄自己一年或兩年就可以輕松拿到的高薪,去做一個(gè)苦逼的后端了。
6.職業(yè)限制
后端的職業(yè)限制有很多,第一個(gè)職業(yè)限制就是不去做獨(dú)立的項(xiàng)目,不做DB設(shè)計(jì),不做接口設(shè)計(jì)。
第二個(gè)職業(yè)限制就是視野不開闊,不知道有什么樣的開源軟件可以用。
第三個(gè)職業(yè)限制就是不重視線上環(huán)境,不知道如何寫日報(bào),也不知道如何快速定位。我不得不說我?guī)н^的兄弟,有一次解決線上問題的時(shí)候快把我氣瘋了,他們在那里猜測問題出現(xiàn)的原因,跟玩福爾摩斯一樣,不打日志不看日志,根據(jù)現(xiàn)象倒推結(jié)果,直接盲改代碼再扔到線上看看有沒有解決問題---那是最后逼不得已的辦法好么,在此之前能不能安靜的把日志打出來,確認(rèn)一下到底是哪里出錯(cuò)了?
第四個(gè)職業(yè)限制就是不懂版本管理,不懂Bug修復(fù)流程,不懂開發(fā)流程。這些其實(shí)都是一整套的流程體系(等我心情好了,有人把Java貼吧吧主罵的狗血噴頭了,我大概也會(huì)寫出來)
大部分后端的人員都會(huì)抱怨自己不會(huì)寫前端代碼,不會(huì)寫Android或者是IOS,不能自己獨(dú)立完成項(xiàng)目,所以他們才傾向于自己做一個(gè)全棧工程師,做一個(gè)自己喜歡做的東西。
這也是后端人員會(huì)經(jīng)常覺得不爽的地方,自己寫的東西完全感受不到,而且一旦出問題很多時(shí)候都是大問題,解決起來很麻煩,經(jīng)常不敢改代碼,因?yàn)榭床欢叭说臇|西。
有時(shí)候后端人員會(huì)比較木,雖然很各種職業(yè)都交流,但是多數(shù)都會(huì)覺得自己很NB其他人都很SB。
這也是后端人員比較大的問題,往上走的話也容易遇到各種瓶頸,做技術(shù)的,做到CTO,再去做CEO,其實(shí)很難的。
而且,等你走到足夠高的高度,你會(huì)發(fā)現(xiàn),一個(gè)七年工作經(jīng)驗(yàn)的正常發(fā)展的后端工程師,一定會(huì)有一個(gè)七年工作經(jīng)驗(yàn)的產(chǎn)品或者是運(yùn)營,在薪水和職業(yè)上秒殺他。這也是做技術(shù)的最大的悲劇。
不過大部分的后端工程師都比大部分的產(chǎn)品和運(yùn)營人員薪水高,這也是這個(gè)行業(yè)的特征之一,所謂高不成低不就,小富即安,就是這樣的。
如果你是一個(gè)有理想的后端工程師,我建議你多關(guān)注一些敏捷開發(fā),多關(guān)注一些項(xiàng)目管理,學(xué)會(huì)帶著自己的兄弟們一起做事兒。再不然,就是在技術(shù)這條路上一直走到黑。
7.去哪里學(xué),怎么成長
基礎(chǔ)知識不要來找我,我不教。隨便去其他的學(xué)校補(bǔ)基礎(chǔ)也可以。想要提高或者是想要成為架構(gòu)師,就來找我。
本文為作者獨(dú)立觀點(diǎn),不代表鳥哥筆記立場,未經(jīng)允許不得轉(zhuǎn)載。
《鳥哥筆記版權(quán)及免責(zé)申明》 如對文章、圖片、字體等版權(quán)有疑問,請點(diǎn)擊 反饋舉報(bào)
我們致力于提供一個(gè)高質(zhì)量內(nèi)容的交流平臺(tái)。為落實(shí)國家互聯(lián)網(wǎng)信息辦公室“依法管網(wǎng)、依法辦網(wǎng)、依法上網(wǎng)”的要求,為完善跟帖評論自律管理,為了保護(hù)用戶創(chuàng)造的內(nèi)容、維護(hù)開放、真實(shí)、專業(yè)的平臺(tái)氛圍,我們團(tuán)隊(duì)將依據(jù)本公約中的條款對注冊用戶和發(fā)布在本平臺(tái)的內(nèi)容進(jìn)行管理。平臺(tái)鼓勵(lì)用戶創(chuàng)作、發(fā)布優(yōu)質(zhì)內(nèi)容,同時(shí)也將采取必要措施管理違法、侵權(quán)或有其他不良影響的網(wǎng)絡(luò)信息。
一、根據(jù)《網(wǎng)絡(luò)信息內(nèi)容生態(tài)治理規(guī)定》《中華人民共和國未成年人保護(hù)法》等法律法規(guī),對以下違法、不良信息或存在危害的行為進(jìn)行處理。
1. 違反法律法規(guī)的信息,主要表現(xiàn)為:
1)反對憲法所確定的基本原則;
2)危害國家安全,泄露國家秘密,顛覆國家政權(quán),破壞國家統(tǒng)一,損害國家榮譽(yù)和利益;
3)侮辱、濫用英烈形象,歪曲、丑化、褻瀆、否定英雄烈士事跡和精神,以侮辱、誹謗或者其他方式侵害英雄烈士的姓名、肖像、名譽(yù)、榮譽(yù);
4)宣揚(yáng)恐怖主義、極端主義或者煽動(dòng)實(shí)施恐怖活動(dòng)、極端主義活動(dòng);
5)煽動(dòng)民族仇恨、民族歧視,破壞民族團(tuán)結(jié);
6)破壞國家宗教政策,宣揚(yáng)邪教和封建迷信;
7)散布謠言,擾亂社會(huì)秩序,破壞社會(huì)穩(wěn)定;
8)宣揚(yáng)淫穢、色情、賭博、暴力、兇殺、恐怖或者教唆犯罪;
9)煽動(dòng)非法集會(huì)、結(jié)社、游行、示威、聚眾擾亂社會(huì)秩序;
10)侮辱或者誹謗他人,侵害他人名譽(yù)、隱私和其他合法權(quán)益;
11)通過網(wǎng)絡(luò)以文字、圖片、音視頻等形式,對未成年人實(shí)施侮辱、誹謗、威脅或者惡意損害未成年人形象進(jìn)行網(wǎng)絡(luò)欺凌的;
12)危害未成年人身心健康的;
13)含有法律、行政法規(guī)禁止的其他內(nèi)容;
2. 不友善:不尊重用戶及其所貢獻(xiàn)內(nèi)容的信息或行為。主要表現(xiàn)為:
1)輕蔑:貶低、輕視他人及其勞動(dòng)成果;
2)誹謗:捏造、散布虛假事實(shí),損害他人名譽(yù);
3)嘲諷:以比喻、夸張、侮辱性的手法對他人或其行為進(jìn)行揭露或描述,以此來激怒他人;
4)挑釁:以不友好的方式激怒他人,意圖使對方對自己的言論作出回應(yīng),蓄意制造事端;
5)羞辱:貶低他人的能力、行為、生理或身份特征,讓對方難堪;
6)謾罵:以不文明的語言對他人進(jìn)行負(fù)面評價(jià);
7)歧視:煽動(dòng)人群歧視、地域歧視等,針對他人的民族、種族、宗教、性取向、性別、年齡、地域、生理特征等身份或者歸類的攻擊;
8)威脅:許諾以不良的后果來迫使他人服從自己的意志;
3. 發(fā)布垃圾廣告信息:以推廣曝光為目的,發(fā)布影響用戶體驗(yàn)、擾亂本網(wǎng)站秩序的內(nèi)容,或進(jìn)行相關(guān)行為。主要表現(xiàn)為:
1)多次發(fā)布包含售賣產(chǎn)品、提供服務(wù)、宣傳推廣內(nèi)容的垃圾廣告。包括但不限于以下幾種形式:
2)單個(gè)帳號多次發(fā)布包含垃圾廣告的內(nèi)容;
3)多個(gè)廣告帳號互相配合發(fā)布、傳播包含垃圾廣告的內(nèi)容;
4)多次發(fā)布包含欺騙性外鏈的內(nèi)容,如未注明的淘寶客鏈接、跳轉(zhuǎn)網(wǎng)站等,誘騙用戶點(diǎn)擊鏈接
5)發(fā)布大量包含推廣鏈接、產(chǎn)品、品牌等內(nèi)容獲取搜索引擎中的不正當(dāng)曝光;
6)購買或出售帳號之間虛假地互動(dòng),發(fā)布干擾網(wǎng)站秩序的推廣內(nèi)容及相關(guān)交易。
7)發(fā)布包含欺騙性的惡意營銷內(nèi)容,如通過偽造經(jīng)歷、冒充他人等方式進(jìn)行惡意營銷;
8)使用特殊符號、圖片等方式規(guī)避垃圾廣告內(nèi)容審核的廣告內(nèi)容。
4. 色情低俗信息,主要表現(xiàn)為:
1)包含自己或他人性經(jīng)驗(yàn)的細(xì)節(jié)描述或露骨的感受描述;
2)涉及色情段子、兩性笑話的低俗內(nèi)容;
3)配圖、頭圖中包含庸俗或挑逗性圖片的內(nèi)容;
4)帶有性暗示、性挑逗等易使人產(chǎn)生性聯(lián)想;
5)展現(xiàn)血腥、驚悚、殘忍等致人身心不適;
6)炒作緋聞、丑聞、劣跡等;
7)宣揚(yáng)低俗、庸俗、媚俗內(nèi)容。
5. 不實(shí)信息,主要表現(xiàn)為:
1)可能存在事實(shí)性錯(cuò)誤或者造謠等內(nèi)容;
2)存在事實(shí)夸大、偽造虛假經(jīng)歷等誤導(dǎo)他人的內(nèi)容;
3)偽造身份、冒充他人,通過頭像、用戶名等個(gè)人信息暗示自己具有特定身份,或與特定機(jī)構(gòu)或個(gè)人存在關(guān)聯(lián)。
6. 傳播封建迷信,主要表現(xiàn)為:
1)找人算命、測字、占卜、解夢、化解厄運(yùn)、使用迷信方式治?。?br /> 2)求推薦算命看相大師;
3)針對具體風(fēng)水等問題進(jìn)行求助或咨詢;
4)問自己或他人的八字、六爻、星盤、手相、面相、五行缺失,包括通過占卜方法問婚姻、前程、運(yùn)勢,東西寵物丟了能不能找回、取名改名等;
7. 文章標(biāo)題黨,主要表現(xiàn)為:
1)以各種夸張、獵奇、不合常理的表現(xiàn)手法等行為來誘導(dǎo)用戶;
2)內(nèi)容與標(biāo)題之間存在嚴(yán)重不實(shí)或者原意扭曲;
3)使用夸張標(biāo)題,內(nèi)容與標(biāo)題嚴(yán)重不符的。
8.「飯圈」亂象行為,主要表現(xiàn)為:
1)誘導(dǎo)未成年人應(yīng)援集資、高額消費(fèi)、投票打榜
2)粉絲互撕謾罵、拉踩引戰(zhàn)、造謠攻擊、人肉搜索、侵犯隱私
3)鼓動(dòng)「飯圈」粉絲攀比炫富、奢靡享樂等行為
4)以號召粉絲、雇用網(wǎng)絡(luò)水軍、「養(yǎng)號」形式刷量控評等行為
5)通過「蹭熱點(diǎn)」、制造話題等形式干擾輿論,影響傳播秩序
9. 其他危害行為或內(nèi)容,主要表現(xiàn)為:
1)可能引發(fā)未成年人模仿不安全行為和違反社會(huì)公德行為、誘導(dǎo)未成年人不良嗜好影響未成年人身心健康的;
2)不當(dāng)評述自然災(zāi)害、重大事故等災(zāi)難的;
3)美化、粉飾侵略戰(zhàn)爭行為的;
4)法律、行政法規(guī)禁止,或可能對網(wǎng)絡(luò)生態(tài)造成不良影響的其他內(nèi)容。
二、違規(guī)處罰
本網(wǎng)站通過主動(dòng)發(fā)現(xiàn)和接受用戶舉報(bào)兩種方式收集違規(guī)行為信息。所有有意的降低內(nèi)容質(zhì)量、傷害平臺(tái)氛圍及欺凌未成年人或危害未成年人身心健康的行為都是不能容忍的。
當(dāng)一個(gè)用戶發(fā)布違規(guī)內(nèi)容時(shí),本網(wǎng)站將依據(jù)相關(guān)用戶違規(guī)情節(jié)嚴(yán)重程度,對帳號進(jìn)行禁言 1 天、7 天、15 天直至永久禁言或封停賬號的處罰。當(dāng)涉及欺凌未成年人、危害未成年人身心健康、通過作弊手段注冊、使用帳號,或者濫用多個(gè)帳號發(fā)布違規(guī)內(nèi)容時(shí),本網(wǎng)站將加重處罰。
三、申訴
隨著平臺(tái)管理經(jīng)驗(yàn)的不斷豐富,本網(wǎng)站出于維護(hù)本網(wǎng)站氛圍和秩序的目的,將不斷完善本公約。
如果本網(wǎng)站用戶對本網(wǎng)站基于本公約規(guī)定做出的處理有異議,可以通過「建議反饋」功能向本網(wǎng)站進(jìn)行反饋。
(規(guī)則的最終解釋權(quán)歸屬本網(wǎng)站所有)