# 原則與技巧
### 面試方式
一般程序員的面試分為:代碼筆試+問答面試。
代碼筆試主要就是考察能力,問答主要是對項目以及個人的情況了解。
### STAR面試法
這里提到了一種面試原則,叫做STAR面試法.STAR”是SITUATION(背景)、TASK(任務)、ACTION(行動)和RESULT(結果)四個英文單詞的首字母組合。
在招聘面試中,僅僅通過應聘者的簡歷無法全面了解應聘者的知識、經驗、技能的掌握程度及其工作風格、性格特點等方面的情況。而使用STAR技巧則可以對應聘者做出全面而客觀的評價。
- 背景(SITUATION): 通過不斷提問與工作業績有關的背景問題,可以全面了解該應聘者取得優秀業績的前提,從而獲知所取得的業績有多少是與應聘者個人有關,多少是和市場的狀況、行業的特點有關。
- 工作任務(TASK): 每項任務的具體內容是什么樣的。通過這些可以了解應聘者的工作經歷和經驗,以確定他所從事的工作與獲得的經驗是否適合所空缺的職位。
- 行動(ACTION): 即了解他是如何完成工作的,都采取了哪些行動,所采取的行動是如何幫助他完成工作的。通過這些,可以進一步了解他的工作方式、思維方式和行為方式。
- 結果(RESULT): 每項任務在采取了行動之后的結果是什么,是好還是不好,好是因為什么,不好又是因為什么。
### 面試人員應該具備的技能
一個優秀的程序員應該具有怎樣的技能:
- 基礎扎實
- 主動思考
- 愛學習
- 有深度
- 有視野
- 扎實的編碼經驗
### 校園招聘與社會招聘
校招和社招的是不一樣的,校招會更加關注基礎知識,而社招會更加關注之前做過的項目情況。
### 需要注意的地方
- 面試題目: 根據你的等級和職位變化,入門級到專家級:廣度↑、深度↑。
- 題目類型: 技術視野、項目細節、理論知識,算法,開放性題,工作案例。細節追問: 可以確保問到你開始不懂或面試官開始不懂為止,這樣可以大大延展題目的區分度和深度,知道你的實際能力。因為這種關聯知識是長時- 期的學習,絕對不是臨時記得住的。
- 回答問題再棒,面試官(可能是你面試職位的直接領導),會考慮我要不要這個人做我的同事?所以態度很重要。(感覺更像是相親)
- 資深的工程師能把absolute和relative弄混,這樣的人不要也罷,因為團隊需要的是:你這個人具有可以依靠的才能(靠譜)。
### 參考資料
- [如何面試前端工程師?](http://www.zhihu.com/question/19568008)
- [一名靠譜的JavaScript程序員應備的素質](http://ourjs.com/detail/52b0fb82d6feceaa0400000b)
- [FEX面試原則](https://github.com/fex-team/interview-questions)
- [STAR面試法](http://baike.baidu.com/link?url=eH9G3YEf-yXZ-YPSgU1rSvzC9nz_uZmQrgaSo7LVUsntQeA_wW7Z3VGJ_2BkbgsJpNiInevOwJhH36CxNSMEGK)
- 介紹
- 程序員基礎知識
- 字符編碼
- 技術名詞
- 語義化版本
- 命名規范
- 書寫文檔
- 開源協議
- 目錄結構
- 正則表達式
- 平凡之路
- 數據結構與算法
- 堆和棧
- 浮點數類型
- XML和JSON
- 算法學習之路
- 排序算法
- 代碼架構
- 設計模式
- 常用的Javascript設計模式
- 面向對象編程
- 繼承
- 多態
- 封裝
- 面向接口編程
- 代碼評審
- 六種量化你代碼的方式
- 程序員必備的代碼審查(Code Review)清單
- 服務器部署
- AWS簡介
- 網絡知識
- HTTPS, SPDY和 HTTP/2性能的簡單對比
- HTTP狀態碼
- 懂點設計
- 佳作賞析
- 無縫平鋪
- Sketch學習
- 設計與實現的平衡
- 寫點東西
- 使用gitbook
- 合格的PM
- 一個好的產品經理
- 產品經理的技能
- 團隊合作
- 關于招聘
- 培訓新人
- 領導能力
- 獲取知識
- MOOC
- Podcasts
- 英語學習
- 設計學習
- 前端學習
- iOS學習
- 游戲開發
- 關注健康
- 過勞檢測
- 關于睡眠
- 提升效率
- 學會閱讀
- 學會提問
- 善用搜索
- 學會寫作
- 時間管理
- 知識管理
- 文件管理
- 密碼管理
- 制作視頻
- 制作PPT
- 論音樂對效率的影響
- 程序員效率指南
- SOHO
- 創業資源
- Hacker
- 保護隱私
- 關于工作
- 找工作前需要思考的問題
- 原則與技巧
- 關于簡歷
- 其他方面
- 硬件相關
- 常用軟件
- Windows
- 硬件配置
- 系統安裝
- 常用軟件
- Mac
- 通用設置
- 權限問題
- alias設置
- 常用軟件
- 開發環境
- 快捷鍵設置
- 常用終端命令
- dotfiles
- Android
- 常用軟件
- 如何登錄美國區GooglePlay
- 開發工具
- git
- EditorConfig
- node
- shadowsocks
- ST3--Windows篇
- ST3--Mac篇
- gulp
- 字體的選擇
- Emacs
- WebStorm
- tmux
- Sketch
- Sketch中文學習資料
- Trello
- 使用Trello管理項目的經驗
- git進階
- 15分鐘學會使用Git和遠程代碼庫
- GitHub秘籍
- JetBrains
- IDE設置
- 附錄
- 計算機科學與技術
- 網站
- 書籍
- 工具