一、前端四部分
跳槽是每個人都會經歷的一件事,而進新公司的途徑也是多樣的。有的人依靠朋友推薦,直接加入,但更多的人是通過層層面試,最后符合該公司要求后才加入的。而面試的時候就會被提問,問到的問題可以說五花八門,令人不知所措,常說機會留給有准備的人,因此,不管怎樣,都得在面試前好好准備准備。但前端這個工種和后端有很大的不同,它的技術棧非常廣,知識的更新迭代絡繹不絕,每年都會涌現出新的概念、思想或框架,最后給人的感覺就是要准備的知識量非常巨大,無從下手。無論是新接觸前端的年輕工程師,還是工作多年的老鳥,有時候都會有這樣的迷茫,為了能夠成功拿到offer,面試之前該如何系統的學習前端知識,該完善自己的哪些不足。我個人覺得要拿下offer,首先要有扎實的前端基礎,而這絕對不是一朝一夕就能實現的,需要經歷一個艱難的過程才行。
前端離不開三部分:HTML、CSS和JavaScript。HTML是一種用於創建網頁的標記語言,最新版本是HTML5,HTML5不僅僅是HTML的最新版本,它還是一系列Web技術的集合,包括CSS3、JavaScript、多媒體、緩存和無障礙訪問等,關於HTML有一本經典的書籍《HTML5權威指南》。CSS即層疊樣式表,是一種樣式語言,用於控制頁面的表現(外觀和內容排版),是HTML的補充,最新版本是CSS3,關於CSS也有一本經典的書籍《CSS權威指南》,不過目前第三版只講到了CSS2.1,如果要查閱CSS3相關的內容,可以參考大漠老師編撰的《圖解CSS3》。JavaScript是一種通過解釋執行的高級編程語言,目前主流的版本是ES6,但很多瀏覽器還不能完美支持該版本的特性,因此ES5使用的也比較多,JavaScript可參考的數據比較多,例如《JavaScript權威指南》、《JavaScript高級程序設計》、《你不知道的JavaScript系列》、《深入理解ES6》等,都非常經典。可先閱讀《JavaScript高級程序設計》,然后有疑惑的地方可以結合《JavaScript權威指南》來對比。並且可把《JavaScript權威指南》當成字典使用,因為直接讀的話,可能索然無味,但當細細品味的時候,里面會有很多驚喜。前面兩本中ES6的內容比較少,《你不知道的JavaScript系列》有專門講解ES6的,並且該系列表述言簡意賅,還提到了許多平時沒有意識到的JavaScript中的盲點。《深入理解ES6》是專門講解ES6的,內容非常豐富,結合許多實例,深度剖析了內在原理,而不僅僅流於表面,當然,還有阮一峰老師的開源書籍《ES6標准入門》也是值得推薦的。除了這三部分之外,前端還需要修煉網絡通信原理,這是與每個前端都息息相關的,理解其中的門道,非常有助於日常的項目開發,推薦閱讀通俗易懂的《圖解HTTP》和《圖解TCP/IP》,然后在此基礎上可以去閱讀《HTTP權威指南》,這本比較拗口,也可當作字典使用。
二、穩扎穩打
前面所列的四部分僅僅是些前端基礎,但內容已經非常多了,如果自己的時間有限,並且想在用短期內有所成效的話,推薦閱讀《前端程序員面試筆試寶典》。這部書濃縮了剛剛提到的四部分,可以將其作為前面部分的補充,書中列舉了平時用的比較頻繁的知識點,包括HTML5和CSS3等最新的知識點,並且在每一節中都配置了幾道例題,讓人加深印象,還介紹了一些面試技巧,最大程度的幫助讀者能拿到自己滿意的offer。
講了這么多,其實上面也僅僅是第一步,要想完全駕馭前端,還需要掌握其它各項軟硬技能。這其中包括數據結構、算法、數學、計算機組成原理、設計模式、前端框架(React、VUE等)、前端工程化(Gulp、Webpack等)、性能優化、正則和安全等硬技能。這里順便說一下,個人覺得前端有必要掌握一門服務器語言,PHP、Java、Node.js等都可以,這樣在與服務器溝通的時候能減少障礙,合作更加愉快,畢竟與服務器要經常打交道,把關系弄僵不利於開展工作。前端從業人員最好還要具備一些溝通、用戶體驗、產品知識等軟技能,因為前端起到一個承上啟下的作用,解決了下層的服務器的問題,還要解決上層的產品和UI的問題,有了這些軟件技能后,就能避免不必要的麻煩出現,有時候讓產品和UI接受自己的建議,能夠很大程度上減少許多工作量,更快速的完成目標。最后,說一個外行對我們程序員的誤解,他們總是覺得程序員的英語都很棒,但其實不然,很多人的英語都很菜,只不過代碼用英文字符比較多,讓人產生了誤解。不過,如果你的英語很溜,那么你不但能獲得更多的機會,而且能比別人學到更多的知識,畢竟很多軟件技術都來源於國外,會英語的話就能在第一時間嘗鮮,並且遇到問題,用英語搜索能得到許多不錯的答案,國內很多都是重復的。
本文並沒有列舉面試的技巧,只是簡單介紹了如何有系統性的學習前端基礎,古人雲:“千里之行,始於足下”,只要勇敢的邁出第一步,堅持穩扎穩打,相信很快就會有收貨。