首先自我介紹,然後開始問問題,主要的方面就是nodejs、db、docker、cloud和根據你的github去問問題
1. nodejs如何防止程式崩潰?
2. nodejs實作API怎麼獲得參數?
3. nodejs同步用法
4. 有用過aws cloud嗎?
5. RDBMS和nosql差異?
6. docker和vm差異?
7. 根據我github去問問題
技術問題問完,就是一些行為模式問題,像是
* 當獲得需求時,你會如何開發API?
* PM提出不合理需求,你會怎麼做?
問完就是公司介紹,給我看目前公司正在開發的產品,然後看我有什麼問題要發問,我大概就問了工作模式、主要開發的產品、福利和制度等。
面試問答
nodejs問題
1. 使用try, catch防止崩潰。
2. Express的req.query、req.params或req.body。
3. async await。
AWS雲端使用
4. 只有用過GCP和Azure,AWS沒用過。
RDBMS和nosql差異?
5. RDBMS關聯式資料庫,最在意的是資料之間的關聯性,所以在設計資料庫時,必須先定義schema,因為要設計資料表的欄位與關聯,接著使用sql language從不同資料表之間組合或過濾你要的資訊,那RDBMS最重要的一件事情就是正規化(normalization),正規化為了就是避免不同資料表儲存了重複的資訊,可能發生db中有重複的資訊沒有被更新,也就是因為這樣,所以schema的設計就變得很重要。
NoSQL(Not only SQL),最大的特色就是DB沒有schema的要求,也不像RDBMS的資料表有固定的欄位和schema,NoSQL概念比較像每一筆資料都當成一個document,不在乎document的資料結構是否一致,也不在乎是否純有重複的資訊或有沒有關聯性,只在意你是要新增/刪除/修改/查詢document。
docker和vm差異
6. VM是一個配置好CPU、RAM與Storage的作業系統,image通常較大;而docker是為一個應用程式而生的,可以單純配置一個以nodejs或python的程式應用。
面試建議
因為主要是用nodejs開發,所以需要特別加強nodejs語言的一些基本用法和觀念要孰悉,也會用到docker或gitlab CI/CD,所有這些技能也要知道,資料庫的部分就單純問差異,跟你使用過什麼,最主要是github上提供的資訊要非常孰悉喔,不能突然忘記自己放了什麼,突然講不出來就糗了!