老是有人喜歡討論說做前端開發(fā)有前途沒有崖技,前幾天還有一個剛畢業(yè)的大學生問我。說實話我也不知道怎么樣钟哥,但是我很喜歡做前端開發(fā)迎献。要說做業(yè)務是挑戰(zhàn)自己,做前端開發(fā)也是很挑戰(zhàn)自己的腻贰,因為信息更新速度很快吁恍,要斷的學習,去研究播演。下面是我來網(wǎng)上轉(zhuǎn)來的一篇文章冀瓦,寫的很有道理。希望我們做前端開發(fā)的人心能靜下了写烤,好好的學習翼闽。因為要學習的知識太多了。在這里我說一句洲炊,三百六十行感局,行行出狀元!
關于一個WEB前端的職業(yè)規(guī)劃暂衡,其實是有各種的答案询微,沒有哪種答案是完全正確的,全憑自己的選擇古徒,只要是自己選定了拓提,堅持去認真走,就好隧膘。在這里代态,我只是 簡要說一下自己對于這塊兒內(nèi)容的理解。有一個觀點想要分享給大家的是:任何規(guī)劃和目標的實現(xiàn)都依賴于知識的積累疹吃,而知識的積累來源于學習及學習后大量的實 踐蹦疑。我提供一個實踐途徑,我們可以在工作之余的時間在網(wǎng)上或外包公司那里接一些私單做萨驶,因為目標不是賺錢歉摧,我們可以用最低的價格來提升自身競爭力,獲得大 量訂單就意味著獲得大量的實踐機會,同時叁温,還有一些收入作為工作成就感之外的安慰獎再悼,還是不錯的。
一膝但、職業(yè)方向定位
首先冲九,只有確定好自己的職業(yè)方向,才能做好職業(yè)規(guī)劃跟束。在我看來莺奸,做WEB前端技術(shù)能夠找到的職業(yè)方向有以下幾種:
(1)資深WEB前端工程師
這個方向算是一個WEB前端最基本的選擇了,在國外冀宴,很多老外都能夠把自己的專業(yè)做到極致灭贷,能一輩子就在一個專業(yè)領域不斷學習和積累。主要在于內(nèi)因和外因 兩方面略贮,內(nèi)因是老外通常思想比較簡單直接甚疟,容易一直專注于一個領域;外因是國外的環(huán)境很好逃延,能夠良好的支撐這樣的職業(yè)發(fā)展道路古拴。反觀國內(nèi),從內(nèi)因來 講真友,WEB前端技術(shù)人員還是蠻浮躁的,通常會因為WEB前端知識的更新速度太快而覺得學習起來辛苦紧帕,最終轉(zhuǎn)向后臺或其他道路盔然。從外因來講,WEB前端人員 沒有獲得公平的待遇是嗜,可能從HTML頁面制作就開始并沿襲下來的愈案,從來WEB前端人員都比后端人員低一等,貌似前端就是“淺顯”的代名詞鹅搪、后端就是“深 奧”的代名詞站绪,這也直接造就了前端人員的收入無法和后端人員媲美,同時直接影響到前端人才市場的活躍程度丽柿。另一方面恢准,前端的技術(shù)入門較容易,造成另一個極 端情況:人員泛濫甫题、人才稀缺馁筐。我想對所有的WEB前端工程師說:面包總會有的,要耐得住寂寞坠非!我個人比較推薦這個職業(yè)發(fā)展方向敏沉,因為,在這個方向下,只要 足夠耐心盟迟、厚積薄發(fā)秋泳,成功的概率是非常高的。同時攒菠,這是一條最單純的路迫皱,我們更多的是花費精力在技術(shù)的鉆研上,而不是辦公室政治等其它瑣事要尔。
(2)資深WEB架構(gòu)師
說功利點兒舍杜,我喜歡這個方向,既兼顧了工作的單純性赵辕、又能夠減少實際Coding的工作量能騰出更多時間鉆研技術(shù)既绩。在國內(nèi),WEB前端工程師遇到較多的情 況是總是反復編寫著同樣的代碼还惠,總是面對著同樣的技術(shù)和產(chǎn)品饲握,容易感覺枯燥。由于我們擁有最為廣泛的WEB相關知識沉淀蚕键,使得我們更加容易成為一名架構(gòu) 師救欧。這個職業(yè)發(fā)展方向不如第一種來得平滑,主要是作為一名架構(gòu)師不得不學習:后端技術(shù)锣光、DBA笆怠、Platform等內(nèi)容,而這種學習通常需要實際操刀做項 目誊爹,不是自己在家里寫兩個Demo就好的蹬刷,這就勢必會遭遇一段時間的陣痛期。雖然不是很平滑频丘,但是办成,對于一個大局觀好、悟性好搂漠、知識面廣的前端工程師迂卢,我 推薦你們努把力,走一條光榮的架構(gòu)師之路吧桐汤。
(3)自己創(chuàng)業(yè)
其實而克,自己創(chuàng)業(yè)是最好的道路、也是成功率最低的道路惊科,挑戰(zhàn)和機遇并存拍摇。這里,作為一個前端技術(shù)人員馆截,需要將自己的視野更多放在行業(yè)的動態(tài)充活、產(chǎn)業(yè)鏈的動態(tài)蜂莉、相關產(chǎn)品領域的動態(tài),把關注細節(jié)的優(yōu)勢繼續(xù)保持混卵,同時映穗,增強自己把控一個產(chǎn)品乃至一個公司命運的能力。但是幕随,這條道路和技術(shù)之路稍有分歧蚁滋,后續(xù)將不再贅述。
(4) 轉(zhuǎn)崗管理或其他
由于這條職業(yè)道路和WEB前端技術(shù)之路關系不大赘淮,故而辕录,這里不做過多討論,但是梢卸,無論是否走上這條道路走诞,我覺得對于任何技術(shù)之路,更好的大局觀蛤高、更廣泛的 視野是良好發(fā)展的必備條件蚣旱,擁有良好的大局觀和更廣泛的視野別無他法,只能不斷的進行知識的橫向拓展和積累戴陡,同時塞绿,多在橫向拓展知識的時候進行實踐,把知 識變成技能恤批。
二异吻、職業(yè)發(fā)展目標
我都有一個最終的目標,在這個目標之上喜庞,我們需要給自己制定一系列學習和成長計劃涧黄,制定的方法如下:
第一、梳理知識架構(gòu)赋荆;
梳理知識架構(gòu)的目的在于,我們要了解清楚懊昨,哪些技術(shù)是前置窄潭、哪些技術(shù)是后繼,那些技術(shù)是深度酵颁、哪些技術(shù)是廣度嫉你,按照這兩個維度梳理好知識架構(gòu)之后,我們才能準確地制定清晰的成長目標躏惋、高效的成長計劃幽污。
第二、分解目標簿姨;
我認為距误,大抵可分解為三個階段簸搞,包括:起步階段、提升階段准潭、成型階段趁俊。這三個階段分別對應著不同的目標:
起步階段:
1、基本知識的掌握
在我們梳理的知識架構(gòu)中刑然,按照我們分析的兩個維度里最前置的寺擂、最淺顯的部分,作為打基礎的階段泼掠,必須要在這個過程中更多投入到實踐中去怔软,我們通常做的多了、熟練了择镇,就認為這部分知識和內(nèi)容掌握了挡逼。
2、常用工具的掌握
對于常用工具的掌握應該掌握一些有大公司或?qū)I(yè)團隊背景的流行工具沐鼠,這些工
具的熟練掌握能夠提升專業(yè)度挚瘟、職業(yè)度,同時饲梭,能提升我們的工作效率乘盖。我們只有在檢驗自己對于知識和技能熟練程度的時候,才會自虐式的用Notepad去編寫頁面憔涉、css和腳本等內(nèi)容订框。
3、溝通技巧的掌握
通常做技術(shù)的人會被定位為“不善溝通”的人兜叨,這是為什么呢穿扳?究其原因,主要是因為多跟程序和代碼打交道国旷,跟人的溝通較少導致矛物。這種時候我們要特別注意增加 和人溝通的機會,著重提升這塊兒的能力跪但。另一方面履羞,我們通常被稱為“不懂溝通技巧”的人。作為一個技術(shù)人員屡久,包括我自己忆首,似乎天生就有一些難以接受挑戰(zhàn)的 缺陷。在國內(nèi)被环,我們的技術(shù)人員通常都是自己制定方案、自己執(zhí)行方案浸锨,在執(zhí)行過程中又缺乏相關產(chǎn)品、交互設計等人員的溝通揣钦,大多是在自己的思路貫徹下進行開 發(fā),久而久之谎亩,我們習慣于信任自己的觀點、在自己的視角看問題宇姚,對于挑戰(zhàn)總是百般地“據(jù)理”力爭匈庭。我們需要更多提升的是阱持,如何在對方的視角看問題衷咽、如何在 用戶的視角看問題蒜绽。
4躲雅、良好的開發(fā)習慣
開發(fā)習慣是養(yǎng)成的相赁,一旦有不好的習慣钮科,對于將來去修正帶來的將是很大的麻煩绵脯,我們在培養(yǎng)良好開發(fā)習慣一定要從起步時做起桨嫁,例如:寫代碼之前先分析璃吧、先寫文檔畜挨、先寫注釋。定義變量最好能用直接可理解的語義,最好是拼音逮刨,別整英文修己,尤其是生僻單詞睬愤,將來自己忘了還要開金山詞霸匆瓜。文件最好有有意義的文件夾命名來管理,文件名最好有意義娄涩,需要版本號的最好能和項目版本號一同更新……等等映跟。
提升階段:
1、高級技術(shù)的掌握
提升階段對于知識和技能掌握球恤,我們需要從梳理好的知識架構(gòu)中選擇更深一層次的技術(shù)進行學習荸镊,選擇之前躬存,我們先通過類比或預估的方法岭洲,衡量自身學習的難點盾剩,以學習難點和自己最不感興趣的部分為主。這樣推薦大家的原因是:這個階段我們興趣正濃承桥,已經(jīng)度過了苦澀的起步階段凶异,到達了興奮的提升階段番挺,我們要用興趣和興奮去挑戰(zhàn)最困難的部分玄柏,在我們信心受挫和興趣濃厚之中找到平衡粪摘。同時徘意,輔以其他的深層次知識一起學習和研究椎咧。
2勤讽、產(chǎn)品思想的學習
沒有正確的產(chǎn)品思想向臀,很難設計出良好的程序券膀,無論從界面芹彬、交互舒帮,還是接口会前、邏輯匾竿,不能夠理解產(chǎn)品岭妖、理解用戶需求昵慌,我們會給自己造成很大的麻煩斋攀,例如:我們千辛萬苦用最新技術(shù)淳蔼、最復雜的實現(xiàn)做出的功能鹉梨,卻得不到使用者或領導存皂、同事的認可旦袋。為了使我們的工作和學習更加有效率猜憎、避免無用功胰柑,我們需要不斷的學習產(chǎn)品的思想柬讨,只有理解了產(chǎn)品的思路踩官,我們才知道用我們的技術(shù)去輸出什么。
3嗅剖、各種框架的學習
框架是我們提高工作效率的優(yōu)秀手段信粮,對于框架的學習是成長必經(jīng)之路强缘。我們學習框架的路線通常應該是:使用——》分析——》個性化定制——》模仿編寫自己的 框架旅掂。只有大量的使用商虐,才能明白設計框架者在設計背后的思路称龙,只有了解到設計的思路鲫尊,才能做正確全面的分析疫向,只有正確全面的分析才能支撐我們?nèi)ζ洳眉艋?擴展搔驼,只有經(jīng)過實際分析舌涨、修改別人的框架囊嘉,才有可能寫出優(yōu)秀的、自己的框架琢蛤。學習通常的路線是:學習博其、理解慕淡、模仿儡率、創(chuàng)造儿普。
4眉孩、富客戶端應用的學習
隨著帶寬和計算機性能的提升,以及WEB2.0的如火如荼死遭,富客戶端應用充斥著互聯(lián)網(wǎng)呀潭,如果你不懂得富客戶端應用钠署,你就不能稱之為一個合格的前端技術(shù)人 員谐鼎。可以按照:Flash動畫——》Flash編程——》Flex——》——》Air——》Silverlight動畫——》Silverlight編程 的步驟學習隔缀,先學Flash后學Siverlight的原因猾瘸,一來Silverlight還不太成熟牵触,二來揽思,實際Silverlight借鑒了很多Flash的思想羹令,最好在學習的時候不要本末倒置福侈。
5肪凛、各種網(wǎng)絡協(xié)議的學習
WEB前端技術(shù)就是云上的技術(shù)伟墙,云的協(xié)議有N種,我們應該著重學習:TCP/IP譬淳,UDP邻梆,HTTP浦妄,POP3,SMTP這幾種協(xié)議阅懦,在開發(fā)WEB前端應 用過程中耳胎,這些協(xié)議是我們的技術(shù)的載體怕午,有時候決定了我們的應用是否能實現(xiàn)堡距、有時候決定了我們的應用是否高性能羽戒,同時半醉,這些協(xié)議還是我們和后端技術(shù)交互的 重要手段呆奕,這些協(xié)議就像是密碼字典梁钾,幫助我們把后端傳輸過來的密文解釋成我們前端技術(shù)能夠理解的明文零酪。
6四苇、程序設計
這個階段我們需要學習OO月腋、UML、設計模式妓肢、設計方法……碉钠,我們要讓技術(shù)開發(fā)工作變成有目的性色徘、有計劃性褂策,并且,這些目的和計劃必須有理論的支持遍搞,這 樣溪猿,我們設計出來的程序才能夠更優(yōu)秀、我們的開發(fā)才更有效率依痊,這樣胸嘁,我們的技術(shù)才能有所提升。為什么要學習程序設計呢衔沼?主要是指蚁,就算我們不用Flash的ActionScript編寫程序的前端邏輯,我們至少要把我們自己的Javascript函數(shù)搓劫、包的定義規(guī)劃起來勤揩,避免將來自己或他人維護代碼的時候出 現(xiàn)問題陨亡。程序設計能力负蠕,在技術(shù)人員仍然被看作是程序員的這個年代,是灰常倦畅、灰常重要滴遮糖。
三、成型階段:
到了這個階段叠赐,我也沒什么好說的了欲账,如果能達到這個階段芭概,就證明后續(xù)的成長之路是異彩紛呈的赛不,是成為一個資深WEB前端工程師,還是成為一個資深WEB架 構(gòu)師谈山,亦或其他,都要具體分析自身的特點和興趣所在宏怔。如果是資深的前端工程師奏路,我覺得更重要的是去作新技術(shù)的研究,互聯(lián)網(wǎng)技術(shù)發(fā)展速度日新月異臊诊,不斷學習 新技術(shù)鸽粉,否則就被淘汰。此外抓艳,我建議在知識的廣度触机、深度方面最好能挑選一個自己最擅長和最感興趣的一兩個領域深入鉆研,不要挑太多玷或,多而不精儡首。如果是資深 的WEB架構(gòu)師之路,我建議要深入了解后臺技術(shù)偏友,這種深入了解一定要伴隨著實際的項目開發(fā)蔬胯,基本方法是:按照別人設計的架構(gòu)實現(xiàn)幾個Server——》自 己設計并實現(xiàn)幾個Server。