自學程式設計師的產業現況與入行指南
產業變遷與自學程式設計師
自學程式設計師們,我們又見面了。最近,我對產業現況以及自學程式設計師如何進入這個產業有很多想法,想和大家進行一次真誠、開放且坦誠的對話。
回顧2021年,我最初創建頻道時,圍繞的就是成為自學程式設計師的理念,並通過分享非傳統的入行方式,吸引了大量訂閱者。然而,自2020年我開始製作影片,尤其是2016年我首次踏入這個產業以來,產業已經發生了巨大的變化。那麼,讓我們來談談在當今市場中,自學程式設計師如何進入這個產業。
從零開始:學習程式設計
我認為大多數人都會同意,網路上有無數完全免費的資源,讓你可以自學程式設計,達到足以在市場上找到工作的水平。自學程式設計師面臨的問題並不是資源不足,恰恰相反,是資訊過載和分析癱瘓,不知道從哪裡開始,也不知道該深入學習什麼。
例如,前幾天我和一個人聊天,他說自己正在學習ME stack,感覺很有信心,也已經申請了一些工作,但不知為何,他覺得應該轉向學習另一種技術。這就屬於「閃亮物體綜合症」,不僅自學程式設計師有這種症狀,整個產業的人都有,尤其是那些剛開始學習程式設計並試圖進入這個產業的人。
專精一項技術
大多數公司都希望找到能立即上手的人。大公司或中型公司可能會廣撒網,尋找有一定經驗的人,面試時會測試數據結構和演算法知識。但一般來說,70%的軟體開發工作並不在這些進行此類面試的大公司。大多數職位空缺都要求應聘者使用特定的技術堆棧來解決特定問題。很多公司沒有時間和精力讓員工熟悉某種技術堆棧,他們希望找到對其有相當了解並能立即有效貢獻的人。
因此,我建議在剛開始學習程式設計時,花6個月到1年,甚至2年的時間,深入研究一項技術。選擇自己喜歡的方向,比如MER stack、原生Android開發、使用Python和Django的後端開發等。堅持做一件事,直到做得非常好。在剛開始的時候,成為某一領域的專家比什麼都懂一點要好得多。
以我為例,我專精於移動開發,這是我在LinkedIn和簡歷上的品牌。所以當我申請專業職位時,獲得面試的成功率很高,也有很多招聘人員在LinkedIn上聯繫我,提供移動開發方面的專業職位。
成為T型開發者
當然,在某個時候,你需要擴展自己的技能。這就是我所說的成為T型開發者。先在某一領域深入研究一到兩年,然後再擴展到其他領域,比如後端開發或移動開發等。這才是公司在招聘中高級職位時真正需要的人才,他們希望找到對某一領域有深入了解,但在必要時又能深入不同代碼庫的人。
打造出色的專案
如今,基本的專案已經不夠了。我剛學習程式設計時,專案質量並不高,但我對程式設計充滿熱情,在面試時能談論一些專案。我第一份工作的薪水只有每小時12美元,還是在大學時兼職。
現在,情況大不相同了。要脫穎而出,展示自己是一名有能力的開發者,你需要打造出色的專案,而不僅僅是千篇一律的專案,比如Twitter克隆或簡單的待辦事項清單。你應該構建一個完整的端到端專案,解決一個實際問題。理想情況下,你不僅要構建專案,還要圍繞該產品建立品牌,並嘗試發展用戶群。
你需要部署專案,確保有一個可供人們查看、互動和下載的實時網站。將專案發佈在GitHub上,寫清楚提交訊息和自述文件,圍繞你正在構建的產品建立品牌。這聽起來工作量很大,我自己現在要進入這個產業,可能都做不到。但正因為這是一項艱巨的任務,所以能淘汰掉99%試圖以自學程式設計師身份進入這個產業的人。
探索自由職業或創建公司
除了打造專案,你還可以探索自由職業或創建自己的公司。註冊LLC,將其列在簡歷上,作為你曾經任職的合法公司,並構建一些專案。嘗試通過Upwork或本地網絡獲得自由職業工作,只要能持續獲得客戶即可。這也能幫助你獲得構建真實軟體的實際經驗。
設定現實的就業時間表
很多人,尤其是那些試圖通過非傳統方式進入這個產業的人,比如自學程式設計師,往往希望在短時間內轉換職業,解決財務問題。他們可能會說:「我要在6個月內學會程式設計,然後找到一份年薪7、8萬美元的工作,遠程工作,生活更舒適。」
這些想法很好,但要注意不要設定過於嚴格的時間表。如果6個月內沒有達到目標,你可能會感到非常沮喪,甚至放棄。其實,只要再堅持3、4個月,你就很有可能進入這個產業。所以,要對自己好一點,設定現實的時間表,最好不要設定時間表,只要告訴自己,我要學會程式設計,打造出色的專案,盡最大努力進入這個產業。
關於LLMs和AI
現在讓我們來談談房間裡的大象——LLMs和AI。LLMs在編寫初級開發者通常編寫的程式碼方面非常出色,甚至可能比你更好,而且在你學習程式設計的過程中也會一直比你好。這就是為什麼很多新程式設計師感到沮喪,他們花了兩周時間學習如何用HTML、CSS和JavaScript構建一個基本網站,實現一些按鈕交互和動畫,卻發現AI可以在幾秒內完成。
AI在處理孤立的任務時非常出色,比如構建常青專案或解決常青問題。但當你開始嘗試用它為具有非常複雜業務邏輯的複雜系統生成程式碼時,它就會開始崩潰。當程式碼需要與20多個服務或組件交互,並且要在擁有數十萬行程式碼和數千個不同文件的代碼庫中編寫程式碼時,AI就會顯得力不從心。
有人說AI可以取代五個初級程式設計師的工作,這有一定道理,但在競爭激烈的資本主義環境中,公司希望盡快發展。所以,公司是會僱用一個開發人員,讓他使用AI,達到五個初級工程師的產出,還是直接僱用五個初級工程師,讓公司的產出提高五倍呢?這是需要考慮的問題。
自我監督
如果你非常渴望學習程式設計,並通過非傳統方式進入這個產業,那麼你必須與自己進行一次真誠的對話,問自己:「我能在足夠長的時間內自我監督,以獲得找到工作的最佳機會嗎?」如果答案是否定的,也沒關係。人們渴望結構、截止日期和被告訴該做什麼,這很正常。
如果答案是否定的,你可以考慮其他選擇,比如回到大學、參加程式設計培訓營或僱用導師。這裡我要推薦一下我的導師計畫。我和另外兩位軟體工程師Kevin Non Jr.(前大公司軟體工程師)和Tech with Tim(前微軟工程師,知名程式設計YouTuber)一起運營這個計畫。
我們的計畫為期四個月,首先會與你進行策略會議,剖析你目前的情況,然後為你制定一個全面的四個月計畫。在這四個月裡,你可以隨時與我們溝通,我們會確保你負起責任,做你說過要做的事情,並在學習過程中給你建議和指導,幫助你成為一名準備好就業且自信的軟體工程師。如果你感興趣,可以點擊描述中的鏈接,預約一次會議,看看你是否適合。
其他學習途徑
導師計畫並不適合所有人,你還可以考慮回到大學或參加程式設計培訓營。我不建議你花10萬美元去讀計算機科學學位,但有一些聰明的方法可以考慮。比如先從社區大學開始,我就是這樣做的。社區大學的課程規模更小,更親密,教授更關心學生的成長和成功,而且費用只是傳統大學的一小部分。
很多人先在社區大學讀兩年,然後轉到四年制大學,只需要支付兩年的學費。有些社區大學還提供三年制課程,你可以在社區大學讀三年,然後轉到知名大學,只需要支付一年的學費。
另外,你還可以考慮像Western Governs University這樣的學校,他們提供加速的計算機科學學位課程。你可以按照自己的節奏學習課程,只要完成所有作業,通過所有考試,理論上可以在兩年內完成四年的學位。
程式設計培訓營也是一個選擇。如果你非常想學習程式設計,但無法自我監督,不知道從哪裡開始,最終可能會放棄,那麼參加程式設計培訓營可能是最好的選擇。雖然不能保證你一定能找到工作,但它可以為你指明學習方向、學習方法和培訓營後的發展方向。
我在職業生涯中與很多程式設計培訓營畢業生合作過,他們大多來自小公司,我認為他們都是非常有能力和價值的工程師。程式設計培訓營經常受到不必要的批評,但如果你找到一個好的培訓營,它可以為你的職業生涯帶來巨大的成功。
建立人脈
最後,也是最重要的一點,如果你非常渴望自學程式設計,並以自學程式設計師的身份進入這個產業,那麼最好的優勢就是你的人脈。很多人對人脈有誤解,認為必須穿著西裝打領帶去參加活動,和別人握手,遞上簡歷。其實不然,我對人脈的定義更為寬鬆。
我認為人脈主要是指友好待人,主動出擊。在LinkedIn上與陌生人聯繫,發消息;在Twitter上與人互動;參加現實生活中的聚會,結識其他軟體工程師和招聘人員;參加技術會議也是拓展人脈的好方法。
我參加過幾次技術會議,每次都有很好的體驗,結識了很多軟體工程師,收集了他們的電子郵件,還遇到了招聘人員,他們後來通過電子郵件聯繫我,提供工作機會。我上一份全職軟體開發工作就是通過參加技術會議找到的。所以,不要害怕主動出擊,利用人脈優勢,無論你是自學程式設計師還是其他身份,這都會對你的職業生涯有很大幫助。
感謝大家觀看這段影片,希望對大家有所幫助。