後端開發轉職經驗分享:非IT背景快速入門全紀錄

從零到後端開發者之路:一個非IT背景的真實轉職故事

IT這幾年變得很熱門,說到資訊相關的工作路線,好像身邊總有不少人動了念頭。其實不是什麼稀奇事,就算本科跟電腦完全沒關也一樣有人想跳進來。據說到明年,有將近十個領域在IT圈裡特別吸引大家——人工智慧、雲端服務、資安、數據分析,還有那種維運自動化和區塊鏈,軟體開發當然也不會缺席啦,產品經理、美術介面設計,以及物聯網這些,加起來差不多就是大家常討論的那些。

坦白說,我原本其實跟資訊沒什麼直接關係。以前大學是念理科,但現在卻莫名其妙地變成後端開發工程師,工作加起來也做了三年左右吧,大部分時間都在寫Java。有時候朋友問我怎麼轉過來的,我每次都覺得原因好像挺簡單——如果你對這行真的感興趣,那自然會往前走。不然說真的,要是沒興趣,每天學東西只會覺得煩,很容易撐不到最後就放棄。

回想當初讓自己決定換跑道的那個契機,其實不是什麼戲劇性的瞬間,好像只是某一天突然意識到該換個方向,也許只是累積了一段時間的不甘心或新鮮感作祟吧。

那個讓我決定轉行的瞬間:Instagram發文按鈕背後的魔法

有一天,好像是某個下午,我突然想到:「Instagram 上的那個『發佈』按鈕,到底背後怎麼運作啊?」我也不記得是不是因為這個小疑問,反正後來就慢慢開始摸索寫程式。然後,就這樣陰錯陽差地踏進了資訊領域,最後變成了後端工程師——說來其實滿不可思議的。所以今天想順便分享一下,自己轉進 IT 產業時的一些歷程和小心得,也許剛好有人在猶豫要不要試試看。

嗯,有人會問嘛:「學資訊到底值不值得?是不是以前念過的那些都要丟掉?未來薪水真的會比較高嗎?」其實我覺得這種問題大概十個裡面有七八個都會想過。我的答案傾向於肯定,但還是得看每個人的狀況啦。畢竟現在科技似乎滲透到生活裡的各種地方,不管手機、網站、甚至連日常小東西,好像都離不開 IT 相關技術。有時候回頭想,當初只是對一顆按鈕好奇而已,沒想到最後居然能換到一份新工作。

當然,每條路都有它自己的困難點。如果你現在也在考慮要不要投入,其實不用太擔心以前學過什麼專業知識會白費掉,大多數情形下多少還是用得上的。而且資訊領域變動很快,有時候經驗反而是在之後才慢慢累積。不過投資時間進去,大致上看來還是有機會帶來一些成果,只是未必像外界講的那麼輕鬆或絕對保證。

Comparison Table:
學習階段重點內容建議
第一個月基本語法、資料結構與演算法提早接觸資料結構,避免未來困擾
第二個月物件導向(封裝、繼承、多型)、Spring Boot框架專注於Java本身,熟悉物件導向概念
第三個月SQL 資料庫設計、ERD圖繪製深入理解資料庫結構以利系統設計
第四個月使用Spring Boot開發CRUD API應用程式掌握分層架構,提升後端開發能力
第五個月安全性(Spring Security、認證與授權)儘早了解安全相關技術,以增強應用程序的可靠性

那個讓我決定轉行的瞬間:Instagram發文按鈕背後的魔法

現在學IT還來得及嗎?看看這些驚人的產業成長數據

在美國那邊,據說資訊相關的工作需求,增長速度大概比一般產業快上好幾倍。大致看來,未來十年左右,整體IT行業有望持續增加不少職缺。像電腦系統設計或資料分析這類角色,好像又特別搶手,有些專家預估成長幅度可能是其他工作的兩三倍,有的甚至快要翻上去一半。不過這些數字本身也不見得完全精準,每隔一段時間還是會調整。

至於值不值得投入?其實沒什麼標準答案,但如果單純從趨勢看,大多數人覺得算是不錯。猶豫太久反而失去學習動力,不如乾脆開始。

有個經驗分享,也許對你有點啟發。有的人認為,只要自己真的感到好奇,大腦學東西就比較輕鬆。所以起步時,其實不用想太複雜,哪怕只是問一些很簡單的小問題都沒關係。例如有人當初就只是納悶:「網站到底怎麼運作?背後用的是什麼技術?」結果摸著摸著,就遇到HTML了。一查才發現,原來我們平常看到的網頁,是靠這種語言堆疊出來的。

其實過程很跳躍,也不是每一步都有規劃。但只要維持一點點興趣,好像就走得下去。

我的學習秘訣:讓好奇心成為你最強的老師

有一天,好像在網路上亂晃的時候,突然看到按鈕居然可以寫成這樣:
<button id="btn">Post</button>

那時候腦袋閃過一個想法——到底點了這種按鈕會發生什麼?然後有人說,是JavaScript在背後搞鬼。可是,JavaScript又是在做啥?就又多問了一下。大概查了幾篇文章吧,才知道原來還有API這種東西存在。從這裡開始,好像一連串問題就停不下來,一直追到後端開發那邊去了。

其實回頭看,當初只是為了一個很小的疑問,結果一路繞進好多領域。有些人可能會覺得學IT要有計畫,但我自己覺得,大概每個人方式都不太一樣。有的人是因為覺得某件事特別有趣,也有人是無意間被什麼小細節吸引住,就開始往下挖。

如果硬要給點建議喔,其實也沒什麼公式可套。找到自己真的會好奇、想一直追下去的地方滿重要的,不一定一開始就能搞懂全部內容。有時候只是因為腦子裡冒出一兩個小問題,就慢慢帶著你往前走了。中間可能也會卡關或轉彎,但大致上,只要持續願意學、願意讓新疑問帶著你走,大概方向都不會差太遠。

怎麼說呢?大概就是不要怕從零碎的小東西開始,不需要立刻弄清楚全部結構,有時候反而是那些微不足道的小細節帶你入門——最後變成一路探索到現在吧。有些人比較適合系統化學習,有些則像我一樣,是被東拉西扯的好奇心推著走。反正每條路都有人走過啦,不見得哪種一定比較有效就是了。

我的學習秘訣:讓好奇心成為你最強的老師

新手必看!從HTML按鈕到API的探索歷程

反覆嘗試,大概就是這麼一回事吧。有人說要不斷循環摸索,到底自己想鑽研哪塊領域,等哪天碰到真有感覺的主題,再慢慢深入下去。那段時間,前後加起來也許超過半年,我記得剛開始大約三個月都是在試水溫,偶爾搞點前端、偶爾玩一點資料分析,不過最後還是被後端開發吸引住了。有些人會建議,一開始不用急著投入太深,先多看多問多體驗。

回想最早那一個月,其實還沒有很明確方向,只是隱約知道自己對伺服器端的東西比較有興趣。那時候Java好像特別熱門,就挑來試試;API這個名詞在腦袋裡繞了好久,常常邊查邊懷疑:API到底算什麼?為什麼大家都說開發時一定得懂API?其實有段時間我也沒太看懂,只記得有人解釋成應用程式之間溝通的橋樑。但真的要說深入理解,好像也是經過很多次反覆練習和失敗才稍微抓到感覺。

講到探索期,可能不少人跟我一樣會陷入選擇困難,各種技術都想碰一下,但又怕時間分配得不夠均衡。當時其實蠻多迷惘,有人建議可以先列出幾個自己感興趣的主題輪流體驗,有時候走著走著,就自然而然找到特別想進一步了解的方向。至於API的問題,大概也是從查資料、問朋友或社群討論裡東拼西湊慢慢拼湊起來——雖然答案可能每次都不太一樣,但大致上,就是讓不同軟體之間能彼此交換訊息的一種方式吧。不知道是不是所有人都有這種經歷,但至少在我的學習路上,多數初學者都會卡在這些小細節繞圈圈。

6個月速成計畫大公開:我是這樣找到後端開發熱情的

API要怎麼做出來?這問題曾經讓不少人困惑過。有人說選哪個語言比較有利,其實看場合,Java倒是聽說全球滿多人都在用,不少初學者也是先從它下手。我那時候,好像先碰了些基本功吧,什麼變數、條件判斷、循環那些,還試著寫過一些很小的控制台程式,例如說計算機或者簡單票務系統。

但後來回頭想,好像一開始忽略了資料結構還有演算法。這部分其實滿關鍵的。有些人可能剛開始沒特別去管,可等到遇到問題,比方說突然有人問:「你覺得哪種Java集合類比較適合放這批資料?」就會卡住。如果早點接觸資料結構,大概能省去不少困擾,至少不會在那邊發呆。所以建議新手們可以提早花點時間摸一摸這塊,不然之後繞回來學反而更麻煩。

進入第二個月,我當時就把重心放回Java本身。物件導向嘛——封裝、繼承、多型那些,看起來好像挺抽象,但多寫幾次慢慢也能抓到感覺。Spring Boot也聽人家推薦過,有人說開發API方便很多。不過具體細節,每個人的路線不一定一樣,有的人前面會跳著學,也有人搞混順序,總之就是邊走邊修正吧。有些細節我現在也記不得是不是按部就班學的,反正只要最後能做出東西,大致上方向沒錯。

6個月速成計畫大公開:我是這樣找到後端開發熱情的

Java與Spring Boot入門:那些我踩過的坑與收穫

物件導向這玩意,說它重要也不為過——有時候寫 API 真的會簡單不少。剛好那時認識到 Spring Boot,好像在 Java 生態裡算是滿多人用的框架吧,反正搞後端應用程式蠻常碰到。API 怎麼做?其實就是透過 Spring Boot 那一套流程去弄的,細節現在回想起來還是有點模糊,但大致方向沒錯。

然後資料庫也是差不多同一個時期開始接觸,那會兒挑了 Oracle。原因好像很單純:Java 跟 Oracle 都出自同一家企業,所以整合上沒什麼太大障礙,看起來省事。不過其實當初對資料庫的理解也就表層,大概知道用來存應用程式的資料,有點像通訊錄那樣,把東西整理進表格、欄位什麼的。

第三個月吧,我記得主要時間都花在摸索 Oracle。SQL 資料庫這種東西,很講究結構設計;每個表之間關聯性要靠 ERD,那張圖畫得越清楚,後面維護或擴充才比較順手。不過講真,一開始我沒特別深鑽這塊,結果往後遇到複雜一點的系統設計就卡住——算是吃了苦頭啦。有些人可能覺得資料庫不用管太多,但經驗下來,只要肯多了解一點,以後寫 app、調效能都輕鬆不少。至於數量怎樣?感覺市面上常見類型七八種跑不掉,各家都有自己的小特色。

如果說建議嘛,也許就是不要偷懶,尤其碰到資料相關問題時,多花心力琢磨一下,不保證一定萬無一失,但對設計品質多少還是有幫助。

資料庫不是配角!Oracle學習帶給我的關鍵突破

大約第四個月吧,才剛開始摸索後端沒多久,就跟著一些網路影片跟教學,東拼西湊做出了自己的第一個 Spring Boot 小應用。也不記得細節是不是都照著老師的步驟走,有些地方好像還卡住過,不過最後還是勉強弄出來一個能跑的 CRUD API。說真的,那時寫得亂七八糟,常常回頭看都覺得哪裡怪怪的,可對新手來說已經算很大的突破。有趣的是,Spring Boot 的分層架構其實挺直觀:Controller 負責接收外部請求、Service 處理邏輯、Repository 跟資料庫打交道、Model 則長得有點像資料表。這種結構雖然簡單,但初學者摸索起來倒是滿好上手。偶爾也會想,如果再往下學,可能可以慢慢認識像 DDD(領域驅動設計)、TDD(測試導向開發)或 EDD(事件驅動)那類系統設計模式。聽說多瞭解這些會讓後端功力提升不少,但入門階段就暫且放一邊吧。

大概進入第五個月,有點意外地碰到安全性相關的內容——原本以為後端就是資料處理,其實安全這塊超級重要。那時候花了一些時間理解 Spring Security,主要是在搞清楚「你到底是誰?」(也就是認證),還有「你到底能做什麼事?」(授權)。這兩件事感覺都是在保護系統不被亂用,但細節好多,每次設定權限總怕哪裡沒顧到。不過慢慢練習下來,好像有比較懂一點,就是還不是每次都能一次成功啦。

資料庫不是配角!Oracle學習帶給我的關鍵突破

從CRUD到安全防護:我的第一個完整Spring Boot專案

說到授權,其實誰能碰哪個 API,這裡頭學問不少。有時候會被問到 CORS 怎麼處理,CSRF 保護大概也繞不開。像 Session 這類的管理機制,不少人一開始就覺得有點複雜。大致上,只要在剛入門沒多久就稍微接觸一下安全相關的東西,到後面寫應用程式時,心裡比較有底,也比較能做出讓人放心的東西。

再講回來,有些人可能花了半年多或更久才試著獨立從零做個完整專案。常看到有人光是 CRUD 就停下來,其實蠻可惜。如果願意多想幾步,比如加點 API 的自定義回應、塞一點業務邏輯,整體感覺就貼近真實世界。不過啊,我那時倒是沒弄前端,現在回想會覺得,如果能隨便用個基本的 HTML、CSS 或 JavaScript 拼個介面,把前後端串起來,也許對理解兩邊怎麼協作會有幫助。多少讓自己對後台技術掌握再深一點。

進公司後,有種經驗很快浮現——很多事都不是學完就結束,好像總是還有新玩意兒冒出來。有的人說工作之餘還要學習,其實也不見得每次都那麼積極,但保持某種程度的好奇心,大約能讓你跟上變化,不至於太快落伍。

職場真心話:拿到offer後才是真正學習的開始

嗯,怎麼說呢,其實有些人一進公司沒多久,大概過了一段時間就會變得有點安於現狀——他們好像覺得穩定就可以不用再學什麼了。你要是遇到這種情形,也許可以多提醒自己不要掉進這個圈套。畢竟身邊聽說過的例子不少,好像將近一半的人工作幾年後就很少主動接觸新知識,只守著自己原本那點本事。

不過,有時候回頭想想,誰知道哪些東西以後會用到?所以啊,有空還是慢慢摸索一些你覺得日後可能有幫助的新技能,不需要一下子全都學完,持續累積就好。有些朋友會問:「是不是一定非要做到很厲害?」其實也沒那麼嚴重啦,只要肯努力,多少總能留下點什麼。

話又說回來,如果剛踏入資訊行業,或是正在猶豫要不要試試看,那我講的故事,也許能讓某些人多一點信心吧。最後留下一句自己的小感想——努力投入從來不是白費工夫,就算當下沒看到成果,以後好像也常常能換個方式出現,用在別的地方。不曉得對大家有沒有一點啟發,下次如果還有什麼經驗再跟大家聊聊。

Related to this topic:

Comments