作者wulouise (在線上!=在電腦前)
看板Tech_Job
標題[心得] 機械轉軟體工程師經驗分享
時間Thu Jan 21 20:45:46 2021
# 前言
想分享一下當初從進公司幾乎不會寫程式
到現在負責做軟體的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
中文: 無瑕的程式碼 番外篇:專業程式設計師的生存之道)
這本書很薄,但是我看了很有感觸,有做專案的人建議一看
--
等等,我是不知道妳是看了什麼神槍手的故事,可是為什麼要拿我當靶 (′Д‵)
什麼!是黃忠和后羿的故事?他們拿的不是銃,是弓!
長門,妳手上拿著蘋果跟繩子是作什麼?今天晚餐不是關東煮是烤乳豬嗎?
連爸爸都沒弄痛過我,可不可以不要綁這麼緊,好歹鬆一點讓我有空間逃吧,古泉。
好,我認了,要射就射吧,可是請聽一下在我死前的最後一個願望。
不 要 拿 霰 彈 來.....噗滋(腦漿聲) 摘自「阿虛的最後一餐」
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.137.55.249 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Tech_Job/M.1611233153.A.356.html
※ wulouise:轉錄至看板 Soft_Job 01/21 20:48
1F:推 s455164: 推 01/21 21:02
2F:推 Raymond0710: 推 不過工具機產業薪水應該不高吧 你值得去外面試試 01/21 21:15
※ 編輯: wulouise (220.137.55.249 臺灣), 01/21/2021 21:38:49
3F:推 creaton: 推 自學能力不是普通的強 01/21 21:40
4F:推 lolicat: 重點 要會通靈(X 01/21 21:59
5F:→ wulouise: 我這個產業運氣不錯,薪水還可以,雖然沒有mnnrp高 01/21 22:13
6F:→ wulouise: 然後通靈真的蠻重要的xd 01/21 22:14
7F:推 ibizacodi: 推通靈大師 01/21 22:19
8F:推 zaku: porting driver不算純軟,要稍微懂一點硬體的東西 01/21 22:20
9F:推 Morphee: 工具機就新代吧 最近怎麼消失了 很少有人提 01/21 22:25
10F:推 gaea0127: 推通靈 01/21 22:34
11F:噓 pttano: 其實重點在於台大學士,你以爲大葉學士有公司敢冒險? 01/21 23:02
12F:推 easyman: 跟我走的路很像, 書單也幾乎一樣 01/21 23:05
13F:噓 bena5mail13: 新代不就丟骰子 能不能碰程式全看運氣 跟職缺無關 01/21 23:06
14F:→ easyman: 老實講, 很多本科系也不會自學看這些書 01/21 23:07
15F:推 aria0520: 新代就台大機械大本營 01/21 23:10
16F:推 smallfatleg: 同樣做案子天天要通靈 幫QQ 01/21 23:39
17F:推 mejichoco: 沒台大進不了!大哥很努力! 01/22 00:01
18F:推 tpegioe: 推,曾是機械人 01/22 00:57
19F:→ saladim: 重點在於台大好嗎 看過很多例子 就是願意給台大機會 其他 01/22 02:15
20F:→ saladim: 學校的非相關科系 要嘛直接刷掉履歷要嘛就是很折磨 01/22 02:16
21F:推 apple1235566: 傻眼原po學了那麼多 酸酸只說一句靠台大哈哈哈 01/22 07:44
22F:→ apple1235566: 原po就是肯學 所以不會是大葉是台大啊 01/22 07:45
23F:推 nctuDuncan: 推通靈王 01/22 08:07
24F:推 haudoing: 原po很認真又厲害 01/22 09:08
25F:推 michaelgodtw: 選擇一定比努力重要 01/22 09:35
26F:推 hoouhoou: 推 01/22 10:01
27F:推 botnet: 推 Clean Code 01/22 10:26
28F:推 chupiggy: 同學推一個 01/22 10:32
29F:推 LittleYueh: 推 感謝分享 01/22 10:34
30F:→ chupiggy: 然後你當年大學修的是 VB Express 2005 XD 01/22 10:34
31F:→ daywalker: 學習能力強的的還會念大葉嗎? ㄏㄏ 01/22 11:15
32F:→ wulouise: 謝謝同學提醒vb版本xd 01/22 12:02
33F:→ wulouise: 每個人的境遇都不一樣,希望能分享資訊幫助有需求的人 01/22 12:11
34F:推 misupm: Hi學長,想問找到一間願意收非本科轉職的公司會是首要條 01/22 12:46
35F:→ misupm: 件嗎?公司的類型需要怎麼篩選呢? 01/22 12:46
36F:推 NTU100: 非本科的大部分都是從一些條件比較不好的公司開始慢慢爬 01/22 12:48
37F:推 m4vu0: 非本科沒經驗就是看學歷。自學再多沒學歷一樣沒人理你 01/22 12:55
38F:推 snow0112: 大公司都比較願意收非本科畢業的,只要刷題 01/22 13:07
39F:推 ycess: 推通靈 01/22 13:21
40F:推 choral: 原來是學長,幫推~ 01/22 15:53
41F:推 hongsiangfu: 推 01/22 15:56
42F:→ wulouise: 如果是韌體,有些收機械系,台大的話我知道有進P 01/22 18:06
43F:推 kkyyllee: 朝聖推 01/22 18:25
44F:→ saladim: 有人不知道是窩在自己的舒適圈還是邏輯少了點 原PO學了 01/22 20:55
45F:→ saladim: 很多 其他人就沒有學嗎? 現實看到的就是會的一樣多 就是 01/22 20:55
46F:→ saladim: 給台大 基本上就是按照學校排名阿 這也沒損害到原PO的努 01/22 20:56
47F:→ saladim: 力 第一份工作跟機會本來就跟學校有關 看過的例子裏面有 01/22 20:57
48F:→ saladim: 清大物理材料也是自學很多(清大不是廢柴了吧?) 一樣結果 01/22 20:58
49F:→ saladim: 而且有些東西是先有機會才有得學(這篇裡有) 01/22 21:00
50F:→ saladim: 最後大概也是都認為台大品質保證做結尾 結果這變成前提了 01/22 21:01
51F:→ wulouise: 必須說我運氣算很好,有遇到肯給機會的公司,也肯發展 01/22 21:13
52F:→ wulouise: 但是念的書跟心得還是可以提供參考,境遇沒辦法比較 01/22 21:13
53F:推 tinalockhart: 恭喜原po~~但是真的感覺是台大給了你機會 01/22 21:25
54F:推 physicsdk: 推!真優秀! 01/22 21:52
55F:推 physicsdk: 機運也很重要,公司缺人擴編的時候機會很多,非本科沒 01/23 00:06
56F:→ physicsdk: 經驗的也行 01/23 00:06
57F:推 joice76x: 大葉憑哪一點可以跟台大比啊 人家努力了20年 01/23 09:24
58F:→ joice76x: 憑什麼出社會兩三年野雞大學就自認已經超越台大了? 01/23 09:24
59F:推 tenpoinyuki: 推,感謝分享 01/23 13:26
60F:推 jason777king: 推一個 高手 01/23 20:17
61F:推 jimmy983: 推 01/23 21:09
62F:推 abchunger: 強者同事 先推再說 01/26 14:39
63F:推 h5904098: 推 強者 01/29 00:29
64F:推 geraldliu98: 推推 02/06 17:24