高數, 基本的機率統計 - 基本數據結構 能用JS寫出linked list, stack, queue, (binary)tree, graph, hashtable麼? - 基本算法 能用JS實現各類search(linear, binary..), 各類sort(bubble, insertion, merge, quick, selection), 以及樹的搜索(Breadth First/Depth First)和遍歷(3種順序)麼? - 設計模式 知道什麼是singleton, factory, strategy, decrator麼? - Git 不要只是停留在把Github當作一個網絡儲存器的層面上, 知道branch, diff, merge麼? - 基本的英語能力(不要求據說, 只用來讀/寫文檔資料) - 基本的計算機知識 知道位運算, 溢出, thread, lock, concurrency, parallelism麼? - 熟悉unix的基本命令麼? 知道ssh public/private key都是幹嗎的麼? - 知道正則麼? 可以熟練的使用麼? - 能寫出詳細的註釋/文檔, 讓閱讀你代碼的人知道你要幹嗎麼? 能短期內快速地讀懂來自你同事或者其餘地方(github, blog)的代碼, 知道什麼東西應該寫在什麼地方, 以便迅速地參與其中麼? - 給你一個你歷來沒有接觸過的庫/語言, 能可以在較短的時間內在你的代碼里正確使用麼? - 有一個駕輕就熟用的熟練地編輯器/IDE麼? 不要求你們都是vim/emacs大神, 但也不要作什麼都是用鼠標來點. - 基本的檢索查詢能力(google, stackoverflow, MDN) - 單獨思考解決問題的能力, 團隊合做, 與人相處 若是以上的內容都有所瞭解(這裏不會強調精通), 恭喜你, 你擁有了成爲前端工程師的基礎知識. 繼續. ### 前端專業知識 - 知道什麼是AMD, COMMONJS麼? 知道call, apply, bind麼? 知道JS中foreach, filter, some, every麼? 知道怎麼實現functional JS(curry等)麼? - 知道各類所謂的高級HTML的API(File, Web Audio, WebSocket)麼? - 知道各類CSS Preprocessors麼? 能講出他們各自的優勢和缺點麼? 熟悉而且會用其中的一種麼? - 知道各類CSS框架麼? 能講出他們各自的優勢和缺點麼? 熟悉而且會用其中的一種麼? - 知道canvas, SVG麼? - 知道怎麼把你的東西作成responsive, cross-browser support麼? - 知道什麼是SEO而且怎麼優化麼? 知道各類meta data的含義麼? - 知道什麼是Ajax, restful, get, post麼? 知道怎麼和後臺交互麼? - 知道各類JS框架(Angular, Backbone, Ember, React, Meteor, Knockout...)麼? 能講出他們各自的優勢和缺點麼? 熟悉而且會用其中的一種或多種麼? - 知道什麼是webkit麼? 知道怎麼用瀏覽器的各類工具來調試和debug代碼麼? - 知道如今前端通常的工做流程(gulp, grunt, git, svn, npm)麼? - 知道怎麼測試代碼麼? 知道BDD, TDD, Unit Test麼? 知道怎麼測試你的前端工程麼(mocha, sinon, jasmin, qUnit..)? - 知道前端templating(Mustache, underscore, handlebars)是幹嗎的, 怎麼用麼? - 知道npm, V8, node, express, socket麼? (這裏補充一點, 如今愈來愈多的公司都採用: '前端網頁 -> 前端後臺 -> 後臺'這種構架來搭建東西, 也就是說, 前端工程師不只要作傳統前端的網頁, 還要寫本身的後臺, 來跟真正的後臺進行交互, 至於前端的後臺用什麼語言來寫, 通常是node/python/ruby, 不太會用到龐大的java, 因此這裏我把node列爲前端工程師必需要掌握的技能之一) 知道cache, authentication麼? - (若是要用node)知道route, middleware, cluster, nodemon, pm2, server-side rendering麼? - 另外, 前端這個行業跟傳統的c/c++/java程序員仍是有必定的差異的. 因爲是新興產業, 因此各類行業標準, 框架, 庫會隨時隨地的產生和更新 (做爲一個c程序員, 十年前怎麼寫東西如今仍是怎麼寫東西). 今天出了node和react, 明天又出了io和mean. 因此, 積極關注各類前端產品, 跟上變化的節奏, 也是身爲一個前端程序員必備的技能之一. 知道ECMAScript 6裏怎麼寫class麼? 知道react, flux, reflux麼? 知道polymer, dart麼? 知道meteor麼?