[爆卦]零基礎寫程式是什麼?優點缺點精華區懶人包

為什麼這篇零基礎寫程式鄉民發文收入到精華區:因為在零基礎寫程式這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者cjamhe01385 (徹)看板Soft_Job標題[心得] 轉職工程師,自學程式失敗心得時間...

零基礎寫程式 在 ?蔡總?Sissi (蔡昀羲) Instagram 的最佳解答

2021-07-28 01:57:30

我還好好的,你們都好嗎? 疫情期間清掉了一些讀書債、 遊戲債、打掃債、學習債。 碰社群的時間少了, 思考的時間多了。 不知不覺不管是什麼形式的發文, 自己的筆觸都變得很無傷大雅、很清淡。 好像沒有什麼大起大落想透過社群表達, 因為一旦試圖描述起來, 只怕三天三夜都寫不完。(就像這篇) 大概...


(修改標題名稱,供之後板友們可以搜索到這篇文章)

學歷:
台科大企管系
英國電腦科學(轉職)Computer Science Conversion 一年碩士學程

工作經歷:
5年新創小公司線上行銷兼PM

Offer:
外商工程師,主要使用C++ / Java

自學失敗警惕之路:

兩年前就開始準備轉職,自學程式和念英文考IELTS,打算出國留學
出國前自以為認真地學程式,還參與公司內平台架設專案,覺得自己應該會程式
豈知等到真正出國留學後,才發現自己根本就是亂學,整個打掉重練
因此在即將畢業並順利拿到Offer的這時候,分享自己自學失敗之路
希望打算轉職或自學程式的人不要犯跟我一樣的錯誤。

錯誤1 - 過度重視功能實現,輕忽觀念建立,本末倒置

自以為能將功能實現,就代表自己會程式,豈知根本就是錯誤觀念
要實現一些功能不難,上Stack Overflow找的到很多範例
結果導致自己只會修改別人程式碼,只會複製貼上,觀念一點都不清楚

- 我用Java,完全不知道Java是Call by value
- 我用MVC Framework架網站,然後自己不會建MVC框架
- 我用API,但是看不懂官方網站上寫的API文件
- 不懂資料結構,不會寫linkedlist,只會用library提供的linkedlist

有清楚的程式概念,才能讓功能實作過程事半功倍
另外,我上過台大資工開的進修課程,但我認為他不會教你清楚觀念
所以到頭來還是只會實作,對於程式觀念非常模糊(我還是班上成績最好的)

錯誤2 - 到處東學學西學學,導致對各種語言用法都不深

我那時候自以為自己會寫PHP、會寫Javacript、還會MySQL
結果後來發現根本都是在很入門的階段
- 不知道Javascript同步異步處理
- 不知道SQL prepare statement / 正規化
- 完全忽略SQL script在搜尋時所需要的時間消耗

後來我在留學時,專心學C / C++
等到其他作業要改用Java和PHP時,我發現上手速度很快
寫之前先搞清楚語言之間的差異性和寫法,然後就可以開始寫
遇到需要標準Library所提供的API時,上官網查一下就好

我相信一定有人可以自學學得很好,但我也覺得一定有很多人跟我一樣
用錯誤的方式在學習程式,只學到程式表面功夫,卻學不到核心觀念

我很慶幸我選到一個理工科專門學校(非廣告因此不提供學校名稱)
教授師資很好很嚴,看學生作業相當仔細,會一行一行標出錯誤,還會糾正你的命名
因此在留學期間導正我錯誤的學習方式和幫我建立起基本概念
讓我在一年後可以自己實作Design pattern並順利轉職

當然我不是要鼓勵大家出去留學,而是想要提醒也是自學想轉職的人
如果你跟我以前犯的錯誤一樣,那是時候調整學習方式

希望能幫助到轉職或是自學的各位


--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 137.222.114.244
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1498164525.A.CF6.html
※ 編輯: cjamhe01385 (137.222.114.241), 06/23/2017 05:07:01
pppoe22222: 跟你的情況滿像的,上課和自學了一段日子,但上班後發 06/23 06:43
pppoe22222: 現自身的不足,在考慮還要繼續下去嗎......還是回原 06/23 06:43
pppoe22222: 本的行業。 06/23 06:44
win30221: 我自己是2,都一知半解的 06/23 07:31
rollr: 哭著看完這一篇 06/23 07:45
F14A: 推,有些是連本科系的學生都會犯的錯誤 06/23 07:57
sppqre: 推 有些真的都是一知半解... 06/23 08:05
IcelFFs: 推一個 甚至多碰很多程式語言還會以為自己很強..我當初就 06/23 08:14
IcelFFs: 是這樣 06/23 08:14
Kennyq: 一知半解,有學等於沒學,能出國的錢不如拿去補習班學原理 06/23 08:20

我沒後悔去留學,如果台灣有開設轉職系所我一定去,可惜沒有

shvanta: 如果你真的希望幫助到轉職或是自學,提供學校名稱比較好 06/23 08:20
monoceros629: 英文好重要,英文學好了,才能看api文件比較不吃力 06/23 09:08
abc0922001: 推 06/23 09:19
Ekmund: java的call也不能完全怪你 說起來它並不是真的call by val 06/23 09:43
Ekmund: ue 06/23 09:43
BBSealion: 其實也並不算錯誤,切入點不同而已,先學基本也可能會 06/23 09:45
Ekmund: 沒有記憶體概念的前題下弄不懂很正常 你無法實踐某些資料 06/23 09:45
Ekmund: 結構也是同原因 寫得出來跟懂真的是兩回事 06/23 09:45
BBSealion: 失去興趣,先學實作則是容易變成自以為懂而不自知 06/23 09:46
elements: 比較像是撞牆期 不算是失敗了 06/23 09:47
BBSealion: 一邊實作,碰到不懂時找時間深入研究,大量看強者的 06/23 09:47
BBSealion: code,看不懂就代表有東西學,這樣就會持續進步了 06/23 09:47
WashFreeID: 推 不過我看書上也說大部分工程師不會自己去實作mvc啊 06/23 10:07
WashFreeID: 懂就好 06/23 10:07

我表達不清楚,是我用MVC框架,結果根本不知道他是如何運作的,當然也不會實作

ap954212: 實作跟觀念要並行 06/23 10:22
RedMapleWing: 說去補習班學原理…我很想知道那間補習班有教原理 06/23 10:24
Sunal: 不算失敗 應該說自學的方向太偏實作..應該要兩者並行 06/23 10:30
sing10407: 一開始直接實作的好處是成就感高,較不容易放棄; 06/23 10:38
sing10407: 反之一開始就去念你所謂的基礎,很多人應該唸不下去。 06/23 10:38
InfinitySA: 推 其實實作就是練習 學習任何東西都一樣 06/23 10:43
InfinitySA: 學會了 還是需要不斷磨練 所以要並行 06/23 10:44

謝謝幾位,我在打文章當下真的覺得我自學很失敗

實作所獲得的成就感,都在上正規課程之後消失殆盡

MOONY135: 語言就是語言而已...基本功能查查就有...更深的東西 06/23 10:44
MOONY135: 是GOOGLE找不到的 06/23 10:44
lovez04wj06: 別說基礎了,多的是連直接做功能都有問題的.... 06/23 10:47
npminstall: 台灣的職場環境就重實做應用 06/23 10:48
InfinitySA: 不過原po說的觀念 很多其實是程式課程沒教的 @@ 06/23 10:49
lovez04wj06: 然後有的時候,是公司體質問題,學基礎就算會,還不 06/23 10:49
lovez04wj06: 如直接拿別人輪子,只要能用別太誇張就好。 06/23 10:49
InfinitySA: 只學寫程式 很多東西會漏掉也不能說是你的問題 06/23 10:50
InfinitySA: 像提到linked list -> 資料結構 演算法 06/23 10:51
InfinitySA: SQL 查詢指令 -> 資料庫系統 06/23 10:51
InfinitySA: 每一門都是專業啊 QQ 06/23 10:52
InfinitySA: 能一知半解已經不錯了 XD 06/23 10:52

安慰謝謝,因為我以前自大還自認程式很快可以上手,豈知自己根本井底之蛙

needshe520: 感謝分享 06/23 11:04
s25g5d4: 明明就 call by sharing, Java 人都喜歡稱 value, 我們 C 06/23 11:09
s25g5d4: ++ 派的都被搞混了 06/23 11:09
InfinitySA: 真的 還偏偏都是類C語言 XD 06/23 11:10
InfinitySA: 不看還好 看了一知半解容易搞混 06/23 11:11
InfinitySA: 剛學會C++和Java後 在實作上也常常有問題 06/23 11:14
InfinitySA: java不讓我能直接對記憶體位置動作 QQ 06/23 11:14
nova06091: 推 根本在說我 06/23 11:17
thea: 還是想問問是哪間學校XD 06/23 11:24

University of bristol

shadow0326: 知道自己不足就強過一堆人了 06/23 11:28
jkln: 反過來,修過很多課懂很多會寫白板題但是實作經驗不夠的也 06/23 11:30
jkln: 不少。只要知道自己缺什麼,懂得改進都算是成功的開端吧 06/23 11:30
panda04056: 覺得標題太灑狗血 自學過再接受正規教學才會容易發現 06/23 11:31
panda04056: 自己哪裡曾經搞錯 06/23 11:31

沒錯是有點誇張,但我想保留這詞,讓之後想轉職的人在搜尋時
會注意到這篇文章,以及本篇文章所有前輩們的留言

alog: 去學學rails吧 06/23 11:37
kiawe: 推 06/23 11:42
LinuxKernel: 學Rails是有什麼差別...。 06/23 11:54
LinuxKernel: 認真說,不會自己寫MVC框架倒不是太大問題,至少對 06/23 11:55
LinuxKernel: MVC本身甚至與其他架構的差別有所瞭解就夠了。 06/23 11:55
LinuxKernel: 之後再循序漸進,慢慢拆解去瞭解輪子怎麼造。 06/23 11:56
LinuxKernel: 看不懂API文件就有點妙,不確定是英文的問題還是? 06/23 11:57

因為只會複製貼上和修改,看不懂建構子也看不懂為什麼要這樣引入參數

glory5566: 話說這樣算起來你做行銷的薪水也不錯吧? 06/23 12:09
glory5566: 如果去英國的學費生活費都是自己存這樣算 06/23 12:09

家裡不需要我付出,同時吃住也靠家裡,因此存錢會比較快些

chatnoir: 你寫的linkedlist未必好過java底層提供的 06/23 12:24
chatnoir: 去思考要如何應用各種形式的list反而比較有重要 06/23 12:25
chuegou: 只重功能就是會這樣 板上經常有人說domain knowlage 06/23 12:26
chuegou: 我都在想 在非本科轉職板講domain knowledge是要害死誰 06/23 12:26
pttworld: 維護案還是可以,開發案就倒了。 06/23 13:01
ckp4131025: java有些list不是by value 06/23 13:27
leoloveivy: 我們都是站在巨人的肩膀上啊,有時候真的不用太care 06/23 13:51
leoloveivy: ,keep going 06/23 13:51
lance8537: 來問個問題,python是 call by value還是reference 06/23 14:13
lance8537: 還是都不是 06/23 14:13
WashFreeID: 不過這標題... 哪裡失敗了? 06/23 15:02
devilkool: 非本科轉職版XD 06/23 15:05
TitanEric: 回樓上問題 都不是 Python是call by object reference 06/23 15:06
Luos: 學習不就是這樣的東西嗎 06/23 15:22
QoiiwWe: 用library提供的linkedlist不自己寫 不可以嗎 06/23 16:05
Argos: 可以阿 但是面試你會被笑 基本上那些都是拿來面試用的 06/23 16:12
dm33: 能知道自己的問題 那就是解決了那個問題了 06/23 16:51
pobov: 覺得只是 2年前 跟 2年後 的差別 06/23 17:11
elements: 實務上當然不會自己寫 寫過只是知道他每一種操作的優劣 06/23 17:21
elements: 勢和效能分析的方法 因為你知道他裡面在做什麼 所以面 06/23 17:21
elements: 對沒有遇過的問題的時候你才能夠用合理的方式思考 06/23 17:21
elements: 喔不過也是有機會自己寫基礎資料結構啦 當你最佳化到標 06/23 17:23
elements: 準函式庫不能滿足你的時候 06/23 17:23
ahahahahah: 這樣花多少錢啊 06/23 20:16
darkMood: 好書要整本讀通看完,這點能做到,就少了很多問題。 06/23 22:31
darkMood: 但實際上找工作程式會動就好.......... 06/23 22:32

可能我需要有觀念清楚的老師領導我學習吧,我自己看真的一知半解

airtsubasa: 換個想法,你用的php不也是一種工具,到時php消失了, 06/23 22:41
airtsubasa: 不就什麼都沒惹,所以自己要創造出一套語言?XD 06/23 22:41
qitisland: 真心覺得Design Pattern 要跟基礎程設一起學... 06/24 00:37

感謝以上各位前輩建議和想法
※ 編輯: cjamhe01385 (137.222.114.240), 06/24/2017 01:02:17
※ 編輯: cjamhe01385 (137.222.114.240), 06/24/2017 01:07:40
ACMANIAC: 這篇不錯,但自學失敗轉職成功,也是成功了 06/24 01:37
darkgerm: 用 library 的 linkedlist 不是壞事 06/24 01:41
darkgerm: 但必需要懂 linkedlist 的原理,才不會寫出效能差的code 06/24 01:42
clamperni: 假鬼假怪 哪裡失敗 06/24 10:55
carapple: 從womentalk板來這,最後是哪間外商呢? 06/24 11:30
ACEgolden: Java's objects have pointer semantics 06/24 11:51
ACEgolden: Which means, the "value" of an object is its addres 06/24 11:51
ACEgolden: s. I suggest you think about the word you use. 06/24 11:51
wtao: 可以考慮 換個工具或語言 有時候是 資源太多了 你不會運用 06/24 12:07
chrome: 推 06/24 12:11
descent: 沒失敗的感覺, 是個成功的轉職 06/24 12:24
descent: 其實還蠻想聽聽轉職失敗的經驗, 但應該沒人想寫吧! 06/24 12:25
descent: 成功的經驗聽到的比較多 06/24 12:25
silver2012: 很棒的自我反省 06/24 12:26
cplusplus426: 會知道自己有不足的其實都有一定程度 06/24 12:53
Sunal: 很多人也是複製貼上阿 但是也是要看懂了才貼 只要能work 06/24 13:33
Sunal: 就貼上去用 很抖的 06/24 13:33
DissAivent: 推 06/24 13:35
ggttoo: 多學是好事情,還是要有求知的慾望,不然甚麼課程都沒救 06/24 17:30
babypanda: 推 06/24 19:22
shinmeteor: 你應該要註明。有個富家庭才能有自學失敗的可能。你以 06/25 00:08
shinmeteor: 為別人都跟你一樣靠家裡? 06/25 00:08
shinmeteor: 說穿了就是靠爸族還在假鬼假怪 06/25 00:09

我們家狀況的確沒有很糟,所以我不用給家用費,也住家裡
但我學費是自己存的(5年100和50貸),我離職隔天馬上飛去英國接上課
如果我真是富家庭我不必這麼辛苦

penolove: 推 不覺得假鬼假怪, 原po自我要求較高 ,家庭也是實力 06/25 04:18
penolove: 有資源不用才是傻子 06/25 04:18
zerozzz7887: 推分享 06/25 08:37
※ 編輯: cjamhe01385 (137.222.114.240), 06/25/2017 10:56:59
GTim: 推分享,讓我再次省思自己的學習狀況。 06/25 11:10
amigcamel: 推 感同身受 06/25 15:03
htury: 還好阿,初學本來就是功能實現,有些連功能實現都做不出來 06/25 23:19
htury: 之後朝功能整合,效能調教,擴充彈性..等方面持續努力 06/25 23:22
answermangtr: 推 我非本科 出業一年跟你狀況一樣 06/25 23:34
m09456010: 很不錯了 資工資管畢業不會寫程式的一堆 06/26 08:02
InfinitySA: 樓上 會寫程式 但只是該有的功能會動而已 優化不佳 06/26 09:11
InfinitySA: bug漏洞一堆的 更多 06/26 09:12
InfinitySA: 包括我也是 XDD 06/26 09:12
InfinitySA: 尤其工作後 常常會被前輩們的coding style和使用的框 06/26 09:12
InfinitySA: 架限制住 這時候就知道該學會的知識有多重要 QQ 06/26 09:13
shinmeteor: 資管畢業會寫程式的大概只有1% 06/26 11:57
IhateOGC: 我不覺得你現在會寫程式 06/26 14:45
IhateOGC: 照你這說法,就別用print這 function 06/26 14:46
clarkman: 其實我覺得錯誤一的很多不是都很基本嗎...面試時都會考 06/26 20:54
eddy50811: 您好,想請問為何會想轉換跑道XDD 06/27 01:30
gust0985: 能看得懂也改得動,已經很讚了…… 06/27 08:42
catem: 不用給家費就不辛苦阿...... 06/27 08:48
lovelycateye: 不可能每個都深,人一天只有24小時,除非你天生神力 06/27 14:20
lovelycateye: 我也只是樣樣通樣樣鬆,但要做個東西也還是沒問題 06/27 14:21
APTON: 多謝分想.... 某S根本ㄏㄏ 大概是自己窮 學的辛苦就眼紅吧 06/28 11:22
APTON: 分享 06/28 11:23
argc: 推! 06/29 09:17
shinmeteor: 某A根本ㄎㄎ。發廢推文也這麼自high 06/30 00:54
Omitopho: 推 我覺得這種文章很棒 07/01 10:30
SeungHsu: 謝謝分享啊! 08/01 11:09
nksv526: 116然人包 挫折到失敗 07/08 21:49
nksv526: 中文都沒學好... 07/08 21:50

你可能也想看看

搜尋相關網站