課程連結:[INT101] 求職入門
求職準備:一般篇
調整求職心態:拋開完美主義,邊試邊改進
在開始求職之前,必須先建立求職心態:「不可能有準備好的一天」。就像我們以前在準備考試的時候,也不可能有準備完所有考試範圍的一天。
而在面對求職,我們要準備的,並不是達到完美的一百分,而是該如何達到想進入的公司,所需要的「及格分數」。
什麼程度可以去求職?
不如應該說「什麼時候去求職比較穩?」。
《十六週的 JavaScript 核心與物件導向》和《二十一週開始的 React》是重點部分,也是面試常問的考題。是重點部分,也是面試常問的考題。
面試順序
大致可分為三個階段:
- 先投沒有很想去的練功(2-3 間即可)
- 再投想去的(30-40 間)
- 還是沒有就靠海投!沒有經驗的菜鳥必須靠數量取得入場票的機會
準備流程
- 花兩三天準備第一版履歷,投 20 - 30 間
- 準備面試題目,一邊改第二版履歷,投面試
- 面試前可以先上 lidemy 學習系統 / PTT / 面試趣等平台,查看有沒有人投過類似職缺
- 以兩個禮拜為單位,進行一輪檢討
- 目標是在兩個月內找到工作,時間拉太長容易後繼無力
求職準備:面試篇
面試流程大致如下:
- 自我介紹
- 拿到名片 → 把名片放在桌上,就不會忘記面試官是誰
- 針對你的背景提問
- 前面的自我介紹不需要太詳細,適度留點空白
- 技術問題
- 遇到不會的就說不會,或嘗試引導到自己知道的部分
- 反問問題
- 公司福利、公司架構、使用技術
註:可以帶電腦 DEMO 作品,但要記得先把頁面開好,確認是否有網路,才不會當場耗太多時間。
Part1. 自我介紹
- 準備 2~3 分鐘
- 不要講一堆無關的
- 不要太長
- 可以提到轉職的理由
Part2. 針對你的背景提問
- 為什麼想轉職?
在過去的工作經驗中,其實從事的大多是取代性較高的工作。
希望未來能夠結合過去所學知識,並擴展自己的專業技能,因而開始學習程式語言,也從最初的線上自學,到成為程式導師實驗計畫的學生,逐漸確定自己想要往這個領域進一步發展。
- 你是非本科的,覺得跟本科會有差嗎?
和本科系的最大差別,我認為是能透過「興趣」來激發學習動力,也透過自學過程,培養找出問題答案的能力。
- 為什麼選 Lidemy 這個計畫?
在最初學習程式時,其實自己也有找一些像是 Hahow 或六角等線上課程。
但總覺得哪裡不夠,後來剛好看到這個計畫,發現是為期半年的前後端課程,課綱非常扎實,也能夠藉由這個機會讓自己接觸到後端,確定自己未來發展方向。
- 計畫學了哪些東西?
在課程最開始,是先從程式基礎打起,學習網路知識,以及如何使用 Git 版本控制。
接著學習網站前後端開發,如何 HTML, CSS, JavaScript,也學習如何操作 MySQL 資料庫,到中後期就是更深入探究原理,像是 JavaScript 物件導向以及 ES6 語法等等。
到課程最後,是學習現代框架,使用 React 和 Express 進行專案開發。
- 學過哪些印象最深刻?
第一次卡關是在串接 API 的時候,那時不知道為什麼,沒辦法理解什麼是同步非同步,為什麼要用 callback 之類的。
直到後期使用頻率增高,才從做中學,理解有時概念不一定要在一開始就理解到 100%,透過實作來理解也是一種方式。
- 卡關怎麼解決?
通常會先重新複習當周課程,接著會找官方文件或直接上網 Google,像是 Stack Overflow 等論壇,透過關鍵字尋找答案。
- 平常都怎麼學習的?
試著讓自己處於有 input 和 output 的狀態,除了吸收每周所學,也會試著用自己的話去解釋觀念,確認自己是否有充份吸收。
Part3. 技術問題常考題
可參考 GitHub 上,有各種大神整理好的試題合集:
- h5bp/Front-end-Developer-Interview-Questions:前端工程師面試問題集
- coffe1891/frontend-hard-mode-interview:更深入探討前端技術
- yifeikong/reverse-interview-zh:如何反問面試官問題
- DopplerHQ/awesome-interview-questions:包含前後端、不同框架技術的問題合集
準備方向
- 程式導師計畫各週簡答題
- ALG101:第五~七週
- JS201 進階 JS:面試大集合
- PTT / 面試趣等平台上的面試經驗分享
基本題
- 什麼是前端?後端?
CSS
- 怎麼做垂直水平置中
- Flexbox、top 50%; left 50%;、transform -50% -50%
- position 的各個屬性差別
- static, absolute, relative, fixed, sticky
- 參考:https://zh-tw.learnlayout.com/position.html
- block, inline-block, inline 差別
- CSS 優先層級:!important, id, class, tag 排序
- display: none; 跟 visibility: hidden; 的差別?
- 請解釋 box model
- margin, padding, border, width
JavaScript
- hoisting
- closure
- event loop
- this 的值
- cookies, sessionStorage, locakStorage 的區別
- 捕獲與冒泡
- 跟 call by reference 有關的題目
- DOM 跟 BOM 是什麼
- document object model
- browser object model 瀏覽器
Web
- GET 與 POST 的差別
- CORS 怎麼避免
- SQL Injection 是什麼
- XSS 是什麼
- restful 是什麼?慣例是什麼?
- cookie 與 session 的差別
- cookie 是
Browser
用來存資料的;session 則是Server
用來存資料的
- cookie 是
React
- function component 和 class component 差別是?
- control 和 uncontrol 的差別是?
- 有哪些 Hooks
- 什麼是 HOC?
- 什麼是 Redux?
- 怎麼進行 promotion(優化效能)?
- memo、useMemo、useCallback、component update
程式考題
- 費氏數列:遞迴解、迴圈解
- two sum:Leetcode 經典題
- 其他複習 alg101
注意答題重點!
- 不要不懂裝懂
- 例如:雖然我不太確定,但目前我有學到 XXX 概念
- 就算不會 A,也可以講跟 A 類似的 B,注意不要扯遠了
- 例如:我記得這兩個是和儲存資訊有關,但是兩者差別我不太清楚,不過我知道除了這兩個東西以外,還可以用 cookie 在瀏覽器上儲存資訊
- 有把握的題目請好好發揮
白板題答題重點
- 先問好輸出入範圍跟格式
- 輸入的數字都是正整數嗎?輸入的 n 範圍是多少?
- 先想解法,不要先寫程式碼
- 確認想得出來,可以先講思考流程,然後再寫程式碼
- 更好的是邊寫程式碼邊講解,需要平常練習
- 就算是最慢的解答也可以,先求有再求好
Part4. 反問問題
推薦文章:[請益] 你還有什麼問題想問?
- 這個缺是離職補人還是擴編
- 公司的技術棧是什麼
- 技術團隊人數
- 公司的產品開發流程(scrum, agile)
- 技術開發流程(git flow)
- 協作工具(slack, teams)
- 我還有哪些地方需要加強的
主要問的方向分為三部分:
- 公司相關:福利、績效考核、升遷、公司文化
- 團隊相關:如何協作、如何分工、有哪些角色
- 技術相關:用哪些技術、工作流程
薪水怎麼開?
- 先看公司有沒有公開範圍,有的話開在範圍內
- 課程跟完:45k~50k
- 沒跟完:40k~45k
- 薪水是可以調整的,拿到 offer,下一間就往上開
- 第一間重要,但也沒有那麼重要
重要!寫面試心得 & After Action Review
- 標題:面試 OOXX
- 開始之前你覺得應該是怎樣
- 開始後實際是怎樣
- 下次如何改進
- 面試內容
- 條列式記錄問了哪些問題
- 一定要當天寫下來,好的壞的都留下紀錄供日後參考
- 有問題都可以找 Huli、助教或同學討論!!
結語
其實這篇距離最開始已經過一年多了,直到去年五月轉職時才又打開,發現還是有不少受用的觀念,相信要找下一份工作時,還是會再打開這篇來看吧XD
記得在面試過程有很深的體悟,那就是面試完只要沒有馬上寫心得,很快就會忘得一乾二凈,所以不管結果是好是壞,都還是要強迫自己做紀錄,當作留念也未嘗不可,畢竟都花費時間心力去準備了。
此外,一直也有想要整理一份屬於自己的前端面試答題合集,只是遲遲未動工,就把這件事訂為今年的待辦事項,繼續朝目標邁進吧!