我從最開始啃完犀牛書,然后接著去看了其他一些和前端干系不大的經(jīng)典技術(shù)書,再后來通過實驗室的項目和自己弄的一些小項目逐漸對前端領(lǐng)域比較上路以后,又看了《Javascript模式》、《Javascript設(shè)計模式》、《編寫可維護的Javascript》,后來了解到node并開始用node搞點小玩意兒,又看了本《NodeJS up and run》和《Mongodb權(quán)威指南》,不過感覺前者略坑。那會兒樸靈那本深入淺出(曬書么么噠)還沒出,后來出了就去圖書館借來看完,這么看下來感覺還不錯,不過感覺看的還是偏少了,還需要繼續(xù)刷(參照上面的書列)。
前端的定位
前端的定位關(guān)乎到你需要吸收什么樣的知識和技能,決定在技術(shù)世界里你對什么需要格外敏感。如果你認為前端僅僅停留在切頁面,實現(xiàn)交互和視覺的要求,那你對前端的認識還停留在初級階段。阿里終面的時候我問了考官這么個問題:前端技術(shù)日新月異,范圍越擴越寬,標準越來越豐富,似乎任何一個觸角都能伸出很遠。怎么給前端一個合適的定位?考官給我分析了半天,然后總結(jié)成一句話,就是用戶和網(wǎng)站的聯(lián)結(jié)者,用戶體驗的創(chuàng)造者(原話不是這樣,但大體是這個意思)。也就是說前端的終極目標其實就是創(chuàng)造用戶體驗,提升用戶體驗,以用戶體驗為中心。不管你是從交互設(shè)計上下手,還是從性能優(yōu)化出發(fā),或者改進工作流提升工作流效率,最終都是為了創(chuàng)造和提升用戶體驗,最終都要體現(xiàn)到用戶體驗這一點上來。我認為這個總結(jié)非常有道理(當然“用戶體驗”這個詞太寬泛了,并且不僅僅是前端工程師的范疇,比如開發(fā)后臺的時候?qū)σ粋€數(shù)據(jù)處理過程進行優(yōu)化,提升了整體性能,這也是對用戶體驗的一個提升)。
現(xiàn)在的前端工程師做到一定階段不可避免會接觸到很多比切頁面、實現(xiàn)視覺要求、實現(xiàn)交互等更深入的問題,比如前端自動化、圖像編程、性能優(yōu)化等等,再往后推一點就是PHP/JSP/ASP/nodeJs,過去后端模板一般屬于后端的范疇,現(xiàn)在隨著前端架構(gòu)的演進,可能會讓你去寫后端模板的代碼,需要用到后端語言(PHP/Java/C#等),這就是所謂大前端(然而這與前端的定位并不是相背離的,大前端處理的依然是與用戶接觸的部分,仍然是對用戶體驗的優(yōu)化)。可能最常見或者被談?wù)撟疃嗟木褪莕ode,其實這幾種技術(shù)選型都可以,bat三家據(jù)說百度用PHP比較多,阿里用node比較多。
玉伯在他的博客里提過所謂全端是橫向的,全棧是縱向的。全端即所有的終端說白了都是前端,因為都關(guān)乎到用戶體驗,直接和用戶接觸。適應(yīng)多終端的開發(fā),要求你在web前端的基礎(chǔ)上,可能還要去擴展android開發(fā)和ios開發(fā)的知識,好在由于hybrid開發(fā)方式的流行,對使用native語言開發(fā)的技能會要求的不那么深入。
全??梢哉f是最適合初創(chuàng)公司的一種發(fā)展類型,廣義上認為是從前端干到后端,從開發(fā)干到運維,這種就不說了,一般人應(yīng)該不會想要去往這個方向發(fā)展,想要成為這種意義上的full-stack dev的,可能用不著來看我這篇文章了;而狹義上的全棧特指使用js語言從前端寫到架設(shè)在nodeJs上的后端,前后端統(tǒng)一語言,統(tǒng)一編程模型,甚至公用同一套代碼。更多了解全棧開發(fā)可以看看玉伯這篇說說全棧工程師。
以上是我對前端以及衍生出來的技術(shù)路線的一些淺薄理解,學習一個領(lǐng)域掌握它的整體上的走向和趨勢還是挺重要的。另外如果想要對前端學習方向、職業(yè)成長路徑有一個整體的認識,推薦看看拔赤總結(jié)的這篇前端開發(fā)十日談。
最后
貢獻幾個對前端學習、面試有幫助的鏈接:
前端面試問題合集(Front-end-Developer-Interview-Questions)(https://github.com/darcyclarke/Front-end-Developer-Interview-Questions)
前端技能匯總(JacksonTian)(https://github.com/JacksonTian/fks)
另一張前端技能匯總圖(http://www.f2er.info/)
前端那點事兒(書列)(http://book.douban.com/doulist/13701898/)
byr論壇yiyizym的建議
與grunt相比,學習gulp會比較簡單
做SPA的話,推薦backbone.js和 backbone.marionette.js
翻墻不用折騰,花十塊錢買一個月的紅杏。
把基礎(chǔ)打扎實了再學這些都沒問題。
html 沒什么好說的,有空學學html5。
css 盡量看文檔 ,因為很多中文資料都各執(zhí)一辭,看多了反而會糊涂。
有個網(wǎng)站可以查找html/css標簽、屬性在各個瀏覽器中的支持情況,挺好用的。