作者:
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推
推 不過工具機產業薪水應該不高吧 你值得去外面試試
作者:
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
作者:
zaku (....)
2021-01-21 22:20:00porting 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跟我走的路很像, 書單也幾乎一樣
作者:
easyman (oops)
2021-01-21 23:07:00老實講, 很多本科系也不會自學看這些書
作者: aria0520 (紫) 2021-01-21 23:10:00
新代就台大機械大本營
作者:
tpegioe (oeo)
2021-01-22 00:57:00推,曾是機械人
作者:
saladim (殺拉頂)
2021-01-22 02:15:00重點在於台大好嗎 看過很多例子 就是願意給台大機會 其他學校的非相關科系 要嘛直接刷掉履歷要嘛就是很折磨
傻眼原po學了那麼多 酸酸只說一句靠台大哈哈哈原po就是肯學 所以不會是大葉是台大啊
作者:
nctuDuncan (Duncan去!靜啊@@[mS)
2021-01-22 08:07:00推通靈王
作者:
haudoing (阿華平凡版)
2021-01-22 09:08:00原po很認真又厲害
作者:
hoouhoou (hoouhoou)
2021-01-22 10:01:00推
作者:
botnet (天龍人)
2021-01-22 10:26:00推 Clean Code
作者:
chupiggy (機器人)
2021-01-22 10:32: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:00Hi學長,想問找到一間願意收非本科轉職的公司會是首要條件嗎?公司的類型需要怎麼篩選呢?
作者:
NTU100 (YUY)
2021-01-22 12:48:00非本科的大部分都是從一些條件比較不好的公司開始慢慢爬
作者:
m4vu0 (m4vu0)
2021-01-22 12:55: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必須說我運氣算很好,有遇到肯給機會的公司,也肯發展但是念的書跟心得還是可以提供參考,境遇沒辦法比較
作者:
joice76x (Poker Face)
2021-01-23 09:24:00大葉憑哪一點可以跟台大比啊 人家努力了20年憑什麼出社會兩三年野雞大學就自認已經超越台大了?
作者:
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推 強者