延續之前讀者提問「如何轉行成為前端工程師?」系列文,希望對想要轉行或是持續學習的人有幫助。
在之前的文章有提到,還是推薦完全沒有 Computer Science (電腦科學)基礎的人,挑某個付費課程來上,密集地培訓三個月。
如果真的很想自學,而且設定是想要短時間內轉行,就要有所取捨,想法不能把所有在 CS 大學科系的課程全部上完(以資工系為例):
微積分
線性代數
作業系統
計算機概論
資料結構與演算法
計算機程式設計
計算機網路
這些課程有辦法在各個大學的開放式課程平台找到內容來學習,但這些課程的設計動輒要花上一學期來學習。
想快速得到結果,可以立刻開始動手做,遇到現實中的問題需要資料結構與演算法來解決的話,再回頭找相關的知識,理論和實作交替著進行:
免費資源:
付費資源:
以上平台是我自己用過、也得到很多幫助的,也可以挑選適合自己的平台。
在這裡,提醒有一些我覺得可以避免、注意的狀況:
覺得想要「全部學完」才去實作
漫無目的地一直學新的知識
儘量找「現實世界」的問題去解決
想要全部學完才實作
我剛實習參與第一個專案時,不知該從何下手,不敢改別人的程式碼等等,覺得一定是我「學習」得還不夠,於是想要回頭再看看我以前上過的課程「把課程看完」,但應該要研究專案的程式碼,而不是再去看跟專案沒有直接關係的課程。
想轉行當工程師的人,誘因或許是高薪、更好的職涯、或有一些自己的科技理想,想要做出一些自己的東西。
但在初期,雇主要的是能夠把任務交付給你的時候,能快速的實作出來。
這時若是已做過的東西,就會得心應手。如果還要搜尋一下、試驗一下才能做出來,或是做出來不見得效能好,就會壓力很大了。所以盡可能以結果導向的方向,學了就解決一個小問題、累積一小段程式碼。
漫無目的地一直學習新的知識
首先,簡單地列出對於前端工程師可能會需要知道的一些知識:
那麼,在這個清單可以無止盡延伸下去的時候,比較好的做法是蓋幾個專案、一邊學習相關知識。比如五個不同的前端專案,可以學到不同技術和概念:
可參考連結如下:
至於如果有點不知道該怎麼挑選,可以去看最想進的公司的的職缺,讀他們的 JD (Job Description),在下段說明。
找現實世界的問題去解決
至於說「現實世界」的意思是,可以先不用往其他太獨門的知識下去鑽研,有時候學著學著,會發現 devop 也很有趣,不知不覺就分心了。
要轉行的人,最要緊的目標是拿到第一個「前端工程師 offer」,我以前會用的方法是看看理想中的工作的 JD。可以去 Glassdoor 或 LinkedIn 上面搜尋。
Experience with JavaScript ES6/TypeScript
Experience with advanced JavaScript UI frameworks (ie. React, Angular, VueJS)
Building native iOS/MacOS applications (ie Swift, ReactNative)
Previous work with APIs / RESTful services
Proficient with Git and Github/Bitbucket, collaborative software development
JavaScript, React (React.JS or React Native)
Web technologies: HTML and CSS
Create reusable and high-performance user interface components
Object Oriented JavaScript Frameworks, such as Prototype JS, MooTools, or Dojo
Architectural design for complex front-end systems
Experience building Brownfield and idiomatic React Native apps on both iOS and Android.
Experience working on scalable React Native architecture to support multiple feature teams.
Experience with Redux, Redux Sagas, and React Navigation
Ability to debug and resolve local build issues related to NPM and Gradle
上面節錄列出的多是在美國的 JD,台灣的話可以找 Yourator 、 meet.jobs ,有一個目標用結果導向的方法能最快速能達到目的。
選擇自己喜歡的產品、規劃自己的職涯,進入到好的公司,會有好的環境、與同事。好的環境與同事能給你帶來的成長是指數型的,我自己就是這條轉行路上的見證人。生活真的會改善很多!加油!
下一篇會是「工程師日常的AI工具、與chatGPT協作」。