[心得] 機械轉軟體工程師經驗分享

作者: wulouise (在線上!=在電腦前)   2021-01-21 20:45:46
# 前言
想分享一下當初從進公司幾乎不會寫程式
到現在負責做軟體的porting to Linux的經歷
如果你想轉軟體工程師,最好先進到願意讓你寫程式的公司
但是這不一定辦得到,我底下分享一些自己做的功課
不想看心得可以直接跳到 # 自修建議
# 個人背景
台大機械學士
碩士非CS EE ME
高中只摸過一下用C寫的C++
大學只學過很廢的VB忘記是不是.net
# 現職
工具機產業,領域特殊,大多使用C#與C++
對網路front end, backend不了解
工作大概就是UI跟演算法處理
# 當軟體工程師的心理準備
不是學會寫程式,找到薪水不錯的工作就結束了
學會之後仍然需要補充新的知識
想辦法write better code,並理解沒有best code
因為要寫軟體很簡單,軟體要會動也很簡單
難的其實是寫出來的東西有人願意用
軟體不是單純寫程式,而是寫出客戶要的東西
不論code再乾淨,東西不是客戶想要的,就是浪費時間
(如果可以)花上一兩天只是寫prototype,確認是客戶要的東西最好
over design跟premature optimization都要盡量避免
事前的溝通很重要,所以溝通(通靈)其實是很重要的一環
但不是所有公司都有辦法讓工程師溝通
不過以上都要痛過才知道,沒痛過的人請跳過
# 通靈
當客戶提出莫名其妙的要求時,猜得到他想要甚麼比較重要
啊對,通靈不是免費,應該要能反映在你的薪水上
或是找一家願意付錢通靈的公司
# 自修建議
- Google能力
不知道怎麼建議,但是如果你發現自己不太會google,練不起來
那真的不建議轉軟體工程師
- OS > memory multi-thread
可以參考清大周志遠,目的就是還債
作業沒做沒關係,至少觀念要聽得懂
- Design Pattern
雖然一開始看不知道在幹嘛,但是把前幾個先看過
配上實際例子你會比較有感覺
最好是自己的爛code一直refactor,配上下面的TDD
推薦看head first design patterns,他的實例很多
- TDD
很重要,先有unit tests再寫程式可以減少很多regression問題
不過沒痛過的人不知道,可以先跳過
- Algorithm
這個非CS EE可能都沒有從頭練過,如果沒有強烈要求可以慢慢來
我是工作有遇到的至少會弄熟,或是覺得做法有點爛再去查
當然純軟免不了刷刷leet code, 不過不是很建議從leet code開始
沒寫過的人挫折感其實很重,不過懂多了也會影響程式架構能力
- System Design
SOFT_JOB版應該很多人推薦過,這邊就不多寫
以上都念過之後,對軟體工作會有新感覺
至少我覺得比之前懵懵懂懂的時候了解更多了,查資料也更準
- 英文 & 通靈
當你有一點程式基礎後,下班有空可以逛逛stackoverflow
選一個你熟悉的語言開始回答新手問題,他可以鍛鍊兩件事情
- 你如何理解不懂的人問的奇怪問題
- 有條理的整理你的回答
不過我累積一千多分之後就有點膩了...偶爾自己查到的問題再回而已
另一個方式是訂閱一些有興趣領域的英文digest,不一定要是程式
像是我會去NSwitch的reddit上去逛逛
# 書籍推薦
C++:
懂一點C++後,建議看Scott Meyers的Effective C++, 雖然寫的時間很早
而且C++ standard都到20了,還是有很多值得一看的部分
其他書單很多,我貼個SO就好
https://stackoverflow.com/a/388282/4123703
C#: Head first, C#
Code:
Clean Code
Clean Architecture
The clean coder
中文: 無瑕的程式碼 番外篇:專業程式設計師的生存之道)
這本書很薄,但是我看了很有感觸,有做專案的人建議一看
作者: s455164 (夢想家)   2021-01-21 21:02:00
作者: Raymond0710 (雷門)   2021-01-21 21:15:00
推 不過工具機產業薪水應該不高吧 你值得去外面試試
作者: creaton (Mr.艾爾默)   2021-01-21 21:40:00
推 自學能力不是普通的強
作者: lolicat (貓雨果)   2021-01-21 21:59:00
重點 要會通靈(X
作者: wulouise (在線上!=在電腦前)   2021-01-21 22:13:00
我這個產業運氣不錯,薪水還可以,雖然沒有mnnrp高然後通靈真的蠻重要的xd
作者: ibizacodi (下霰無底)   2021-01-21 22:19:00
推通靈大師
作者: zaku (....)   2021-01-21 22:20:00
porting driver不算純軟,要稍微懂一點硬體的東西
作者: Morphee (千磨萬擊還堅勁)   2021-01-21 22:25:00
工具機就新代吧 最近怎麼消失了 很少有人提
作者: gaea0127 (Taiwan's Zangief)   2021-01-21 22:34:00
推通靈
作者: pttano (pttano)   2021-01-21 23:02:00
其實重點在於台大學士,你以爲大葉學士有公司敢冒險?
作者: easyman (oops)   2021-01-21 23:05:00
跟我走的路很像, 書單也幾乎一樣
作者: bena5mail13 (浪費人生)   2021-01-21 23:06:00
新代不就丟骰子 能不能碰程式全看運氣 跟職缺無關
作者: easyman (oops)   2021-01-21 23:07:00
老實講, 很多本科系也不會自學看這些書
作者: aria0520 (紫)   2021-01-21 23:10:00
新代就台大機械大本營
作者: smallfatleg (貓˙ω˙)   2021-01-21 23:39:00
同樣做案子天天要通靈 幫QQ
作者: mejichoco (UoU)   2021-01-22 00:01:00
沒台大進不了!大哥很努力!
作者: tpegioe (oeo)   2021-01-22 00:57:00
推,曾是機械人
作者: saladim (殺拉頂)   2021-01-22 02:15:00
重點在於台大好嗎 看過很多例子 就是願意給台大機會 其他學校的非相關科系 要嘛直接刷掉履歷要嘛就是很折磨
作者: apple1235566 (pingo)   2021-01-22 07:44:00
傻眼原po學了那麼多 酸酸只說一句靠台大哈哈哈原po就是肯學 所以不會是大葉是台大啊
作者: nctuDuncan (Duncan去!靜啊@@[mS)   2021-01-22 08:07:00
推通靈王
作者: haudoing (阿華平凡版)   2021-01-22 09:08:00
原po很認真又厲害
作者: michaelgodtw (可愛書生寶寶)   2021-01-22 09:35:00
選擇一定比努力重要
作者: hoouhoou (hoouhoou)   2021-01-22 10:01:00
作者: botnet (天龍人)   2021-01-22 10:26:00
推 Clean Code
作者: chupiggy (機器人)   2021-01-22 10:32:00
同學推一個
作者: LittleYueh (岳)   2021-01-22 10:34:00
推 感謝分享
作者: chupiggy (機器人)   2021-01-22 10:34:00
然後你當年大學修的是 VB Express 2005 XD
作者: daywalker (請大家重視全球暖化)   2021-01-22 11:15:00
學習能力強的的還會念大葉嗎? ㄏㄏ
作者: wulouise (在線上!=在電腦前)   2021-01-22 12:02:00
謝謝同學提醒vb版本xd每個人的境遇都不一樣,希望能分享資訊幫助有需求的人
作者: misupm (gphone)   2021-01-22 12:46:00
Hi學長,想問找到一間願意收非本科轉職的公司會是首要條件嗎?公司的類型需要怎麼篩選呢?
作者: NTU100 (YUY)   2021-01-22 12:48:00
非本科的大部分都是從一些條件比較不好的公司開始慢慢爬
作者: m4vu0 (m4vu0)   2021-01-22 12:55:00
非本科沒經驗就是看學歷。自學再多沒學歷一樣沒人理你
作者: snow0112 (小雪)   2021-01-22 13:07:00
大公司都比較願意收非本科畢業的,只要刷題
作者: ycess (WhyQQ)   2021-01-22 13:21:00
推通靈
作者: choral   2021-01-22 15:53:00
原來是學長,幫推~
作者: hongsiangfu   2021-01-22 15:56:00
作者: wulouise (在線上!=在電腦前)   2021-01-22 18:06:00
如果是韌體,有些收機械系,台大的話我知道有進P
作者: kkyyllee   2021-01-22 18:25:00
朝聖推
作者: saladim (殺拉頂)   2021-01-22 20:55:00
有人不知道是窩在自己的舒適圈還是邏輯少了點 原PO學了很多 其他人就沒有學嗎? 現實看到的就是會的一樣多 就是給台大 基本上就是按照學校排名阿 這也沒損害到原PO的努力 第一份工作跟機會本來就跟學校有關 看過的例子裏面有清大物理材料也是自學很多(清大不是廢柴了吧?) 一樣結果而且有些東西是先有機會才有得學(這篇裡有)最後大概也是都認為台大品質保證做結尾 結果這變成前提了
作者: wulouise (在線上!=在電腦前)   2021-01-22 21:13:00
必須說我運氣算很好,有遇到肯給機會的公司,也肯發展但是念的書跟心得還是可以提供參考,境遇沒辦法比較
作者: tinalockhart (無言)   2021-01-22 21:25:00
恭喜原po~~但是真的感覺是台大給了你機會
作者: physicsdk (我是小洛)   2021-01-22 21:52:00
推!真優秀!
作者: joice76x (Poker Face)   2021-01-23 09:24:00
大葉憑哪一點可以跟台大比啊 人家努力了20年憑什麼出社會兩三年野雞大學就自認已經超越台大了?
作者: tenpoinyuki (阿蒼)   2021-01-23 13:26:00
推,感謝分享
作者: jason777king (阿權)   2021-01-23 20:17:00
推一個 高手
作者: jimmy983 (Jimmy)   2021-01-23 21:09:00
作者: abchunger (abchunger)   2021-01-26 14:39:00
強者同事 先推再說
作者: h5904098 (LBJ IS GOD)   2021-01-29 00:29:00
推 強者

Links booklink

Contact Us: admin [ a t ] ucptt.com