你必須很努力

從排斥寫程式到轉職成為工程師

2020/03/11
字數統計: 3.2k閱讀時間: 11 min

離上篇更新隔了 3 個多月,絕不是因為偷懶 (其實是
當時即將進入新公司,正式轉職成為軟體工程師(撒花

分享下自己為何轉職及做了哪些準備

背景

科大電子系畢業,僅在高中接觸過 8051、大學碰過 C++,但早已全忘 (連 Hello World 怎麼寫出來也忘了),當時是排斥寫程式的,覺得好難看不懂、英文又爛 (現在英文也很爛 XD),我一定學不會,當時的作業和考試多虧了同學才得以在及格邊緣通過 XD

轉職前工作了幾年,做過業務、策展、會計,每個領域都很跳 tone,也都是不同產業,還在尋找適合自己的工作,希望是:

1. 經驗能累積

2. 技能帶著走(不受產業限制)

3. 工作環境單純

4. 平均薪資天花板比一般產業更高

5. 不受地點任何地方都能工作

換了幾個工作後,一直找不到上述條件的工作,覺得再怎麼換都是差不多的工作,想起前年在PTT看過轉職心得文「[心得] 文組生轉工程師攻略」(連結為科技報橘的URL,比較好閱讀),從那時起,覺得我好像也可以的念頭便種下種子。

做了哪些準備

當工作開始迷茫時,轉職念頭也逐漸萌芽,直到去年 4 月底離職後,便正式開始自學前端的 HTML、CSS、jQuery (推薦看 Amos 老師的金魚都能懂的網頁教學系列影片,共兩季(網頁教學切版教學)),先確認自己是否還會排斥,每天跑圖書館自學 8 小時,持續一個月後,確定不排斥甚至產生興趣後,想持續深耕並更有效率地學習(目標是年底前轉職成為工程師),過程中有尋找線上及實體課程進行比較,像是:

線上資源:Udemy、Coursera、Hahow 好學校、六角學院、ALPHA Camp、網頁15天、臺大開放式課程、Youtube...等

實體資源:五倍紅寶石、CMoney 培訓、職訓局、資策會、好想工作室...等

不找還好,一找發現資源多到爆炸,反而不知該如何選擇,光是尋找、篩選、找到適合自己的學習方式,就花了一些時間整理,文章後面會把整理過的連結給大家參考,希望能幫助到想轉職的你,也歡迎在底下留言讓我知道,有留言鼓勵會更有動力更新 XD

經過多方比較後(預算、所需投入的時間、師資助教資源、課後輔導、學習氛圍等),最後選擇「五倍紅寶石」當作首選,自認需要有人引導會更有效率地學習,雖然可以持續每天跑圖書館自學,但摸索及撞牆期會花更長時間,且不見得所學的觀念是正確的,更常是知其然而不知其所以然,有人帶的話可以大幅縮減撞牆期,遇到不清楚有人可以詢問解惑,更快突破瓶頸及持續成長。

確定北上報名課程後,才開始找短租(台北租屋、出租專屬社團),在租屋社團可以提出需求,符合條件的房東會主動與你聯絡,或在上面看物件詢問對方,整體支出會比住家裡的人還高,要先算好這段期間沒收入的開銷,要上課、租屋、三餐、交通、電話費、健保費、國民年金、保險費、雜支...等,銀彈要準備充裕,建議在學習階段專心學習就好,別讓外務(打工)影響學習品質。

課程期間很精實,作業量蠻重的,要錄影寫作業外,也要寫文章、參加鐵人賽(連續 30 天每日寫一篇文章)、架設個人部落格、分組討論製作專案,同時要做的事情蠻多的,不停地學習新知識外又要持續輸出,時間永遠不夠用,巴不得自己是可以不用睡覺的體質,同學間也很積極學習,學習氛圍是好的,閒聊時會問彼此昨天幾點睡,一位比一位晚睡,到後來可以說是輪班睡覺,B 群、C 群、咖啡更是不離身,過程的辛苦只有參與過的人最清楚,雖然很累但樂此不疲,當一群人持續往同個目標前進時,會比單打獨鬥走更遠,一起共患難會有革命情感,即便課程結束到現在,仍會持續聯絡,假日約寫 code 或出來走走,這是一人在圖書館自學所無法擁有的回憶及友誼。

課程結束後,有在外面租個共用空間的辦公座位一個月,每天待 10 小時以上,不是寫 code 就是整理履歷、丟履歷、刷題、更新個人部落格、看技術文章...等,用「不是在寫 code,就是準備 code」來形容一點也不浮誇,讓自己除了吃飯、睡覺、通勤外的其它時間,全部投入在轉職工程師這件事情上,Line、Youtube、Instagram、Facebook 幾乎很少用,到後來甚至刪除 Facebook APP、Instagram APP,會不自覺想用的 APP 就刪除,藉此戒掉下意識滑手機的習慣,會發現有更多時間可以做想做的事情,而不再只有想卻沒做。

面試平台

開始找工程師相關工作後,首先要先有履歷,會發現履歷與之前撰寫不一樣,使用英式履歷即可(一張A4正面),再來就是各人力銀行網站都放,像是:

  1. 104人力銀行

  2. CakeResume

  3. Yourator

  4. Meet.jobs

  5. Ruby Jobs in Taiwan

  6. f2etw

  7. 1111人力銀行

  8. wanted

  9. yes123求職網

  10. 518人力銀行

  11. 178人力銀行

  12. LinkedIn

  13. indeed

面試問題

除了履歷上會寫你有什麼技能,並用它做了什麼之外,每間公司問的問題也不太一樣,基本的自我介紹外,更多的是技術問題,像是:

專案面:

  1. 你在專案中做了什麼?

  2. 專案的分工

  3. 專案用哪些技術

  4. 常用的 Gem 有哪些? 用來做什麼?

  5. 這專案遇到最大的困難是什麼,如何解決

技術面:

Ruby on Rails

  1. ProcLambda 差別。

  2. 要怎麼把 ProcLambda 轉換成 Block

  3. Block 中的 do…end 與 花括號 { } 的差異。

  4. Ruby 中的 module 怎麼用,跟 class 的差異在哪裡?

  5. symbolstring 的差異,什麼情況下會選擇這些資料型態?

  6. mapeach 的差別?

  7. extendinclude 差別。

  8. 如果有兩個陣列要怎麼找出一樣的值?

  9. a 陣列和 b 陣列如何相乘變 c 陣列?

  10. private, public, protect的差異?

  11. race condition 怎麼解決?

  12. 費氏數列是什麼? 怎麼用一般迴圈寫出來?

  13. 會怎麼儲存密碼這種敏感資料?

  14. RestFul 是什麼?除了 RESTful 的路由,還知道其他有什麼嗎?

  15. RestFul 的實作?

  16. Get、Post 的差異?有哪些特性?

  17. 什麼是 model 的多型?

  18. 什麼是STI?

  19. Rails 裡怎麼避免 n+1 query?

  20. includesjoin 的差別?

  21. Routes 裡 shallow 是什麼?

  22. Routes 裡面 collectionmember 差別是什麼?

  23. 如果要做一個短網址系統,routes 和 controller 會怎麼設計?

  24. 什麼是 CORS? Rails 怎麼解決這類問題?

  25. 前端的 partial 怎麼整理,怎麼把邏輯寫到 helper 裡面

  26. 哪些方法要寫在 controller、哪些要寫在 Model,分別是為什麼?

  27. Model 除了跟資料庫溝通外,還可以做什麼事?

  28. Gemfile 的功能

  29. 敘述使用者點擊網頁後背後的流程,特別注意 request header 與 response header 裡面的參數功能為何?

  30. 說出 cookie 的用途,以及 cookie 的儲存位置。

  31. session 和 cookie 的差別?

  32. 敘述 migration 的用途。

  33. 描述一下 MVC 怎麼運作的?分別代表什麼意思?這樣的設計模式有什麼好處?

  34. 測試用的假資料有哪些選擇(fixture與factory bot)?而這些選擇又有哪些cons and pros。除錯的方法?

  35. index 的優缺點?

  36. has_and_belongs_to_many 知道嗎?

  37. 有很大量的資料要怎麼更新?假如是在本地端的話可以怎麼做?

  38. dependent destroy 和 dependent delete 的差別?

  39. 如果 request 會出錯要怎麼處理?

  40. 如何在資料中如果有就抓出來沒有就初始化一個?

  41. findfind_bywhere 差別

  42. Rails 怎麼運作

  43. 什麼是 strong parameters

  44. 有用過 Assets pipeline 嗎?

  45. 什麼是 Active Job?用來解決什麼問題?

  46. 有在 method 裡用過 &* 嗎? (不是參數)

  47. Rails 框架提供了什麼功能讓我們能快速開發?

  48. ActiveRecord 如何幫我們解決處理資料庫的問題?

  49. 什麼是 Redis?

  50. 什麼是 ORM?

  51. 什麼是 CSRF? Rails 怎麼防範?

Git

  1. 什麼是 Git Flow?

  2. Mergerebase 的差別

  3. 為何要 rebase 自己的 branch

  4. 有用過什麼比較特別的 Git 指令嗎?

SQL

  1. 怎麼知道 SQL 的 query 效能好不好?

  2. 說明一下 SQL 和 NoSQL 的差別?

  3. Left join 和 Right join 的差別?

  4. 知道什麼是 SQL injection 嗎?及如何預防?

  5. rails c 中,如何查詢 11/01 後建立的所有資料

  6. MySQL、PostgreSQL 是哪種型態的資料庫?為什麼是主流?帶有什麼好處?

JavaScript

  1. undefinenull 的差別

  2. Promise 是做什麼用的,說明怎麼使用

  3. Settimeout 1000 指的是幾秒,一定準確嗎?

  4. ===== 差別

軟問題

  1. 你在學習程式語言這段期間有沒有曾經想放棄?

  2. 那你在學習程式語言的過程有沒有特別難過的檻或經驗

  3. 為什麼想轉職?

  4. 會用哪三個形容詞形容自己?

  5. 請說明自己的三個優缺點

  6. 對未來的規劃

  7. 為什麼會選擇 Ruby?有學過或比較過其他程式語言嗎?

  8. 對於未來的工作最注重的是什麼

  9. 進入後,會想做什麼?個人未來規劃?

  10. 之後想加強哪部分?

上面的面試問題,不是每一題我都被問過,在面試前,會先上網看別人分享面試心得及題目,累積彙整下來的,答案請自行查詢。

小結

當決定轉職後,除了努力之外,更多的是行動,才有機會轉職成功,從 5 月開始算的話,約半年左右轉職成功,到目前為止挺滿意現在的工作內容,工作上雖然常接觸沒碰過也不會的事情,抱持著遇到問題想辦法解決的心態去面對問題,解決問題的當下所帶來的成就感及喜悅是高於壓力的,會讓自己持續成長及前進,祝大家在職涯上能找到適合自己的工作,有任何指教或鼓勵可在下方留言討論。

轉職相關文章:

  1. PTT 鄉民工程師現身分享:文組生轉職工程師攻略

  2. 從平面設計師到前端工程師:五個月的轉變歷程

  3. 轉職 Web 工程師 — 公務員還俗記

  4. 結束十年客服生涯,開啟網頁工程師學習之路。

  5. 人生急轉彎!房仲秘書成功轉職軟體工程師?面試準備心路歷程分享

  6. 從資遣到外商,五個步驟轉職軟體工程師

  7. 都說程式員薪資高,可是完全沒有技術背景的麻瓜可以學寫程式嗎?

  8. 這麼老了轉行還來得及嘛? 一歲女兒顛覆我對「時間」的理解

  9. 程式語言新手入門第一個難題—如何選擇適合自己的程式語言

  10. 超過 30 個優質線上學習網站,課程平台資源大全,持續成長靠自學課程

  11. 怎麼學程式設計?6個線上優質程式學習平台推薦

  12. [心得] 想轉職前端工程師? 幫你蒐集各種資源!

  13. 前端工程師養成手冊

  14. 前端新手村

  15. [心得] 饅頭計畫 免費程式教學心得

  16. Html5學習資源分享,網站及搜尋引擎優化必備技能

  17. 五個月成為 JavaScript 工程師的完整攻略,每個月要幹嘛都寫出來讓你照著做!

  18. 程式自學十年心得:想吃這行飯,學好演算法與資料結構才能讓你站穩腳步

  19. 程式、演算法差在哪?比起學程式,你更應該了解演算法

  20. 如何讓 6 萬個工程師順暢合作不互雷?微軟法寶「完整程式碼審查」揭密!

原文連結:https://riverye.com/2020/03/11/從排斥寫程式到轉職成為工程師/

發表日期:2020-03-11

更新日期:2020-07-05

CATALOG
  1. 1. 分享下自己為何轉職及做了哪些準備
    1. 1.0.1. 背景
    2. 1.0.2. 1. 經驗能累積
    3. 1.0.3. 2. 技能帶著走(不受產業限制)
    4. 1.0.4. 3. 工作環境單純
    5. 1.0.5. 4. 平均薪資天花板比一般產業更高
    6. 1.0.6. 5. 不受地點任何地方都能工作
  2. 1.1. 做了哪些準備
    1. 1.1.1. 線上資源:Udemy、Coursera、Hahow 好學校、六角學院、ALPHA Camp、網頁15天、臺大開放式課程、Youtube...等
    2. 1.1.2. 實體資源:五倍紅寶石、CMoney 培訓、職訓局、資策會、好想工作室...等
  3. 1.2. 面試平台
  4. 1.3. 面試問題
    1. 1.3.1. 專案面:
    2. 1.3.2. 技術面:
      1. 1.3.2.1. Ruby on Rails
      2. 1.3.2.2. Git
      3. 1.3.2.3. SQL
      4. 1.3.2.4. JavaScript
    3. 1.3.3. 軟問題
  5. 1.4. 小結
    1. 1.4.1. 轉職相關文章: