精華區beta Tech_Job 關於我們 聯絡資訊
以純開發AP而言,很多環境平台已經預設在一般PC或是目前熱門的隨身電腦產品 (PDA,SMARTPHONE,這部分的平台較多選擇與變化, 但是一樣有較完整的規格與標準開發平台), 通常所謂純軟體都表示已經預設好規格化的作業系統,制式化的開發工具 (你可以不用太了解透系統架構,就會寫出基本簡單的程式) 若以這樣的前提稱為軟體工程師, 你要建立自己的價值,那就要看看你的工作內容, 有無能力參與AP演算法的設計執行, 有無能力調校整各系統間的AP運作,讓你的AP不影響整各系統執行, 還是只是簡單的用高階程式語言寫寫基本的小AP(大多忽略系統與周圍的認知), 修改別人程式的一些簡單介面,或是拿一段範例依樣畫葫蘆, (頂多增加幾個變數改改介面輸入輸出) 自己決定你要成為哪種境界的人!! 至於韌體工程師,需要在何種平台下何種環境下開發, 可能變化很多,一個大姆哥,一台列表機裡面都有微處理器, 需要寫程式去控制他,因為用硬體實現可能不符合成本,在效率與成本的斟酌下, 以軟體實現的效果最好, 這時的軟體設計工作常常被定位為韌體工程, 可是說實在的他還是一樣寫程式, 以前開發環境較少,都用組合語言實現(要累積學習的東西更多), 現在開發環境豐富,可以使用高階語言來實現(此時價值建立不也等同軟體工程), 只是軟體工程常常被忽略的事情(需要知道系統規格), 在韌體工程要多花這個執事的時間,現今這個程序說不定還可以省略, 因為分工合作的時代,在硬體人員或是其他系統人員已經將平台規劃完成, 你根本不太需要知道系統的架構,只要知道一些程式設計能力, 你甚至用C語言也可以依樣化葫蘆弄出一個版本的韌體出來, 至於需要知道系統規格,這件事情對韌體工程而言也算不上了不起的事情, (因為身為純軟體工程師而言有藉口推辭, 韌體常常稱不上藉口推辭,這樣實在稱不上取代門檻) 上述的重點就是:能多吸收多學習就去做吧!! 多了解系統架構,不管你被定義韌體或是軟體工程師, 只要有興趣你可以多了解目前的一些系統架構, 處理器的種類與架構以及效能 各種週邊界面以及輸入輸出介面的規格 系統的整體契合程度以及效能的調整, 另外以軟體工程而言,演算法的改進,程式的效能,除錯的方式也是有很多東西學習 (軟體韌體皆是) PC已經像電視機一樣普及了, 然而很多軟體工程師寫AP時,卻仍然對PC的架構一無所知,甚至有逃避心態, 你或許一樣可以寫出AP來,但是當你養成以系統角度思考, 了解每一個環節,這時候有可能你會發現你的程式效率不好的原因是演算法不好, 還是硬體效能限制, 同樣的身為韌體工程師也不該只是把硬體規格了解,然後一樣畫葫蘆的控制硬體就滿意了, 你要累積的東西很多,可不可以把韌體寫的更有效率,排除硬體的限制, 甚至避掉硬體無法重新設計所產生的錯誤, 如果只是看看規格然後會簡單的存取暫存器控制硬體元件運作, 那跟會寫寫簡單的單純AP一樣很容易被取代的! 所以再此陳述:軟體工程師或韌體工程師的價值,不在名稱上,而在於你自己累積的內容!! 啊!好像寫太雜亂了,有太多東西要累積學習了,與大家共勉之!! ※ 引述《kay2005 (小凱)》之銘言: : 面試幾家之後 軟體主管和硬體主管說法不大相同 : 想請問前輩們 就賺錢和價值而言 哪一種比較不會被取代又賺得較多呢?? : 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.61.240.191
nios:感謝分享 01/05 17:28
karenten:謝謝 01/05 18:34
weiger:好文 01/05 19:57
drugger:軟體會C語言應該就很夠了,韌體的話C、assembly、HDL、OS. 01/05 21:18
kay2005:謝謝各位的回答~^^ 01/06 07:48
YTsungL:好文推 01/06 08:56
ericzie:好文章! 要M起來呀~~~ 01/06 10:42
ogx6:好文,快M起來吧!! 01/10 23:38