寫給大學生的程式技能 Cheatsheets
昨天去參加 HappyDeisgner Mini #5 聽到 Caesar Chi 在講他跑校園傳道 (提倡 OpenSource)的故事,Caesar Chi 說他會這麼做是受到 Jserv 南下傳道的啟發。
為什麼要深入校園傳道。我想其中最大的問題是:大家都已經深刻發現了「校園的資訊教育」與「現行職場」、甚至與「國際技術圈」上的巨大差距。已經大到一個相當難以扭轉的狀態。其實,任何技術,在寫下來製成紙本教材並且搬到課堂的那一刻,就過時了。只是現在速度更快到,當你今年寫下來準備開課,明年這套技藝就已經有可能過時了。真的很難期待,從傳統學校傳授知識的過程中去介入什麼。
所以唯有提倡學生儘量跳脫只能在學校學習的思考框架。在線上學習( Online School )。多多參與接觸開源社群。
But, How?
在線上學習( Online School )。多多參與接觸開源社群。 對我們已經在工作的職業程式設計師,這個概念再簡單不過。但是我發現這對初學者來說,是一個很空泛的概念。他們其實更需需要的是一份 Guideline,有一個具體的方向去「自學」去把目標具體化。
(這份 Guideline 也是我回想若當初我剛出社會時,希望有人能給我的一份清單)
=== 分隔線 ===
Source Control
- 理解什麼是「版本控制」,為什麼我們要使用「版本控制」
- 學習 Git : http://try.github.io
- git commit
- git push
- git pull
- git branch
- git checkout
- git merge
- 註冊 Github 帳號
- 把自己的作業推上 Github
- Fork 同學的作業,幫他修錯字,然後拉 pull-request
- 卡關就上 Google 找 Stackoverflow 的答案
Do a "real" project
讀書跟做事不一樣。你不應該去「讀完」Ruby 再去用「Ruby on Rails」寫一個網站。
- 找一本可以教你作一個 project 的書(不知道去哪找可以上網問),從頭到尾貼 code 跟著作一遍搞懂架構以及學習 debug。
- 扔開書後的第一次:作一個比書裡面的 demo 還小的 project,如果裡面 demo 一個論壇,那麼就做一個留言板。
- 扔開書後的第二次:重新作一個簡單的論壇,不看書。
- 扔開書後的第三次:重新作一個有你想要的功能的論壇,可以貼圖,可以分享到 FB。
- 去找可以幫助你重新把程式技巧提煉的更好的書,重新補基本功(這時候你可以好好的看 Ruby 書了)。
- 去 Meetup 找職業的前輩,問他們怎麼樣可以更好的翻修你的 project
學習協作
獨自開發一個小東西,和實際上與多人一起開發一個中型結構的專案是完全不一樣的世界。而學校幾乎不可能有這樣的環境。
- 註冊 Trello 帳號(這是一個簡單協作、看板式的專案系統)
- 試著與同學或同事「合作」。但用 Trello 管理所有待辦事項。
- 重點是
- 把一件龐大的目標拆分成數十個可以執行的小事項
- 每一樣事項有各自的狀況。現在做到哪裡,還缺什麼,需要交付的材料,多久才會做完,遇到什麼困難
- 不要用 Off-book (phone/email) 的管道溝通
- 有問題就提出,不要藏在台面下。
- 每一件事都應該要有一個可以指派的人
分享(程式碼以及文章)
不斷的貼 code 以及練習在網路上發表文章,可以強化你的表達能力與邏輯組織能力。知名軟體公司 37Signals 甚至表示,他們不太注重程式底子,只雇用「寫作能力」良好的人。因為寫作能力強大代表著:組織能力與邏輯能力強。
這不是什麼可以速成可以偽裝的東西。同時不斷發表東西,連帶的效應就是可以幫你建立 reputation,和讓別人發現你的存在
- 把學到的東西發表到 Blog 上面。(不要怕害羞)
- 即便是小小的程式片斷也貼到 Blog 上。
- 不斷的貼 code 以及練習在網路上發表文章,
- 把自己作品放到 Github 上
Learn English
這裡說的學習英文不是說去背單字,上補習班,考 TOEIC。而是:
- 練習幫自己在 Github 的 Project 上寫 README
- 有辦法在在 Github 上用英文 open issue / reply issue
- 在 Stackoverflow 上用英文問問題
- 訂閱社群電子報。(尤其讀社群電子報,如 Ruby Weekly,是個學習 Ruby 非常快的方式)
- 聆聽社群 Podcast。(社群都會有一些 Podcast,短的 5 分鐘如 Ruby5,長的 30-45min,可以很快的讓你抓到這個禮拜世界上最新的重點是什麼)
- 購買線上教材。(現在網上學習的教材都比大學教科書便宜非常多,有些甚至不要錢。不過他們都是「英文」影片以及作業)
=== 分隔線 ===
小結:
這是由我過去的實戰經驗總結出來的 CheatSheet。當然,這些事我並沒有說都是非常「輕鬆」做到的事。但我可以向你保證這些方向,如果練成都是「非常值錢非常具有競爭力」的技能。認真執行三個月,你「馬上」可以見到與台灣完全不一樣的那個世界。