為什麼這篇後端工程師自學鄉民發文收入到精華區:因為在後端工程師自學這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者jly8061666 (jeffrey)看板Soft_Job標題[心得] 無經驗轉職後端工程師時...
長期受惠於板上文章,決定將自己由去年九月中離職後,
自學網頁技術後成為Python Web Developer的心路歷程分享出來。
希望能幫助到無論是自學還是上課,
為了成為software engineer而努力著的版友們。
----------------------------文長慎入---------------------------------
去年八月底跟公司提離職,九月中離職後開始自學Python、Django網頁技術。
而成為Web Develope上工的時間是今年三月一號,約莫花了半年的時間。
首先我要先澄清的是,我並不鼓勵任何人跟我走一樣的路轉職。
原因無他,台灣使用Django框架以Python寫網頁的工作實在太少了。
如果真的想自學成為網頁後端工程師的話,
成功率最高的方式應該是以工作職缺數量為首要考量,選擇.NET、Node.js、
PHP,甚至是最近火紅的Rails,我想成功率都會高得多。
原PO之所以可以成功用Django轉職,運氣也佔了很大的成分。
一直以來都是很幸運的人,大學運氣好沒什麼唸書考上四大物理,
多益題本刷一刷不小心第一次就考了975分。
之所以挑出這兩件事情講,當然不是純粹想炫耀。
我個人認為如果要以自學的方式成功轉職,
最重要的有以下兩點:
第一點,邏輯以及學習能力(感謝母校物理系的學科訓練)。
第二點,英文能力。至少不能太差,你是要學程式不是學英文。
當你具備了這兩個特質,你就可以靠著國外的MOOC,快速的讓自己入門程式。
廢話不多說,正文開始。
以下會概括分為三個學習的階段,方便大家閱讀。
第一階段:Python好簡單,Coding好好玩之學語法時期
我個人是看Corsera的Python課程入門(有興趣請點 https://goo.gl/49wQIe)
共分為五門課程,前四門我都有認真的看過。教授講課幽默風趣,當你上完課,
你可以學到Python主要的語法以及資料結構,你會知道怎麼用Python爬網路上資料,
甚至會把資料存進SQlite而有了資料庫的概念。
這門課教授講的很好,我認為很適合作為無程式經驗者的入門課程。
當我看完這門課之後,利用學習到的爬蟲技巧以及SQlite資料庫,
寫了一個爬西斯版圖片的爬蟲程式,程式很簡單,主要邏輯就是設定要爬的頁數,
爬網頁版的西斯版,把圖片抓下來存在資料夾中,如果該頁有爬完過就寫進SQlite。
當然,你這個時期寫的程式絕對是那種埋了不少bug,
if、else、try、except混用而成的小怪獸,不要覺得可恥,
這些程式都是你的作品,你該覺得驕傲。
而且,當時的你,應該也不知道自己寫的東西很醜(笑
第二階段:一堆東西不懂、一堆東西要學之資訊爆炸崩潰期
當你進入第二個階段,你必須開始為之後要做的求職DEMO作品做準備。
隨之而來的是大量的資訊、術語以及你要學的東西,可能有點難熬,
不過請耐著性子,紮實的把這些資訊、術語吸收進你的小腦袋瓜,
之後Google會用到的,或著說,寫程式就是要常常Google? 至少我是(汗
這個時期我主要補充了幾種知識:
1. 計算機概論:
台大于天立老師線上開放式課程,邊看邊睡還是耐著性子看完了,
有多少的幫助不清楚,不過有看有保佑,至少能讓自己對Programming更進一步了解。
2. HTML以及CSS:
主要把Codecademy上的課程刷過去,刷了就忘沒關係,
記住一些terminology,你之後寫作品的時候,Google會用到的。
3. JQuery以及Javascript:
Javascript主要也是把Codecademy上面的語法刷過去,稍微做了解。
JQuery部分主要是看tuts+上的30 Days to Learn jQuery (https://goo.gl/x6t1Jz)
4.SQL
把基本的SQL語法在Codecademy刷過一次。
5. Django框架:
看了官方的tutorial、Youtube上一些Django的入門影片,
也看了The Django Book的前幾章,大致上知道Django在幹嘛但矇懞懂懂。
真正深入學習Django靠的是,Django By Example這本書。
寫程式學習最快的方式就是一直寫,當你認真的照著書上,
一行一行打出自己的程式的時候你會發現......
X!書上的code埋了很多Bug,不過你也無形中學會debug(?
總之,這本書蠻推的,如果要學Django框架的話,是一本能讓你從初學者變成,
比較不菜的新手的一本書,裡面用了許多不錯的library,甚至redis、celery等,
實務上用的到的東西,雖然你只是照著書上刻,但做出一些能run的東西也是挺開心的。
你可能會問如果想寫後端為什麼要學HTML、CSS、jQuery、Javascript等,
我才想問你不學前端怎麼做出網頁作品咧。
如果......
你只在自學的時期能只寫後端邏輯、API,
完全不做前端呈現就可以得到滿滿的成就感,我也是醉了。
好拉,至少對我而言後端資料丟到前端在呈現出來是個比較完整而有成就感的過程。
這個階段你會接觸到大量的知識,你必須大量的學習。
可能有時候會有點挫折,不過這些東西都會成為你下個階段寫作品的墊腳石。
你可能會因為大量接觸別人的程式碼而在這個階段,
對於語法、常用的語言資料結構更為熟悉,甚至慢慢開始懂得物件導向的概念,
像是學騎腳踏車一樣,似懂非懂,看多了,就好像懂了(?
最重要的是,在這個階段,你接觸了夠多的知識,你開始知道Google怎麼下關鍵字,
你可能不小心接觸了StackOverFlow,然後順便辦個帳號(?
第三階段:準備作品面試備戰期
身為非本科系半路出家的我們,取得面試機會的方式就是你的作品。
因為Django工作並不多,我當時碰巧得知StreetVoice網站是以Django為架構,
下定決心寫出一個跟StreetVoice一樣的網站證明我也有能力當junior developer。
後來面試完,無消無息又是另一段故事了...
雖然很無腦,不過我還是很感謝有StreetVoice這個網站能讓我不用去構思網站內容,
或許這樣很不creative,不過也省下了我很多的時間,能專注讓自己技術成長。
最後的成果是仿造出了我的DEMO WORK,個人覺得跟街聲網站功能有八成像。
完成的功能有:
1. 會員註冊、登入 2.歌曲管理介面包含專輯、歌曲上傳編輯
3. 歌曲、專輯喜歡功能,following、follower系統
4. 前端刻了一個Music Player播音樂
5. 為了聽音樂不中斷,全站採用AJAX,搭配html push state改變URL
大概由十二月中開始著手製作,
過年的時候做收尾並架在heroku上完成作品,約莫花了一個半月。
其實我很早就決定要做這個題目了,因此在還沒開始寫作品前,
沒事就會開始構思網站架構以及會用到的技術,大大減少開發時間。
---------------------------這是分隔線--------------------------------
當你經歷了以上三個階段,你就正式入門Programming了(應該吧
雖然你還很菜,但你懂了怎麼下google關鍵字,
你也能與人用專業的術語溝通程式的內容。
或許別人講的很多術語你很多似懂非懂,但重點是,你講的術語別人聽得懂,
那你就具備了推銷自己的能力了(X)面試的能力(O)
抬起頭來,自信的拿著你心愛的作品去面試吧。
當你經過了以上三個階段,你可能擁有的面試武器:
1. 語言、框架熟練度:以Python、Django為例,
你可能知道各種基本資料結構的操作(built-in method);
知道什麼樣的資料型態是mutable、immutable;
知道set跟dictionary是以hash方式實作,in的語法速度會比list還快;
你可能知道Django的MTV架構所代表的涵意,
你大致上知道Django ORM的Query要怎麼寫,
你了解request到response在Django中的大致過程。
而這些東西可能是你自己似懂非懂悟出的,
可能是你不懂的時候google看到一些技術部落格,看多了就學起來的。
2. 完整的專案經驗
雖然你的作品可能有點簡陋、code有點醜醜的,
甚至很多寫法都是從stackoverflow或是google上找來的,
但是你有了一個完整的project經驗,你證明了自己有辦法獨立寫出作品。
3. 打死不退的熱忱
要是沒有破釜沈舟的決心,是很難走過以上三個階段的,
展現出自己的決心說服面試官用你吧!
小弟我只面試了三家公司,
很幸運的被現任主管撿走在一家新創電商寫Django,基本上前後端都會碰到。
之所以會一直強調自己很幸運是因為,要是沒有找到這份工作,
我也不知道自己現在在哪兒流落街頭,也沒辦法打這篇文章了......
特別感謝我的女友、家人總是支持我做的決定陪在我身旁。
也感謝現在的主管、同事能夠包容非本科的我在專業知識上的缺乏以及不足。
希望這篇文章能幫助到想靠著自學轉職的勇者們!謝謝大家!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 124.218.11.14
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1497109631.A.D6F.html
※ 編輯: jly8061666 (124.218.11.14), 06/10/2017 23:53:05
吧。
選Django而不是其他框架單純只是選擇看起來最成熟,使用者最多的框架。畢竟你在初學
的時期根本不知道框架是什麼碗糕,應該算是誤打誤撞吧。
※ 編輯: jly8061666 (223.140.244.244), 06/11/2017 08:29:22
續唸碩班。當初本科系沒唸碩班單純是對竹科興致缺缺,也不想為了洗學歷硬是唸個碩班
。個人覺得每個唸理工都非得唸碩班不可蠻病態的...
※ 編輯: jly8061666 (124.218.11.14), 06/12/2017 21:19:25