【網友詢問】我有學過不少程式語言,但太久沒碰都還給老師了,這是否代表我現在的程式能力是0呢?

你讀什麼那只是你的文憑,不代表你將來就要幹這一行.jpg

網友來信詢問:
我之前有詢問歐飛先生有關資訊相關證照的問題,歐飛先生有專文回覆,我看完後有些許問題,想請教歐飛先生,其問題如下:

問1.
我的學習進度都跟著學校走,我之前有學過、VB、VBA、JAVA、C#、C、PHP、HTML、JavaScript、SQL,不過似乎都太久沒碰了、沒有持續開發程式專案,我所學的程式語言都忘記、還給老師了,請問歐飛先生,這是否代表我現在的程式能力是0呢?


歐飛:
你有學過,但太久沒碰,也沒有實際專案經驗,你也明講都還給老師了,那你現在的程式能力跟0是差不多的。

其實任何一位資訊相關科系的同學都學過這些,我20年前也學過,真的,我20年前學過,但這種在學校學過,沒有實際寫過案子,基本上跟沒學過是一樣的意思。

出了社會老闆要的是你的實戰經驗,而不是你有沒有學過,相關科系的都學過啊~




問2.
我是不是應該找一個感興趣的程式語言,去持續開發程式專案,增進該程式的熟練度?

歐飛:
你如果真有興趣,你剛剛上一題就不會說「都還給老師了」,我覺得你大概率是對程式設計沒興趣,也不熟練,說不定還沒有天份。

會寫,跟寫得好,是二回事。

特別是在程式領域,你會一點皮毛,你都可以說你會寫,但你有辦法靠某一個程式,完成一個專案嗎?  (例如你的畢業專題,你是用什麼程式寫的?)

再來,會寫是一回事,你寫的好不好,而且你有沒有興趣,那是另一回事。

從你的問題中,我感覺你對程式是沒有興趣的。

這樣真的要你去學,你會學的很痛苦,你花時間可以學一個入門,但要學到吃程式設計這行飯,這條路真的不好走。

我還記得我當年讀資管科的時候,剛開學老師就明講,你們班畢業,如果能有1~2個程式設計師,那就算很好了。

我後來讀資管系的時候,也是同樣的問題,事實證明,我們全班畢業後,只有一個同學做程式設計師,而這種人,通常都是在學校已經很會寫程式了。

而這兩位同學,幹了幾年程式設計師後都換跑道了,不幹這個,為何? 程式設計真的需要天份,你天份不夠,這行飯你吃不了。(對了,這兩位都是女同學,我們班的男生全軍履沒,一個程式設計師都沒有)

 

 

問3.
因為程式語言實在太多種了,現今的軟體開發、程式相關工作,是否強調所謂的「即戰力」?例如我現在熟悉PHP、HTML,請問歐飛先生,未來是否可以應徵大學有學過,卻不熟悉(練)的程式語言(例如JAVA、C#、C)的工作?還是說我熟悉(練)PHP、HTML,未來找工作時,就專門找PHP、HTML該領域的職缺就好了?

歐飛:
不同的程式語言,語法是不同的,但底層邏輯都是一樣的,你只要能精通一種程式語言,你改學其他的就很快。

你面試的時候老闆最想知道的是你到底精通什麼,精通到什麼程度,然後重新學起。

學校教的,跟業界用的,真的都不一樣。

不管你之前會什麼,反正進了業界就是又重新學起。

所以從你的問題,我感覺你很焦慮,你什麼都不會,但想要學,還想要快速的學,無解。

這種事,快不了。

在學校為了應付考試,你可以快,但真的要吃這行飯,那快不起來。

其實不光是學程式,都一樣,都快不起來。

所以你問我學什麼最有即戰力,我無法回答你。

但你列出來的那些程式都只是一個基礎,會這些還找不到工作,真的。

你要有實際的工作經驗,就算沒有,那也要有實際的作品,這種才有用,其他的都沒用。

連證照拿出來也沒用,你有證照,但問你什麼都不知道,搞屁。

其實也不需要問你有沒有證照,但這個我題我不用再回覆了,之前兩篇專文回覆我直接附在下面:


1、你會建議修乙級相關課程並考乙級證照嗎? 你對資訊相關證照「證照無用論」有何看法?

2、時間有限,考證照跟準備作品集,哪一種對未來找工作比較有利?

 


 

補充:

我想要說的是,每個人都曾經會有這麼一段,快要畢業了,但自己好像什麼都不會,也不知道能不能找到工作,怎麼辦?

答:先畢業,然後找工作,船到橋頭自然直。

第一份工作不要看薪水,要看公司、看工作內容,看未來發展。

另外,盡可能找你有興趣的,擅長的,做你有興趣的這樣就算薪水少一點,你至少做的開心。

還有一點,你是資工系,沒有人規定你讀資工,將來就要做資工(資訊)相關的工作,你讀什麼那只是你的文憑,不代表你將來就要幹這一行。

 

相關文章:【網友詢問】請問歐飛是什麼契機,決定要做電腦組裝這行呢?

19 則留言

  1. 某些職缺可能會有更極端的地理分布(ex.職缺大量集中在雙北、高雄之類的),所以有可能會演變成投入該職業要租房或每日跨縣市通勤的情況;但可能有些人的情況只想找個自己居住縣市市區的職缺就好了(或是頂多隔壁縣市)

  2. 請教樓上丙兄最後一句「或是不易找到都會區以外的工作機會」為何特別這樣指出?一般大眾印象中應該都是比較想找都會區的工作機會吧?想瞭解您的高見,謝謝~

  3. 我是#6留言的。不好意思,我說的就是以就業為導向的程式設計是可以練起來的。困難不困難這件事因人而異,我也沒有說從學習到找工作這段過程是簡單而不辛苦,但我不同意的是以天份差作為藉口。在矽谷待過的公司裡面,有太多工程師當初根本不是相關科系 有的也是在其他產業工作好幾年,並且利用閒暇時間去進修研讀程式設計內容,反覆失敗好幾次(通常是演算法資料結構不夠扎實)然後最後進來工作。我個人在業界的經歷是軟體工程師這個職位相比於其他行業,算是對於過往背景要求不那麼高的,而比較著重你解決事情的能力。可以看到有的新進同仁是頂尖大學cs畢業的學生進來,也可以看到有之前當小學老師教英文進來的,當房屋仲介…太多了。對於原po發問我是有感觸的,我大學是理工科系但非相關背景出身,也跟原po很像學了不少語言但後來沒有繼續,畢業後好幾年相繼在一些科技公司任職工程師(不是軟體工程師)過程中也如原po一樣很猶疑到底要不要轉行、來不來得及、不是相關背景怎麼辦? 後來還是決定試試看,累積一些存款後申請美國cs碩士 也是經歷各種坡折之後在加州灣區找到軟體工程師工作。過程一點都不輕鬆,但真的要我說的話,我覺得很多人失敗最大的根源往往都是自己給自己太多藉口(可能不適合這行、可能天生資質不夠、背景就比人差…)與其花時間想這些,不如努力拼拼看,自己都不給自己機會試試怎麼知道行不行。

  4. 說起就業導向…,這可能也是他提了PHP又提其他語言的可能原因之一(PHP的行情”相對來說”可能較為低薪)->但若是這樣,那可能還是幾種常見策略,要嘛找平均起薪高的語言/框架全力投入學習(但要注意國內/外對相關人才的需求量可能有所不同)、要嘛找當下討論度高的(但競爭者眾->有可能起薪還是慢慢降下來)又或是劍走偏鋒走極其冷門的(ex.某些銀行業有在培訓一些相對舊的語言的人才,但反過來說未來出路可能就很限定,或是不易找到都會區以外的工作機會)

  5. 假如當初真的有認真學過那些程式設計邏輯,我不認為他現在能力是0,語法忘了但基本概念了解就很快上手,現在有心想要練起來不覺得是什麼問題。程式設計沒有想像中深奧吧,實話實說我不覺得有到天份不天份的程度,這不是什麼艱澀的數學、物理,頂多就是演算法那邊可能會要比較花時間去研讀練習。我看過有同事大學學不好或是沒興趣的,30多歲開始練,最後在矽谷fang上班的人。 退一萬步說 就算當初沒學好也不代表現在打掉重練就沒機會,真的有心我覺得再多技術都可以克服 最怕的就是那種一次沒學好 就隨便給自己藉口說自己沒天分不合適 要是沒天分都能當作藉口 很多工作都不比寫程式簡單 (精算師 律師 研發科學家 太多了…)。願意花時間和心思下去 不認為是問題。

    • 要討論,要講什麼,我覺得都可以~~
      但實際上,從原PO講的,然後是以就業為導向「程式設計師」,以他的情況,我是覺得真的沒有那麼簡單

  6. 另外一種思路是:先想你打算做什麼(WEB/APP/資安…),再決定你要強化/惡補的項目是什麼。ex.你想做APP,那可能要先選擇你要做Android、iOS或是全都要,然後依此來選擇語言(Android原生->新專案應該大都用kotlin但某些舊專案可能還是用Java;iOS原生->Swift;跨平台->現在比較熱門的應該是Flutter)

    也可能需要知道一些相關領域的技術,ex.會員/身分的第三方認證/登入會用到Oauth2/Openid的概念、某些重要資料儲存/傳送時會用到加解密或簽驗章的技術->這塊除非你demo時就決定要實作,不然多半是進職場後,根據被分配到的工作項目再去學的

  7. 再怎麼樣,語言的核心觀念跟邏輯應該都還留著(語法什麼的,查一下很快會回憶起來了);其實與其問現在能力是不是為0,不如去驗證看看。做leetcode上的題目或是自己找個小主題/小功能,選定1至數個語言下去實作->前提是你還是想靠程式這塊當成你的工作

    其實即戰力跟新鮮人有時也很難界定…,但建議是先專攻最有把握的(除非求才方要做的東西你有興趣且他們有意願帶近乎無基礎的新人,不然你熟練度不夠的話,面試/筆試/上機測驗等環節就不易拿到高分)

    另外是廣度問題,ex.重後端輕前端的情況下,你最好還是要會簡易的ajax、javascript,相關框架不會倒沒有那麼嚴重;反之,可能需要知道後端可能會回傳什麼東西回前端(restful API)

    當然,也有不管選什麼語言都建議你摸熟的,如上面有人提到的SQL語法(某些資料庫自己派生的例外,那個等用到再查特例即可;如果你的語言/框架有支援ORM,也可以順便了解)、Git等版控工具怎麼用(可以不用全部都在CLI下指令操作這麼硬核,GUI工具操作順也行,但一些如git flow之類的觀念可以先建立起來)

    再來,關於入行前後,雖然有些部分要重新學,但也不會到打掉重練的地步,某些基礎的觀念是可以被繼承、通用的;ex.以原PO提到的Java為例,實際開發時連資料庫的部分大都會透過Spring框架(Data JPA或Hibernate)處理,但是底層的原理其實跟你自己建立connection一樣(只是在某些環節中框架把一些複雜的東西處理掉了,或是某些地方留有防呆機制(像是可以對資料庫相關操作的方法加掛transation之類的),但偶爾出問題時開debug,你還是會看到類似SQL的語法->更別提有時遇到複雜查詢,還是得要手動給native SQL了->所以前期的努力其實並不會消失啦)

  8. 這版主本身不會寫程式語言,然後在回復程式語言的問題,邏輯不太對吧? 維修電腦和寫程式是兩件事情

  9. 我是覺得可以不用這麼悲觀啦,就算說都還給老師了,學過這麼多種語言,人家起碼會知道這人不是完全零基礎
    像我做過的兩間,工作時會用到的語法也不過就是判斷、迴圈、輸出之類的簡單語法,真正花時間的是理解客戶需求
    然後再到後面就會變成除了要能交差外還要方便維護、方便擴充、節省資源…等,這些都不會是去上個課就能懂的,因為每間公司習慣的作法不一樣
    會想要徵即戰力的公司不是沒有,但那不是新鮮人該去煩惱的事情,多的是願意栽培的公司
    就像如果剛出社會就被人說沒有工作經驗的話那也不用灰心,因為那100%是要求你的人腦袋有問題
    (當然待遇能不能留住人那又是每個人接受度問題,像我很感謝前東家願意給我機會磨練,但那跟我滿不滿意是兩回事XDD)

    如果真的很慌的話可以去複習一下資料庫語法,程式設計很難完全不碰到資料庫,花點時間了解不會有壞處的
    我第二間在面試時就是在紙上手寫出資料庫語法給面試員留下印象,我想說這不是很基礎的東西嗎
    對方說可能是因為很多大學生都只會用工具剪剪貼貼,根本沒記起來也沒真正搞懂背後的意思

    最後,歐大你的案例可太真實了,我系上也是這樣
    畢業後一堆人去做手機維修不然就是去拉保險,反正就是跟程式八竿子打不著的行業,歷史總是驚人的相似….

    • 這個問題非常普遍,我也曾經有這樣的煩腦
      還會後悔,怎麼在學校時不好好學習呢? (都是在打電動)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *