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

作者: wulouise (在線上!=在電腦前)   2021-01-21 20:48:11
※ [本文轉錄自 Tech_Job 看板 #1W2NU1DM ]
作者: 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
中文: 無瑕的程式碼 番外篇:專業程式設計師的生存之道)
這本書很薄,但是我看了很有感觸,有做專案的人建議一看
作者: x246libra (楓)   2021-01-21 20:49:00
糟糕 開頭看到台大機械碩 就想 END文章 XD
作者: purefalse (粹)   2021-01-21 20:54:00
我也是。
作者: aidansky0989 (alta)   2021-01-21 21:12:00
不錯啊這些都搞懂已經算不錯的工程師
作者: a3236852 (serena)   2021-01-21 21:36:00
糟糕 同一樓
作者: wulouise (在線上!=在電腦前)   2021-01-21 21:37:00
我是學士機械不是機械碩耶xd
作者: NTU100 (YUY)   2021-01-21 22:00:00
只要是好學校都機會比較大!
作者: worcdlo (worcdlo)   2021-01-21 22:26:00
寫的很好啊,身為轉職者推
作者: sugarcanetea (蔗香紅茶)   2021-01-22 00:17:00
已收藏 想私信原po公司
作者: drajan (EasoN)   2021-01-22 00:35:00
這是台大又不是stanford 看到學校就想end是?
作者: DrTech (竹科管理處網軍研發人員)   2021-01-22 00:44:00
機械做軟體工程師一直很多吧。
作者: littlebau (小寶)   2021-01-22 00:54:00
這種程度已經是很好的軟體工程師了,如果能夠在爛一點的天分或者經歷,比較有激勵的作用比方私立機械系,加上自己幾乎不大會寫程式,找到的公司也很普通之類的
作者: ntuvic (victory11)   2021-01-22 08:20:00
轉職第一份薪資談多少呢?
作者: Sunal (SSSSSSSSSSSSSSSSSSSSSSS)   2021-01-22 08:38:00
台大學士學習能力就已經贏過很多人了吧
作者: OrzOGC (洞八達人.拖哨天王)   2021-01-22 09:50:00
能轉成功的就算文組也大多是前段學校的,又有過人的毅力
作者: pornstar (迪克)   2021-01-22 10:05:00
Stanford校園很多走在路上傻笑流口水滴在地下自己滑倒的智缺低能傻屌,台大素質好多了。
作者: leolarrel (真.粽子無雙)   2021-01-22 10:18:00
現在寫軟體真的簡單到一堆轉職的都能勝任,跟機車行差不多了
作者: summerleaves (內湖全聯先生)   2021-01-22 11:27:00
同1F 台大機械學士 這能力應該前3%了
作者: KaoZen (高興)   2021-01-22 12:23:00
個案 沒參考價值 結束
作者: snow0112 (小雪)   2021-01-22 12:42:00
推!好強!樓上,分享的內容真的很實在很具體,參考價值很高。你畫地自限就會覺得全世界都是個案吧?
作者: kuochuwon (黑輪桑~ YO)   2021-01-22 13:39:00
推推,同樣非本科系轉職,目前是卡在想從現職換到更高薪的公司,有很多面試機會但都無聲卡...很難知道自己問題出在哪...
作者: DCTmaybe (竹竹人)   2021-01-22 17:15:00
沒事啦,我考不上台大還是可以寫code阿,不敢講薪水而已
作者: Morphee (千磨萬擊還堅勁)   2021-01-22 20:47:00
樓樓上不然cv我看看
作者: saladim (殺拉頂)   2021-01-22 20:53:00
很多人都嘛差一個機會 會的也是一樣 還不是拿到到機會
作者: wulouise (在線上!=在電腦前)   2021-01-22 21:43:00
有面試機會但是無聲卡的話..最好找人聊,可能理解錯誤
作者: viper9709 (阿達)   2021-01-23 00:09:00
推一樓XD
作者: doranako (真愛無限)   2021-01-23 12:46:00
書單都給你,靠自己
作者: maxsho (沉默的熊)   2021-01-23 12:54:00
通常有面試但是結果是無聲卡大部分都是卡在要求薪資超過公司願意給的或是年紀有些大了
作者: MOONY135 (談無慾)   2021-01-23 19:19:00
覺得年紀大了不想錄用,還找來面試浪費自己的時間。微妙的思考方式
作者: loadingN (sarsaparilla)   2021-01-23 20:17:00
有時候也會去一些沒意願報到的公司面試啊 想說會不會挖到寶 但現實通常就是不會 公司方大概也是如此
作者: taipoo (要成功要積極)   2021-01-24 02:26:00
推分享
作者: j055116   2021-01-30 11:22:00
感謝分享 獲益良多
作者: xiao2chen (台大小陳)   2021-02-06 08:20:00
clean code 讚

Links booklink

Contact Us: admin [ a t ] ucptt.com