Web前端工程師職業(yè)規(guī)劃如何做
只有確定好自己的職業(yè)方向,才能做好職業(yè)規(guī)劃。在小編看來
web前端工程師
能夠找到的職業(yè)方向有以下幾種:
-
資深web前端工程師
這個方向算是web前端最基本的選擇了;
-
資深web架構(gòu)師
這一方向即兼顧了工作的單純性,又能夠減少實際的工作量從而能夠騰出時間鉆研技術(shù);
-
自己創(chuàng)業(yè)
這一方向挑戰(zhàn)與機遇并存,作為一個前端技術(shù)人員,需要將自己的視野更多放在行業(yè)的動態(tài)、產(chǎn)業(yè)鏈的動態(tài)、相關(guān)產(chǎn)品領(lǐng)域的動態(tài),把關(guān)注細節(jié)的優(yōu)勢繼續(xù)保持,同時,增強自己把控一個產(chǎn)品乃至一個公司命運的能力。
職業(yè)發(fā)展規(guī)劃是在職業(yè)發(fā)展目標的基礎(chǔ)上制定的,我都有一個最終的目標,在這個目標之上,我們需要給自己制定一系列學(xué)習(xí)和成長計劃,制定的方法如下:
-
梳理知識架構(gòu)
其目的在于目的在于,我們要了解清楚,哪些技術(shù)是前置、哪些技術(shù)是后繼,那些技術(shù)是深度、哪些技術(shù)是廣度,按照這兩個維度梳理好知識架構(gòu)之后,我們才能準確地制定清晰的成長目標、高效的成長計劃。
-
分解目標
小編看來大致可以分為三個階段,包括起步階段、提升階段、成型階段,這三個階段又分別對應(yīng)著不同的目標:
①起步階段目標:基礎(chǔ)知識的掌握、常用工具的掌握、
溝通技巧
的掌握、良好的開發(fā)習(xí)慣;
②提升階段目標:高級技術(shù)的掌握、產(chǎn)品思想的學(xué)習(xí)、各種框架的學(xué)習(xí)、富客戶端應(yīng)用的學(xué)習(xí)、各種
網(wǎng)絡(luò)協(xié)議
的學(xué)習(xí)、程序設(shè)計;
③成型階段:到了這個階段,我也沒什么好說的了,如果能達到這個階段,就證明后續(xù)的成長之路是異彩紛呈的,是成為一個資深WEB前端工程師,還是成為一個資深WEB架 構(gòu)師,亦或其他,都要具體分析自身的特點和興趣所在。如果是資深的前端工程師,我覺得更重要的是去作新技術(shù)的研究,
互聯(lián)網(wǎng)技術(shù)
發(fā)展速度日新月異,不斷學(xué)習(xí)新技術(shù),否則就被淘汰。此外,我建議在知識的廣度、深度方面最好能挑選一個自己最擅長和最感興趣的一兩個領(lǐng)域深入鉆研,不要挑太多,多而不精。
web前端工程師都有什么樣的職業(yè)規(guī)劃路線
對于一個WEB前端的職業(yè)規(guī)劃,其實是有各種的答案,沒有哪種答案是完全正確的,全憑自己的選擇,只要是自己選定了,堅持去認真走,就好。在這里,
我只是
簡要說一下自己對于這塊兒內(nèi)容的理解。有一個觀點想要分享給大家的是:任何規(guī)劃和目標的實現(xiàn)都依賴于知識的積累,而知識的積累來源于學(xué)習(xí)及學(xué)習(xí)后大量的實
踐。我提供一個實踐途徑,我們可以在工作之余的時間在網(wǎng)上或外包公司那里接一些私單做,因為目標不是賺錢,我們可以用最低的價格來提升自身競爭力,獲得大
量訂單就意味著獲得大量的實踐機會,同時,還有一些收入作為工作成就感之外的安慰獎,還是不錯的。
一、職業(yè)方向定位
首先,只有確定好自己的職業(yè)方向,才能做好職業(yè)規(guī)劃。在我看來,做WEB前端技術(shù)能夠找到的職業(yè)方向有以下幾種:
(1)資深WEB前端工程師
這個方向算是一個WEB前端最基本的選擇了,在國外,很多老外都能夠把自己的專業(yè)做到極致,能一輩子就在一個專業(yè)領(lǐng)域不斷學(xué)習(xí)和積累。主要在于內(nèi)因和外因
兩方面,內(nèi)因是老外通常思想比較簡單直接,容易一直專注于一個領(lǐng)域;外因是國外的環(huán)境很好,能夠良好的支撐這樣的職業(yè)發(fā)展道路。反觀國內(nèi),從內(nèi)因來
講,WEB前端技術(shù)人員還是蠻浮躁的,通常會因為WEB前端知識的更新速度太快而覺得學(xué)習(xí)起來辛苦,最終轉(zhuǎn)向后臺或其他道路。從外因來講,WEB前端人員
沒有獲得公平的待遇,可能從HTML頁面制作就開始并沿襲下來的,從來WEB前端人員都比后端人員低一等,貌似前端就是“淺顯”的代名詞、后端就是“深
奧”的代名詞,這也直接造就了前端人員的收入無法和后端人員媲美,同時直接影響到前端人才市場的活躍程度。另一方面,前端的技術(shù)入門較容易,造成另一個極
端情況:人員泛濫、人才稀缺。我想對所有的WEB前端工程師說:面包總會有的,要耐得住寂寞!我個人比較推薦這個職業(yè)發(fā)展方向,因為,在這個方向下,只要
足夠耐心、厚積薄發(fā),成功的概率是非常高的。同時,這是一條最單純的路,我們更多的是花費精力在技術(shù)的鉆研上,而不是辦公室政治等其它瑣事。
(2)資深WEB架構(gòu)師
說功利點兒,我喜歡這個方向,既兼顧了工作的單純性、又能夠減少實際Coding的工作量能騰出更多時間鉆研技術(shù)。在國內(nèi),WEB前端工程師遇到較多的情
況是總是反復(fù)編寫著同樣的代碼,總是面對著同樣的技術(shù)和產(chǎn)品,容易感覺枯燥。由于我們擁有最為廣泛的WEB相關(guān)知識沉淀,使得我們更加容易成為一名架構(gòu)
師。這個職業(yè)發(fā)展方向不如第一種來得平滑,主要是作為一名架構(gòu)師不得不學(xué)習(xí):后端技術(shù)、DBA、Platform等內(nèi)容,而這種學(xué)習(xí)通常需要實際操刀做項
目,不是自己在家里寫兩個Demo就好的,這就勢必會遭遇一段時間的陣痛期。雖然不是很平滑,但是,對于一個大局觀好、悟性好、知識面廣的前端工程師,我
推薦你們努把力,走一條光榮的架構(gòu)師之路吧。
(3)自己創(chuàng)業(yè)
其實,自己創(chuàng)業(yè)是最好的道路、也是成功率最低的道路,挑戰(zhàn)和機遇并存。這里,作為一個前端技術(shù)人員,需要將自己的視野更多放在行業(yè)的動態(tài)、產(chǎn)業(yè)鏈的動態(tài)、
相關(guān)產(chǎn)品領(lǐng)域的動態(tài),把關(guān)注細節(jié)的優(yōu)勢繼續(xù)保持,同時,增強自己把控一個產(chǎn)品乃至一個公司命運的能力。但是,這條道路和技術(shù)之路稍有分歧,后續(xù)將不再贅
述。
二、職業(yè)發(fā)展目標
我都有一個最終的目標,在這個目標之上,我們需要給自己制定一系列學(xué)習(xí)和成長計劃,制定的方法如下:
第一、梳理知識架構(gòu);
梳理知識架構(gòu)的目的在于,我們要了解清楚,哪些技術(shù)是前置、哪些技術(shù)是后繼,那些技術(shù)是深度、哪些技術(shù)是廣度,按照這兩個維度梳理好知識架構(gòu)之后,我們才能準確地制定清晰的成長目標、高效的成長計劃。
第二、分解目標;
我認為,大抵可分解為三個階段,包括:起步階段、提升階段、成型階段。這三個階段分別對應(yīng)著不同的目標:
起步階段:
1、基本知識的掌握
在我們梳理的知識架構(gòu)中,按照我們分析的兩個維度里最前置的、最淺顯的部分,作為打基礎(chǔ)的階段,必須要在這個過程中更多投入到實踐中去,我們通常做的多了、熟練了,就認為這部分知識和內(nèi)容掌握了。
2、常用工具的掌握
對于常用工具的掌握應(yīng)該掌握一些有大公司或?qū)I(yè)團隊背景的流行工具,這些工具的熟練掌握能夠提升專業(yè)度、職業(yè)度,同時,能提升我們的工作效率。我們只有在 檢驗自己對于知識和技能熟練程度的時候,才會自虐式的用Notepad去編寫頁面、css和腳本等內(nèi)容。
3、溝通技巧的掌握
通常做技術(shù)的人會被定位為“不善溝通”的人,這是為什么呢?究其原因,主要是因為多跟程序和代碼打交道,跟人的溝通較少導(dǎo)致。這種時候我們要特別注意增加
和人溝通的機會,著重提升這塊兒的能力。另一方面,我們通常被稱為“不懂溝通技巧”的人。在國內(nèi),我們的技術(shù)人員通常都是自己制定方案、自己執(zhí)行方案,在
執(zhí)行過程中又缺乏相關(guān)產(chǎn)品、交互設(shè)計等人員的溝通,大多是在自己的思路貫徹下進行開
發(fā),久而久之,我們習(xí)慣于信任自己的觀點、在自己的視角看問題,對于挑戰(zhàn)總是百般地“據(jù)理”力爭。我們需要更多提升的是,如何在對方的視角看問題、如何在
用戶的視角看問題。
4、良好的開發(fā)習(xí)慣
開發(fā)習(xí)慣是養(yǎng)成的,一旦有不好的習(xí)慣,對于將來去修正帶來的將是很大的麻煩,我們在培養(yǎng)良好開發(fā)習(xí)慣一定要從起步時做起,例如:寫代碼之前先分析、先寫文
檔、先寫注釋。定義變量最好能用直接可理解的語義,最好是拼音,別整英文,尤其是生僻單詞,將來自己忘了還要開金山詞霸。文件最好有有意義的文件夾命名來
管理,文件名最好有意義,需要版本號的最好能和項目版本號一同更新……等等。
提升階段:
1、高級技術(shù)的掌握
在提升階段對于知識和技能掌握,我們需要從梳理好的知識架構(gòu)中選擇更深一層次的技術(shù)進行學(xué)習(xí),選擇之前,我們先通過類比或預(yù)估的方法,衡量自身學(xué)習(xí)的難
點,以學(xué)習(xí)難點和自己最不感興趣的部分為主。這樣推薦大家的原因是:這個階段我們興趣正濃,已經(jīng)度過了苦澀的起步階段,到達了興奮的提升階段,我們要用興
趣和興奮去挑戰(zhàn)最困難的部分,在我們信心受挫和興趣濃厚之中找到平衡。同時,輔以其他的深層次知識一起學(xué)習(xí)和研究。
2、產(chǎn)品思想的學(xué)習(xí)
沒有正確的產(chǎn)品思想,很難設(shè)計出良好的程序,無論從界面、交互,還是接口、邏輯,不能夠理解產(chǎn)品、理解用戶需求,我們會給自己造成很大的麻煩,例如:我們
千辛萬苦用最新技術(shù)、最復(fù)雜的實現(xiàn)做出的功能,卻得不到使用者或領(lǐng)導(dǎo)、同事的認可。為了使我們的工作和學(xué)習(xí)更加有效率、避免無用功,我們需要不斷的學(xué)習(xí)產(chǎn)
品的思想,只有理解了產(chǎn)品的思路,我們才知道用我們的技術(shù)去輸出什么。
3、各種框架的學(xué)習(xí)
框架是我們提高工作效率的優(yōu)秀手段,對于框架的學(xué)習(xí)是成長必經(jīng)之路。我們學(xué)習(xí)框架的路線通常應(yīng)該是:使用——》分析——》個性化定制——》模仿編寫自己的
框架。只有大量的使用,才能明白設(shè)計框架者在設(shè)計背后的思路,只有了解到設(shè)計的思路,才能做正確全面的分析,只有正確全面的分析才能支撐我們?nèi)ζ洳眉艋?
擴展,只有經(jīng)過實際分析、修改別人的框架,才有可能寫出優(yōu)秀的、自己的框架。學(xué)習(xí)通常的路線是:學(xué)習(xí)、理解、模仿、創(chuàng)造。
4、富客戶端應(yīng)用的學(xué)習(xí)
隨著帶寬和計算機性能的提升,以及WEB2.0的如火如荼,富客戶端應(yīng)用充斥著互聯(lián)網(wǎng),如果你不懂得富客戶端應(yīng)用,你就不能稱之為一個合格的前端技術(shù)人 員??梢园凑眨篎lash動畫——》Flash編程——》
Flex——》——》Air——》Silverlight動畫——》Silverlight編程
的步驟學(xué)習(xí),先學(xué)Flash后學(xué)Siverlight的原因,一來Silverlight還不太成熟,二來,實際Silverlight借鑒了很多
Flash的思想,最好在學(xué)習(xí)的時候不要本末倒置。
5、各種網(wǎng)絡(luò)協(xié)議的學(xué)習(xí)
WEB前端技術(shù)就是云上的技術(shù),云的協(xié)議有N種,我們應(yīng)該著重學(xué)習(xí):TCP/IP,UDP,HTTP,POP3,SMTP這幾種協(xié)議,在開發(fā)WEB前端應(yīng)
用過程中,這些協(xié)議是我們的技術(shù)的載體,有時候決定了我們的應(yīng)用是否能實現(xiàn)、有時候決定了我們的應(yīng)用是否高性能,同時,這些協(xié)議還是我們和后端技術(shù)交互的
重要手段,這些協(xié)議就像是密碼字典,幫助我們把后端傳輸過來的密文解釋成我們前端技術(shù)能夠理解的明文。
6、程序設(shè)計
這個階段我們需要學(xué)習(xí)OO、UML、設(shè)計模式、設(shè)計方法……,我們要讓技術(shù)開發(fā)工作變成有目的性、有計劃性,并且,這些目的和計劃必須有理論的支持,這
樣,我們設(shè)計出來的程序才能夠更優(yōu)秀、我們的開發(fā)才更有效率,這樣,我們的技術(shù)才能有所提升。為什么要學(xué)習(xí)程序設(shè)計呢?主要是,就算我們不用Flash的
ActionScript編寫程序的前端邏輯,我們至少要把我們自己的Javascript函數(shù)、包的定義規(guī)劃起來,避免將來自己或他人維護代碼的時候出
現(xiàn)問題。程序設(shè)計能力,在技術(shù)人員仍然被看作是程序員的這個年代,是灰常、灰常重要滴。
成型階段:
到了這個階段,我也沒什么好說的了,如果能達到這個階段,就證明后續(xù)的成長之路是異彩紛呈的,是成為一個資深WEB前端工程師,還是成為一個資深WEB架
構(gòu)師,亦或其他,都要具體分析自身的特點和興趣所在。如果是資深的前端工程師,我覺得更重要的是去作新技術(shù)的研究,互聯(lián)網(wǎng)技術(shù)發(fā)展速度日新月異,不斷學(xué)習(xí)
新技術(shù),否則就被淘汰。此外,我建議在知識的廣度、深度方面最好能挑選一個自己最擅長和最感興趣的一兩個領(lǐng)域深入鉆研,不要挑太多,多而不精。
經(jīng)驗可以積累,但夢想永遠不能磨滅
前端工程師在工作上都有哪些規(guī)劃
前端工程師往往屬于產(chǎn)品研發(fā)團隊,但卻很容易被邊緣化——后端工程師覺得自己才是主力,沒有后端工程師產(chǎn)品就不存在了,但沒有前端工程師產(chǎn)品還能有,只是界面非常糟糕而已。這時候前端工程師就開始感覺自己像是個外包似的,只是來幫別人完成一些任務(wù)而已,對產(chǎn)品沒有歸宿感。這時候成為一個更好的外包嗎?要做關(guān)鍵任務(wù)我覺得,要別人重視你的工作,不僅僅是你做得好就行了,還要求你的工作對別人來說足夠重要。這跟產(chǎn)品定位有關(guān)——例如說對搜索引擎來說,前端對產(chǎn)品的影響不會非常大,用戶只要能搜索到自己想要的結(jié)果就行了。搜索引擎最復(fù)雜的交互可能就是搜索框的自動完成了,但有自動完成和無自動完成的區(qū)別到底有多大呢?跟準確率和召回率相比,有沒有自動完成實在沒有多重要。況且,自動完成的結(jié)果本身也依賴于準確率和召回率,所以后端工程師比前端工程師重要得多。因此,前端工程師在選擇工作時首先要選擇前端足夠重要的工作。重要用什么來衡量?務(wù)實的話,是錢;務(wù)虛的話,是產(chǎn)品。如果一個功能只能在前端實現(xiàn),并且這個實現(xiàn)能夠提高多少的轉(zhuǎn)化率,使得多少原本不產(chǎn)生利潤的點擊產(chǎn)生利潤,那么前端對這個產(chǎn)品來說一定十分重要。可惜往往跟錢相關(guān)的事情不由前端工程師來研究和決定,所以這部分工作還是安心交給產(chǎn)品設(shè)計師來做吧,讓他們來決定怎么樣的產(chǎn)品能賺錢,然后由你來完成這個產(chǎn)品的實現(xiàn),這時候你的目標就是把產(chǎn)品做好。回到剛才的問題,有些產(chǎn)品更依賴于后端,例如搜索引擎,當(dāng)然也有些產(chǎn)品更依賴于前端。什么樣的產(chǎn)品更依賴于前端?就是后端難以建立起技術(shù)壁壘的產(chǎn)品。這類產(chǎn)品要抄襲一個功能差不多的并不難,因此只有細節(jié)做得最好的能夠獲得足夠多的用戶。這類產(chǎn)品在iOSAppStore上很常見——有很多app擁有相似的功能,而其中只有一個交互設(shè)計得最好的能夠獲得絕大多數(shù)的用戶。盡管app不存在HTML+CSS+JS這個前端,不過道理是一樣的。當(dāng)年Tweetie能夠取代老牌的Twitterrific成為主流Twitter客戶端,靠的就是交互上的創(chuàng)新,外加不差的性能和穩(wěn)定性。如果交互對于一個webapp來說十分重要,這個webapp自然也就需要十分優(yōu)秀的前端工程師??偨Y(jié)一下,由于前端工程師的價值在于實現(xiàn)復(fù)雜的前端細節(jié),因此如果可以選擇的話盡量選擇一個細節(jié)決定成敗的產(chǎn)品。如果產(chǎn)品的成敗已經(jīng)由后端工程師決定了,例如某某數(shù)據(jù)規(guī)模要么能做要么不能做,那么這個產(chǎn)品就沒你什么事了。要懂核心業(yè)務(wù)每一個公司,每一個項目,都有它的官方語言。不是指普通話,也不是指C++,我指的是大家圍繞什么問題來項目,什么問題的討論能讓大家為之興奮。舉個例子來說,百度的官方語言就是搜索,跟搜索沒有關(guān)系的產(chǎn)品也會使用「準確率」、「召回率」這樣的術(shù)語用來做比喻。前端工程師有多少知道什么是「準確率」、「召回率」的?估計不多,因為前端根本沒有這樣的概念。這時候前端工程師要跟后端工程師溝通也就不容易了。久而久之,你對人家很興奮在討論的什么O(1)還是O(n)不感興趣,人家也不理解你的{}!={}是什么意思,你就被邊緣化了。如果不想被邊緣化,就算前端不是公司的核心業(yè)務(wù),你也必須懂公司的核心業(yè)務(wù),然后說著官方語言,而不是前端的方言。這就意味著,如果你在一家后端技術(shù)很強大的公司,你最好也懂后端技術(shù)。我知道國內(nèi)有很多前端工程師并不是計算機系畢業(yè)的,就算是國內(nèi)的教育也不怎么樣,這時候你只能惡補相關(guān)的基礎(chǔ)知識了。如果你不懂這些,就算你能把整本《JavaScript權(quán)威指南》背下來,你說的還是方言,說官話的人還是會鄙視你。如果公司主要服務(wù)于某個垂直領(lǐng)域的話,你必須對這個垂直領(lǐng)域十分了解,隨時能用這個領(lǐng)域的行話來溝通。總結(jié)一下,由于每個人已經(jīng)熟悉的領(lǐng)域都不一樣,所以沒法說哪個領(lǐng)域更適合前端工程師。如果你原本已經(jīng)有某個領(lǐng)域的從業(yè)經(jīng)驗,進入服務(wù)于該領(lǐng)域的技術(shù)公司總是有顯著優(yōu)勢的。如果你進入了一個自己不熟悉的領(lǐng)域,那就一定要補充相關(guān)基礎(chǔ)知識,否則你對這個領(lǐng)域不感興趣,這個領(lǐng)域也不會對你的前端工作感興趣。實際例子為什么我選擇加入豌豆莢?主要考慮的還是上面兩點。我在百度的時候一直就在想,既然前端對搜索引擎來說不重要,那對什么類型的應(yīng)用來說比較重要呢?當(dāng)時看到Facebook做得不錯,所以覺得社區(qū)會需要復(fù)雜的交互,而如果復(fù)雜交互做不好則會影響用戶使用,因此前端對社區(qū)來說應(yīng)該十分重要?,F(xiàn)在看來,也不完全是這樣子。前端對社區(qū)來說確實重要,但Facebook并不是一個典型的例子,它是一個前端做得尤其優(yōu)秀的例子。在我了解到豌豆莢Windows客戶端的實現(xiàn)方式時,我立即意識到它可以通過我的第一個判別標準——前端對它來說是關(guān)鍵任務(wù)。它使用Webkit做了一個容器,然后把所有的交互都通過webapp的形式做在里面,然后通過一組接口跟native進行交互。如果一個應(yīng)用決定要這樣做了,那么前端就能影響到它的成敗,因為這時候前端后端的分隔線已經(jīng)很明確了。如果一項功能應(yīng)該由前端來做那就必須由前端來做,后端基本不可能成為實現(xiàn)此項功能的備選方案,這時候前端就具備了無可替代的位置。至于第二個判別標準——豌豆莢的核心業(yè)務(wù)是什么?我覺得豌豆莢做的很多事情都是以產(chǎn)品設(shè)計為起點的,而這至少是我感興趣并且也有點感覺的東西。從細節(jié)上來說,就是大家喜歡談?wù)摰氖虑槭且恢碌?,例如產(chǎn)品如何做一些很智能的設(shè)計,最新的技術(shù)方案如何能夠巧妙地幫助這些設(shè)計得以實現(xiàn)。Junyu說「設(shè)計就是創(chuàng)造性地解決問題」,這是我喜歡的解決問題方式。這個世界上能夠把邏輯轉(zhuǎn)化為代碼的人非常多,同時有一定數(shù)學(xué)和計算機專業(yè)基礎(chǔ)的人也不少,因此要拼誰的解決方案更好的話那還要加上創(chuàng)造力。我知道國內(nèi)有很多產(chǎn)品設(shè)計師,在考慮產(chǎn)品時首先想到的是百萬千萬級用戶量,這樣無論從單個用戶身上賺到的錢多么的少,最終產(chǎn)品還是能賺大錢。百度曾經(jīng)就屬于這種思維方式,但這不是我喜歡的風(fēng)格,因為沒有明確的目標用戶定位。我知道國內(nèi)由很多工程師,在編寫代碼時用盡各種技巧以展示自己過人的才智,但是這樣的代碼還有可復(fù)用性嗎?除了作者本人沒有人能夠維護啊。不同的人有不同的品味,能夠跟品味一致的人一起工作是一件幸福的事情。