[成為programmer之路] 完全自學指南

114 回覆
29 Like 110 Dislike
2021-01-18 09:41:22
有意見認為, programmer係低技術工種, 唔洗degree, 可以靠自學而搵到工
咁我就以過來人身份講下 從自學programming到搵到工 係有幾易(或有幾難)

1. 如何開始
開始時, 我冇IT相關degree/diploma, 僅有既只係中學時上過既電腦堂知識, 果陣我間學校廢到連pascal都冇教

由於讀乞食科, 畢業後前路茫茫, 為生計只能做住苦工先
有日諗到如果識得同部電腦溝通就好喇, 於是搵本學C Programming既書,Kernighan & Ritchie (K&R)去睇

本書當你係白紙一張乜都唔識, 由零開始教 所以好適合當時我依d行外人睇

2. 基本工具
為左一嘗寫programme滋味, 我係自己部windows notebook裝左個叫cygwin既軟件https://www.cygwin.com/ 因為裡面有個gcc compiler用黎compile C code

然後就係㨂個靚仔text editor, 果陣時用sublime text editor, 依家有vscode, sublime out了
https://code.visualstudio.com/

有text editor, 有compiler, 就開始跟住本K&R逐個example去做
2021-01-18 09:46:48
揼code唔難
揼靚code先難
2021-01-18 09:54:42
留名
2021-01-18 10:06:01
3. 基本概念
每隻programming language都有自己既一套primitive data types
C黎講, 就係 int, float, double, char等等

我人生既第一個programme就係類似咁
/* test.c */
#include <stdio.h>
int main() {
  int a = 1;
  int b = 3;
  int c = b - a;
  printf("b - a = %d", c);
}

然後save低, 係cygwin 個terminal度打 (如果冇記錯)
gcc test.c -o test && ./test
就會出result, 感覺巧神奇
2021-01-18 10:08:53
lm,巴打繼續出,順便負個皮
2021-01-18 10:22:51
技術債遲早要還
睇係你定你下家
2021-01-18 10:25:47
如果學打兩行code就入行
我諗可以諗定40歲後做保安定行乞
2021-01-18 10:36:11
4. 最難捱既時刻
就係debug, 當我跟住K&R d練習做到越來越深入時, 有d位例如memory allocation, bit size之類成日犯錯, 成日要睇console error messages

compile error還好, 一遇到runtime error時甚至要成個file幾百行code不停重覆咁睇去搵d bugs出黎, 所以係後期做親練習一做就係個幾鐘到半日, 相當唔慣
2021-01-18 10:52:20
2021-01-18 10:55:29
programmer/it係香港唔係專業
又可以好似保安咁上幾日堂就開工
人到中年咪過support team做接線生制

design pattern? algorithm? 舊野行到咪得lol
睇完bootcamp 到時有咩唔識就google
有邊個打program唔洗stackoverflow

然後坐房果堆code都唔識揼 man day都唔識計 有咩function做到做唔到 總之應承左個客先
2021-01-18 10:57:52
做programmer唔難
做software engineer先難
巴打加油💪
2021-01-18 10:59:26
5. OS既重要性
個幾月之後, 開始習慣dup code, 於是諗下有咩可以令個過程方便d

點解咁多IT人都話用linux, 係唔難理解的
由於寫programme好多時要用到libraries (要下載的,除非自己寫)
cygwin 唔係linux OS, 所以漸漸覺得好多限制 (相容性問題等等)

於是知道要用linux, 就揀左ubuntu要裝落部PC, 變成有兩個OS
點解唔用virtual machine? 因為想ubuntu 直接access部PC既resources

join左linux之後好多野都快左, linux本身用既資源少過windows, 但firmware 就冇得用原廠proprietary firmwares, 所以有時要switch返windows去做其他野
2021-01-18 11:02:53
title野, 實際根本無分別
2021-01-18 11:40:08
5.1. 新手programmer知識及裝備一覽
- essential knowledge on at least one programming language (including syntax, data types, development environment etc)
- knowledge on binary and hexadecimal operations
- knowledge on data structure
- knowing your OS
- having a comfortable working environment
- knowledge in using emacs or vim (to save your time)
- a good text editor or IDE
- knowing how to ask questions (you will encounter a lot of new problems and you need help)
- joining the community (e.g. github, gitlab)

有齊基本野, 就可以開始睇下人地點起project, 或幫人執下code當練習
又可以做下challenge 例如 https://www.codewars.com/
2021-01-18 11:43:44
頭一嘢就揾本 K&R 嚟睇
超人嚟!
2021-01-18 12:05:19
6. 選揀未來既方向
擠身成為programmer就係逆水行舟
你前面有班經驗多過你既前輩, 後面有無數追緊上黎既新手

基本野穩定後, 係時候決定未來既方向
幾個大方向有: software development, game development, web development, cyber security etc.

決定完方向之後, 係一輪既進階學習同煅煉
2021-01-18 12:08:05
K&R我用黎擺
2021-01-18 12:16:02
以前窮撚 得一部machine
2021-01-18 12:17:58
分享下
身邊都有啲大學商科人想轉行做it
又話it係大方向 又話打code好過對客咁

然後真係叫佢落手睇introduction for java呢啲書/網
淨係學syntax 都搞唔掂 基本logic都唔識又每次都問問問
一係就識左loop while for呀呢啲就覺得夠料去搵工
情況就好似你識左用煲 刀 同 微波爐就去應酬做廚咁

programmer本質同商科學既野差好遠
商科啲野好多時任你吹 又唔會去做ab test去睇成效
但programming 真係做行code都係logic
你錯一樣野就error
真係要落手落腳做 浸返黎

同埋it真係靠自學
唔好天真到以為有it工請左你就可以問同事教
你拖到人進度實比人屌
2021-01-18 12:22:17
連登班CS本科IT人好撚憎人話Programming可以自學架
次次一講起就話人地剩係識寫Code
唔識Design Pattern, algo
唔講以為呢D topic網上冇資源學, 剩係大學有教咁
2021-01-18 12:25:04
不過而家上網D資源好多
睇完基本再睇一D step by step既教學去做
見有terms唔識就再搵,都好容易整到一兩件見得人既product
不過如果自己搵都懶既,唯有比錢讀bootcamp啦有人搵齊料比你,仲有真人live教學答問題
2021-01-18 12:35:53
比較想知
既然你本科唔係it cs
咁你係點樣入行 第一份it狗工係咩?
點樣說服到人地請你 而唔請其他人? eg. freshgrad
2021-01-18 12:52:23
之後學java, 整幾隻簡單既gui software擺落portfolio
第一份it工係agent幫我搵, 我諗會請我除左係因為有portfolio, 個agent都應該好努力咁說服個客
吹水台自選台熱 門最 新手機台時事台政事台World體育台娛樂台動漫台Apps台遊戲台影視台講故台健康台感情台家庭台潮流台美容台上班台財經台房屋台飲食台旅遊台學術台校園台汽車台音樂台創意台硬件台電器台攝影台玩具台寵物台軟件台活動台電訊台直播台站務台黑 洞