• 3

機械轉韌體以及自控的疑問?

各位好,小弟目前從事機械設計的行業
但這行業在台灣薪水真的要升上去都很難...
看到同年學電機的朋友在知名的豬屎屋寫韌體,薪水整個超越我好多
讓我萌起了想要轉換跑道的念頭,畢竟還沒30歲都還有機會吧~
趁著年輕想多賺些錢,目前所知道的內容就是工時長、要使用高階程式語言寫code連接軟體以及硬體這樣
朋友推薦我使用python並且實際進行基礎練習,說這軟體也能作與PLC跟PC base一樣的作業目的,就是控制
練習後發現對於寫程式還滿有興趣的,邏輯上我還算清楚,且我一直以來都是對於控制硬體去作動就抱持著滿大興趣。
但是否該學PLC和PC base...有點矛盾心理,也許我不愛驅動自控機械這塊吧
後面也有規劃去進修個碩士以便進到好一點的IC、半導體類設備公司,讀出來差不多剛好30歲。

所以想問說是否也有高手們是從機械跳到韌體的呢?
想知道你們對於韌體工作的心得以及程式和工作上的建議
畢竟要跨領域,想多蒐集些實質上的資訊
謝謝你們~

2018-12-13 14:34 發佈
我就是機械系畢業卻在韌體打混10年以上的,其實不少同學往這方面發展
對傳統機械不感興趣,所以我是畢業後就往這方面發展了
不是豬屎屋,而是系統廠類的,另一種方向是BIOS但我當初比較沒興趣
基本上用到的語言都是C,有的會接觸到C++
你說的python算是比較上層的語言了,其實不會碰到更低階程序以及軟硬體溝通問題

以系統廠來說
寫軟體控制硬體,多少需要點硬體知識,因為第一步就是要先排除硬體問題
其次需要一些硬體相關的protocol,比如I2C, UART, CAN等等,但不一定都會用到,還是要看你的工作用哪些
再來根據你做的產業,需要對應的領域知識
舉例來說
假設你做監視器,你需要影像相關知識
假如你做光碟機,你需要的是馬達控制跟雷射頭
假如你做IOT,看你接什麼sensor需要知道外,還可能需要一些網路知識及目前IOT用到的protocol或甚至對cloud連接

BIOS跟IC廠則是更底層的硬體控制,相對需要懂更多硬體知識,時序等等
若是RF相關則又是另一門專業
此外根據產品使用的protocol不同,你可能需要更深入的瞭解該protocol底層運作,因為有可能要自己刻

寫程式本身只是一個工具,一個基礎
那些硬體,protocol,timing,sequence,ISR,task等等,以及產業領域上的知識
才是能建構出產品的專業
如果有興趣讀碩士往韌體走,個人覺得念電子電機類較好
我是機械碩雖是自控組但覺得關連能力實在不高,不是完全沒有只是低很多點,剛畢業找工作也會比較吃虧
(你可以上104找找韌體職缺看看都要什麼科系的學歷就知道了)
dq31 wrote:
我就是機械系畢業卻在...(恕刪)


dq31大資歷好深喔!
因為說實在我對於韌體初步只知道要用C語言寫CODE而已
沒想到又區分這麼多東西,目前還看不太懂XDD
想必您當初跨領應該也遇到不少波折吧?

您說的BIOS似乎是機器人學習那塊?之前有了解過,會運用到大量的數學運算式
發展性很高,但對於我這初學者來說似乎太艱難了些...
且我也不知道未來要往哪個產業去走,有想過走台達那邊的韌體
1.不知道d大您這是否有推薦在韌體領域發展性較好的類別呢?
(我朋友說他是做FW工程師,不是很明白這是做啥)

2.然後C語言有分類C++、C#、python、Java等等,是不是特定產業選用對應的語言去寫比較好?

至於d大您提到的"python算是比較上層的語言了,其實不會碰到更低階程序以及軟硬體溝通問題"
3.意思也是同意說對於初學者使用python是不錯的嗎?
我爬文後,底層幾乎都是些函式庫內的東西,非常需要技術性以及經驗才看得懂

4.硬體對於我本身做機械設計的,會比較了解硬體本身的機構是否有幫助?

抱歉,畢竟我還是門外漢問題稍微多
現在對於各式各樣的程式語言分類搞得好亂@@"
power30678123 wrote:
dq31大資歷好深喔!
因為說實在我對於韌體初步只知道要用C語言寫CODE而已
沒想到又區分這麼多東西,目前還看不太懂XDD
想必您當初跨領應該也遇到不少波折吧?

一開始是比較辛苦的,特別對硬體知識貧乏的時候,在菜鳥時期對專業知識一樣匱乏時這點就輸電子電機出身的了

power30678123 wrote:
您說的BIOS似乎是機器人學習那塊?之前有了解過,會運用到大量的數學運算式
發展性很高,但對於我這初學者來說似乎太艱難了些...
且我也不知道未來要往哪個產業去走,有想過走台達那邊的韌體
1.不知道d大您這是否有推薦在韌體領域發展性較好的類別呢?
(我朋友說他是做FW工程師,不是很明白這是做啥)

BIOS是最底層處理硬體驅動的部分
比如電腦開始程序是BIOS先啟動,驅動你最基本的CPU,RAM,硬碟等等硬體,也就是你主機板上的東西
然後你才能從硬碟載入你的OS
機器人學習應該是AI的東西了吧?那是很高階的部分囉,算純軟體了,也非常需要數學運算

power30678123 wrote:
2.然後C語言有分類C++、C#、python、Java等等,是不是特定產業選用對應的語言去寫比較好?

不是這樣說
C就是C,C++是C的延伸,C#也是一種C的延伸
JAVA是JAVA,屬於比較上層的語言
python也是很上層的語言,會更像script一點
各產業應用確實會不一樣
但是韌體以C/C++居大多數(現在還會用到組合語言的應該不多)

power30678123 wrote:
至於d大您提到的"python算是比較上層的語言了,其實不會碰到更低階程序以及軟硬體溝通問題"
3.意思也是同意說對於初學者使用python是不錯的嗎?
我爬文後,底層幾乎都是些函式庫內的東西,非常需要技術性以及經驗才看得懂爆

對初學者來說,確實上層比較容易上手
不過如果你未來打算往韌體走,特別是要往底層走,從C入手也是不錯的,會訓練你紮實的基礎
或是先熟悉一個再熟悉另一個也可以,各種程式語言本來就有類似的地方
很難說哪個好,這確實得看你未來工作需要,也可能不同工作用不同語言
比如雖然韌體多是用C,但因為IOT關係,有的開發直接以python開發

power30678123 wrote:
4.硬體對於我本身做機械設計的,會比較了解硬體本身的機構是否有幫助?

會有,但真的要說機構知識在大部分產品對韌體來說完全派不上用場,因為多半是非動件
除非你做的是帶有馬達的產品,有動件才比較有差,但對韌體來說,懂馬達遠比機構重要,因為你要控制的是馬達不是機構
然後你還會發現,機構極限或解不掉的問題要硬體cover,硬體極限解不掉的問題要韌體cover

power30678123 wrote:
抱歉,畢竟我還是門外漢問題稍微多大哭
現在對於各式各樣的程式語言分類搞得好亂@@"

韌體未來性如何我也不知道,主要還是看產業在台灣的發展性如何

以系統廠舉例
以前光碟機火紅,光碟機韌體也跟著吃香,但隨著產業沒落,光碟機韌體也只能改行跳去其他產業
當然基礎會有,跳其他產業的韌體是可行的
只是相對原本在光碟機上的專業知識,離開這產業後可能就派不上用場,要重新學習新產業的知識

以IC廠來說,只要台灣IC還能發展下去就不怕沒工作
但IC廠技術走在前頭,相對你也需要不停的跟進

BIOS以個人所知,初期薪資不算特別高,工作內容也枯燥,但資深的非常吃香也算穩定,因為人才少而且永遠有需求
(若認知有誤請指正

另外如果你要往對岸發展,機會很多,競爭更多
比如一樣mcu論壇,台灣是冷清,對岸可是很熱烈的
假如你遇到問題想找答案,google資訊大多都是國外或對岸
至於對岸薪資可以參考51job這個網站,對岸薪資範圍都很公開的 不過地區差異很大

power30678123 wrote:
看到同年學電機的朋友在知名的豬屎屋寫韌體,薪水整個超越我好多

喔對了這個的確是沒錯,但有幾個重點或著該說是前提
「知名的豬屎屋」
是的那幾大知名的,薪水的確很高,超過大部分韌體的薪水了吧
但知名的豬屎屋要的幾乎都是四大電機碩士
假如你想進去,補碩士學歷不但要選電機而且要四大校
其次那幾大豬屎屋加班是有名的,也超過大部分韌體的工時
假如你補完學歷30歲,要考慮一下還能這樣拼幾年
30歲後也要開始要思考家庭生活怎麼平衡
當然進去拼個幾年跳槽也是個方式

power30678123 wrote:
各位好,小弟目前從...(恕刪)


你已經太晚了
我有朋友都已經離開這行業
等你讀畢業 可能又換新的 行業起來

越多人去的行業 最後一定薪水也跟著很低
和你一起終身學習! https://www.lifetimelearning.com.tw
寫韌體要用C啦! 我到目前為止看過的公司都是用C. 也有一些會用Python做輔助, 但主力還是C.

要寫韌體, 最好是要懂硬體電子電路, 還有就是一堆標準的東西, 比如說USB, TCP/IP, CAN bus, 藍牙..... 還有像嵌入作業系統(比如說RTOS/Linux). 不懂這些也可以寫韌體, 但是就像低階作業員, 薪水不會高.

程式只是工具, 真正厲害高手其實都是懂那些標準跟嵌入作業系統.


感謝各位大大們的回覆
一一看過後,看來我目前從C++開始學起是正確的方向
但最近讓我比較傷腦筋的確實是年齡的問題
讀完後就30歲了,要再轉戰韌體上不免讓我擔憂起來
我朋友是建議我若學C++可以直接轉戰PC base
一方面是在自己領域、二方面是可以在公司內打滾保有年資(畢竟是設備商)
三方面是可以跳到PC BASE的部門將C++實際運用上,之後要再跳都比較有機會。

但看似不錯的規劃,就延伸一個問題
小弟我今年已報考某四大校的在職專班,目前知道的是已經錄取
有去找一位控制組的教授,他說我跨C++可以,但論文要"與工作上有相關"才行...
他沒有辦法提供題目給我,可能是因為不像一般生能夠整天在研究室裡研究吧
那就完蛋了...我現在做的是純機構,公司的PC BASE部門學歷需求是碩士
所以手邊根本沒有能與C++實際配合與應用到的東西
要經理開一個專案讓我去搞一個設備也不太可能,畢竟需要電控的搭配
且我研究所這樣學的不紮實就要馬上運用到一台實際可以生產的設備上,這困難度極高
現在讓我覺得求學這條路變得有點迷茫,我這樣真有辦法寫論文嗎?
但我真的想學控制啊...這幾天光是想這件事情連睡覺都沒辦法好好睡
不知道大大們能否給我些建議

power30678123 wrote:
感謝各位大大們的回...(恕刪)

一般在職碩班通常會從工作中找題目是沒錯,因為剛好結合工作與論文,比較能生得出題目
但應該不至於限定非工作相關不可吧,重點是要能生出論文題目
教授的重點應該只是他無法像一般碩士那樣提供論文題目或是可以延續學長姐的論文題目,只能靠你自己找
而因為你已經在職,當然從工作中延伸是最好的
無法負責公司相關專案,可以試著從中找某個部分下手,或是自行另外找開發板思考其他方向
總之這部分就只能靠你自己了
多找找教授討論未來方向,但必定是你得先思考一個大方向再去請教
就算是一般碩士也多有邊唸邊慢慢找出方向最後才訂出題目的

power30678123 wrote:
且我研究所這樣學的不紮實就要馬上運用到一台實際可以生產的設備上,這困難度極高

沒有紮實的基礎,半路轉行不就是這麼回事嗎,只能靠後續努力囉
假設今天公司接受你內轉到韌體部門,不也是從其中一部份開始邊做邊學嗎
我知道業界有韌體班,可以提供你實際的訓練(至少半年的那種)
但上這課是無法上班的,我也不知道就算唸完能否順利找到理想的工作,畢竟這不是所謂的學歷,也不是實際工作經驗

power30678123 wrote:
但我真的想學控制啊

研究所跟大學最大的不同在於
想學什麼想鑽研什麼,其實大部分要靠你自己找資料自學,沒有人能一步步帶你入門
研究所的課只是提供你基礎,教授也進能輔助提供方向
但從頭到尾都是只能靠自己
感謝d大的回覆,滿感謝您回的都很用心
我是覺得現階段先穩扎穩打的把C++基礎給學好為重了
也許這樣到碩一下或碩二時會有題目延伸出來
畢竟機會是留給準備好的人。

對了,您提到的開發板
事能夠將我編寫的C++輸入進去讓他作動嗎?
因為我現在練習就只有單純寫code並且debug下去run
在類似一個命令提示字元的黑底視窗輸入值跑出我code的結果
可是卻不知道說寫這些code可以實質運用在現實的何處來呈現

比方說我有個電動缸跟伺服滑,可以藉由我的code輸入驅動他們
但這東西這麼貴...不可能有R
  • 3
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?