在2018年9月,經過三個多月的出版社三審三校,撰寫的書籍終于正式出版,登錄到了各大在線電商網站以及線下書店,除了出版社會做推廣之外,自己也會想辦法做點推廣。例如:
1. 編寫軟文、海報和迷你書,將迷你書上傳到一些平臺中。
2. 在百度百科和豆瓣讀書建立詞條。
3. 在V站和博客中組織評論贈書活動。
4. 在知乎的相關問答中植入書籍名稱。
5. 百度搜索關鍵詞優化,收效甚微。
  下面是當時寫的軟文,標題是“面試的自信來源于扎實的基礎”。
## 一、前端四部分
  跳槽是每個人都會經歷的一件事,而進新公司的途徑也是多樣的。有的人依靠朋友推薦,直接加入,但更多的人是通過層層面試,最后符合該公司要求后才加入的。而面試的時候就會被提問,問到的問題可以說五花八門,令人不知所措,常說機會留給有準備的人,因此,不管怎樣,都得在面試前好好準備準備。但前端這個工種和后端有很大的不同,它的技術棧非常廣,知識的更新迭代絡繹不絕,每年都會涌現出新的概念、思想或框架,最后給人的感覺就是要準備的知識量非常巨大,無從下手。無論是新接觸前端的年輕工程師,還是工作多年的老鳥,有時候都會有這樣的迷茫,為了能夠成功拿到offer,面試之前該如何系統的學習前端知識,該完善自己的哪些不足。我個人覺得要拿下offer,首先要有扎實的前端基礎,而這絕對不是一朝一夕就能實現的,需要經歷一個艱難的過程才行。
  前端離不開三部分:HTML、CSS和JavaScript。HTML是一種用于創建網頁的標記語言,最新版本是HTML5,HTML5不僅僅是HTML的最新版本,它還是一系列Web技術的集合,包括CSS3、JavaScript、多媒體、緩存和無障礙訪問等,關于HTML有一本經典的書籍《[HTML5權威指南](https://book.douban.com/subject/25786074/)》。CSS即層疊樣式表,是一種樣式語言,用于控制頁面的表現(外觀和內容排版),是HTML的補充,最新版本是CSS3,關于CSS也有一本經典的書籍《[CSS權威指南](https://book.douban.com/subject/2308234/)》,不過目前第三版只講到了CSS2.1,如果要查閱CSS3相關的內容,可以參考大漠老師編撰的《[圖解CSS3](https://book.douban.com/subject/25920727/)》。JavaScript是一種通過解釋執行的高級編程語言,目前主流的版本是ES6,但很多瀏覽器還不能完美支持該版本的特性,因此ES5使用的也比較多,JavaScript可參考的數據比較多,例如《[JavaScript權威指南](https://book.douban.com/subject/10549733/)》、《[JavaScript高級程序設計](https://book.douban.com/subject/10546125/)》、《[你不知道的JavaScript系列](https://book.douban.com/subject/26351021/)》、《[深入理解ES6](https://book.douban.com/subject/27072230/)》等,都非常經典。可先閱讀《JavaScript高級程序設計》,然后有疑惑的地方可以結合《JavaScript權威指南》來對比。并且可把《JavaScript權威指南》當成字典使用,因為直接讀的話,可能索然無味,但當細細品味的時候,里面會有很多驚喜。前面兩本中ES6的內容比較少,《你不知道的JavaScript系列》有專門講解ES6的,并且該系列表述言簡意賅,還提到了許多平時沒有意識到的JavaScript中的盲點。《深入理解ES6》是專門講解ES6的,內容非常豐富,結合許多實例,深度剖析了內在原理,而不僅僅流于表面,當然,還有阮一峰老師的開源書籍《[ES6標準入門](https://book.douban.com/subject/27127030/)》也是值得推薦的。除了這三部分之外,前端還需要修煉網絡通信原理,這是與每個前端都息息相關的,理解其中的門道,非常有助于日常的項目開發,推薦閱讀通俗易懂的《[圖解HTTP](https://book.douban.com/subject/25863515/)》和《[圖解TCP/IP](https://book.douban.com/subject/24737674/)》,然后在此基礎上可以去閱讀《[HTTP權威指南](https://book.douban.com/subject/10746113/)》,這本比較拗口,也可當作字典使用。

## ?二、穩扎穩打
  前面所列的四部分僅僅是些前端基礎,但內容已經非常多了,如果自己的時間有限,并且想在用短期內有所成效的話,推薦閱讀《[前端程序員面試筆試寶典](http://product.dangdang.com/25342065.html)》。這部書濃縮了剛剛提到的四部分,可以將其作為前面部分的補充,書中列舉了平時用的比較頻繁的知識點,包括HTML5和CSS3等最新的知識點,并且在每一節中都配置了幾道例題,讓人加深印象,還介紹了一些面試技巧,最大程度的幫助讀者能拿到自己滿意的offer。
:-: 
  講了這么多,其實上面也僅僅是第一步,要想完全駕馭前端,還需要掌握其它各項軟硬技能。這其中包括數據結構、算法、數學、計算機組成原理、設計模式、前端框架(React、VUE等)、前端工程化(Gulp、Webpack等)、性能優化、正則和安全等硬技能。這里順便說一下,個人覺得前端有必要掌握一門服務器語言,PHP、Java、Node.js等都可以,這樣在與服務器溝通的時候能減少障礙,合作更加愉快,畢竟與服務器要經常打交道,把關系弄僵不利于開展工作。前端從業人員最好還要具備一些溝通、用戶體驗、產品知識等軟技能,因為前端起到一個承上啟下的作用,解決了下層的服務器的問題,還要解決上層的產品和UI的問題,有了這些軟件技能后,就能避免不必要的麻煩出現,有時候讓產品和UI接受自己的建議,能夠很大程度上減少許多工作量,更快速的完成目標。最后,說一個外行對我們程序員的誤解,他們總是覺得程序員的英語都很棒,但其實不然,很多人的英語都很菜,只不過代碼用英文字符比較多,讓人產生了誤解。不過,如果你的英語很溜,那么你不但能獲得更多的機會,而且能比別人學到更多的知識,畢竟很多軟件技術都來源于國外,會英語的話就能在第一時間嘗鮮,并且遇到問題,用英語搜索能得到許多不錯的答案,國內很多都是重復的。
  本文并沒有列舉面試的技巧,只是簡單介紹了如何有系統性的學習前端基礎,古人云:“千里之行,始于足下”,只要勇敢的邁出第一步,堅持穩扎穩打,相信很快就會有收貨。
*****
> 已建立一個微信前端交流群,如要進群,請先加微信號freedom20180706或掃描下面的二維碼,請求中需注明“看云加群”,在通過請求后就會把你拉進來。還搜集整理了一套[面試資料](https://github.com/pwstrick/daily),歡迎閱讀。

- ES6
- 1、let和const
- 2、擴展運算符和剩余參數
- 3、解構
- 4、模板字面量
- 5、對象字面量的擴展
- 6、Symbol
- 7、代碼模塊化
- 8、數字
- 9、字符串
- 10、正則表達式
- 11、對象
- 12、數組
- 13、類型化數組
- 14、函數
- 15、箭頭函數和尾調用優化
- 16、Set
- 17、Map
- 18、迭代器
- 19、生成器
- 20、類
- 21、類的繼承
- 22、Promise
- 23、Promise的靜態方法和應用
- 24、代理和反射
- HTML
- 1、SVG
- 2、WebRTC基礎實踐
- 3、WebRTC視頻通話
- 4、Web音視頻基礎
- CSS進階
- 1、CSS基礎拾遺
- 2、偽類和偽元素
- 3、CSS屬性拾遺
- 4、浮動形狀
- 5、漸變
- 6、濾鏡
- 7、合成
- 8、裁剪和遮罩
- 9、網格布局
- 10、CSS方法論
- 11、管理后臺響應式改造
- React
- 1、函數式編程
- 2、JSX
- 3、組件
- 4、生命周期
- 5、React和DOM
- 6、事件
- 7、表單
- 8、樣式
- 9、組件通信
- 10、高階組件
- 11、Redux基礎
- 12、Redux中間件
- 13、React Router
- 14、測試框架
- 15、React Hooks
- 16、React源碼分析
- 利器
- 1、npm
- 2、Babel
- 3、webpack基礎
- 4、webpack進階
- 5、Git
- 6、Fiddler
- 7、自制腳手架
- 8、VSCode插件研發
- 9、WebView中的頁面調試方法
- Vue.js
- 1、數據綁定
- 2、指令
- 3、樣式和表單
- 4、組件
- 5、組件通信
- 6、內容分發
- 7、渲染函數和JSX
- 8、Vue Router
- 9、Vuex
- TypeScript
- 1、數據類型
- 2、接口
- 3、類
- 4、泛型
- 5、類型兼容性
- 6、高級類型
- 7、命名空間
- 8、裝飾器
- Node.js
- 1、Buffer、流和EventEmitter
- 2、文件系統和網絡
- 3、命令行工具
- 4、自建前端監控系統
- 5、定時任務的調試
- 6、自制短鏈系統
- 7、定時任務的進化史
- 8、通用接口
- 9、微前端實踐
- 10、接口日志查詢
- 11、E2E測試
- 12、BFF
- 13、MySQL歸檔
- 14、壓力測試
- 15、活動規則引擎
- 16、活動配置化
- 17、UmiJS版本升級
- 18、半吊子的可視化搭建系統
- 19、KOA源碼分析(上)
- 20、KOA源碼分析(下)
- 21、花10分鐘入門Node.js
- 22、Node環境升級日志
- 23、Worker threads
- 24、低代碼
- 25、Web自動化測試
- 26、接口攔截和頁面回放實驗
- 27、接口管理
- 28、Cypress自動化測試實踐
- 29、基于Electron的開播助手
- Node.js精進
- 1、模塊化
- 2、異步編程
- 3、流
- 4、事件觸發器
- 5、HTTP
- 6、文件
- 7、日志
- 8、錯誤處理
- 9、性能監控(上)
- 10、性能監控(下)
- 11、Socket.IO
- 12、ElasticSearch
- 監控系統
- 1、SDK
- 2、存儲和分析
- 3、性能監控
- 4、內存泄漏
- 5、小程序
- 6、較長的白屏時間
- 7、頁面奔潰
- 8、shin-monitor源碼分析
- 前端性能精進
- 1、優化方法論之測量
- 2、優化方法論之分析
- 3、瀏覽器之圖像
- 4、瀏覽器之呈現
- 5、瀏覽器之JavaScript
- 6、網絡
- 7、構建
- 前端體驗優化
- 1、概述
- 2、基建
- 3、后端
- 4、數據
- 5、后臺
- Web優化
- 1、CSS優化
- 2、JavaScript優化
- 3、圖像和網絡
- 4、用戶體驗和工具
- 5、網站優化
- 6、優化閉環實踐
- 數據結構與算法
- 1、鏈表
- 2、棧、隊列、散列表和位運算
- 3、二叉樹
- 4、二分查找
- 5、回溯算法
- 6、貪心算法
- 7、分治算法
- 8、動態規劃
- 程序員之路
- 大學
- 2011年
- 2012年
- 2013年
- 2014年
- 項目反思
- 前端基礎學習分享
- 2015年
- 再一次項目反思
- 然并卵
- PC網站CSS分享
- 2016年
- 制造自己的榫卯
- PrimusUI
- 2017年
- 工匠精神
- 2018年
- 2019年
- 前端學習之路分享
- 2020年
- 2021年
- 2022年
- 2023年
- 2024年
- 日志
- 2020