題主從業兩年,為什麼覺得從事微控制器相關行業寫程式的人,寫程式的水平普遍不高?

時間 2021-06-07 20:13:49

1樓:1573629731983461

軟體,除了實現功能的部分(這部分非專業的人能扯皮的很少,比如演算法,是一種高度抽象的工作,幾乎沒有爭議,好壞一試便知)外,還有一部分就是介面(這部分最容易產生爭議)。

函式介面、模組介面、子系統介面、系統介面、協議、標準、道德法律……,說白了就是某種約定性的東西,參與的人越多,認同的人越多,這種約定就越廣泛。既然是約定,那要我認同你的標準,憑什麼?再說白一點就是,我憑什麼要聽你的

我猜,你大概猜到了某種答案,順著想想也就知道這是無可奈何的事兒,或者說,在這裡,事情就是這樣幹的。而你說的程式設計的方法原本是從別處來的,自然不適合這裡。

2樓:rundstedt

軟體工程的那一套理論是為了更快更高效的開發和維護大型軟體專案的。微控制器之所以叫微控制器,就是裡面裝的軟體還沒有大到要使用軟體工程理論的程度,沒有必要使用軟體工程理論。軟體工程理論也是有代價的,需要更快的處理器,更大的記憶體來實現冗餘,而這些在微控制器上面會帶來成本的大幅度增加,在現實中成本往往是決定乙個專案成敗的最關鍵因素。

結論很明顯——在微控制器上程式設計,不(qu)要(ta)考(ma)慮(de)軟體工程。

3樓:sprink

深圳很多搞嵌入式的不懂rtos,但是不妨礙人家產品穩定.不妨礙人家乙個月賺你一年的錢.工具而已,講究啥呢,難不成還給你開源不成......科班出身的有的時候就是矯情,反而把自己困住了

4樓:帝林

我一直覺得我們是賣硬體的,要考慮電路,抗干擾,安裝一系列問題,程式那塊主要是實現各項功能,穩定,程式越簡單越好,一直認為程式複雜度越高,出問題的概率越大。。。。。windows還經常崩潰呢,我們發出去的產品可不敢崩,崩潰了就是大問題了

5樓:

先答:程式水平肯定比不上純軟體啊!還用說

但是:術業有專攻啊,不是乙個層次的東西有什麼好比較的呢?

付出的精力分布都不一樣

微控制器程式設計師程式 4 : 6電路

純軟體程式設計師程式 9 : 1電路

上面比例就是示意一下哈

所以要不再比一下電路咯

6樓:

哦,可能是因為樓主沒經驗吧

越有經驗的人,越謙虛

補答1純軟體的根本幹不了嵌入式,比如標準8051的介面讀取需要先寫1再讀。現在的51通過特殊的暫存器可以不要先寫一,但是帶來外圍上下拉電阻設計要匹配。

嵌入式開發者還要指導硬體改進,甚至就是硬體設計者。所以認為樓主接觸的大牛太少。

7樓:Pluto Hades

聽題主描述都是電子類專業轉型兼職的程式設計師啊,他們原本特長是數電模電,可惜長時間不用也有點生疏,軟體技能沒有受過系統性培養,計算機體系結構基礎課沒有完整掌握,會有這種表現很正常。

嗯,看來基本上你接觸的是從事跟微控制器有關的小型企業,賺錢才是硬道理,規範什麼的都是浮雲。

所以說你還是要提高自己的知識水平,這樣才能跟更高階的打交道。

8樓:繁星雨夜

主要還是小公司的微控制器工程師要設計原理圖,layout,焊接,電路除錯,程式設計,寫說明書,安裝樣機,解決售後問題。別問我怎麼知道的……

因為我本身是個比較喜歡軟體的人,所以經常深入修煉軟體能力,硬體水一點。然後我身邊做微控制器的軟體大部分都沒我好……大部分微控制器工程師寫程式都是只要功能實現就行,能這樣湊合還是大部分的微控制器程式都不大

9樓:方當瀚

應屆生還沒畢業感慨一下,嵌入式軟體方向,從Linux方向跳回了微控制器嵌入式開發哈哈哈~現在國內稍微工資給的差不多的大公司,筆試的題目都是和軟體看齊的各種資料結構演算法和作業系統的題目,還要深入到arm架構和彙編。所以,其實現在做微控制器的人的程式設計水平要求真的不低的。話說題主提的這些問題啊,其實rtos裡面也用了很多資料結構和演算法去實現那些訊號量,佇列,任務查詢和切換,只是我們用rtos的時候人家都幫我們實現了,我們就可以偷點懶,好好用他的資源就好。

我覺得把結構體和指標玩6了,其實寫出來的程式質量就可以挺不錯的了。還有微控制器的一些專案更注重邏輯和演算法(不是cs常說的那些演算法),比方說實現乙個二維矩陣的kf,或者旋轉矩陣,那些資料結構都用不上吶。以前用過stm8,一不小心ram就爆了。

後來還用過1毛錢的應廣微控制器,寫坑爹的mini-c,彙編夾著c,簡直崩潰。這東西怎麼搞資料結構啊~

10樓:

你的感覺是正確的。原因主要有兩個:

開發者缺乏系統的軟體管理思想訓練;

資源受限的嵌入系統開發固有的困難。

缺乏系統訓練這個很好理解。從事微控制器系統開發的多是電子系的學生。專業方向主要集中在硬體學習上。

程式開發技術只是點綴。編碼方面的教育只要達到能夠寫通就算合格。對作業系統的方面的教育都在三年級下半以選修課的形式進行。

也就是說,OS也就是可有可無的技能。讓他們(我們)去理解任務排程,記憶體管理之類的事情真的是有些強求了,只能靠自學。不過說回來,他們(我們)多少都是知道如何在位址空間內直接定址的。

面對小規模任務,人肉記憶體管理其實也差不了太多。

嵌入式系統的固有困難是這樣的。考慮常見的8位單片系統,只有200多位元組的位址空間。還要分給暫存器檔案和外設,留給程式使用的記憶體最多也就幾十個位元組。

在這種環境下,C的每一次呼叫都有可觀的執行時棧空間開銷。所以,單一職責原則只能盡力就好。同時,一系列執行了不同任務的語句放在一起,雖然不符合單一職責原則,但是它們在業務上具有原子性,這也是不能太模組化的乙個原因。

甚至,為了保證原子性,還需要關中斷。最後還要提一點的就是,很多時候使用 OS 是為了提高硬體效能的利用率。但是這種情況下,只要預算允許,換換用更高階的單片系統就可以了。

比如到了ARM CM3 的系統上就能自由很多。

所以,結論就是:不同的需求場景決定了不同的開發形式。

可以物件導向開發,可以面向使用者開發,可以面向工資開發。最終還是要面向需求開發。

11樓:Kaiser Li

你這是完全本末倒置的

對了,不過他們都會一點硬體,雖說硬體不用他們專幹吧,但都會設計些電路,放大驅動,濾波啥的。

這他媽的才是程式看似很爛的原因,因為要保證硬體能正常工作。

你老老實實好好學學吧,別總覺得自己聰明

12樓:

搞微控制器的。。。不是大部分都是硬體出身的嗎?而且從題主描述也確實像硬體出身的。他們學的軟體就那個程度,你叫他們寫高水平的程式有點為難他們了。

13樓:大餅哥

世界變化太快了,如今不用RTOS就是不懂嵌入式開發了啊。

補充:做過遊戲程式設計師,給ps,psp,x360,ps3寫過程式,當時在ps上寫程式用的框架也不是rtos的,但是要求和薪水比一般程式設計師高很多啊,入職前考的就是優化,為了省幾個毫秒,或者為了省幾個位元組,經常動手寫mips彙編。後來做pc和手機遊戲就簡單很多。

做網際網路應用對程式設計師在效能優化等方面要求相對沒那麼高,我見過畢業一年拿兩萬薪水但是有限狀態機都不會寫的,迴圈不變數不會外提的,公共因子不會預先計算的,但同時也遇到過很多大神。

如果題主覺得身邊同事水平一般,說明你在這一行大有可為。有空來我們這裡聊聊,做嵌入式系統優化,數數指令,算算時間,設計下時序,見縫插針榨乾stm32f4效能。要說為何不用f2,f7……能用便宜的就不用貴的。

有位兄台說的很對,會寫程式的都跑去做網際網路應用了,誰做這個要求高責任大收入相對少的工作。

另外,不可以偏概全。看看康奈爾的ee4760和ee5760課程設計,裡面有意思的專案很多,但是大多數不用rtos。

14樓:

搞MCU多年,知乎第一答就給題主了。你說微控制器相關行業寫程式的人寫程式的水平普遍不高,這當然是個人是否努力關係最大,但懂不懂RTOS,用不用RTOS,不能當作水平來評價,大多數MCU專案,成本優先,合適就好。所以資源有限,甚至是用彙編做的,有時甚至為節省一兩個位元組空間不斷精簡,根本就不可能去考慮什麼解耦了。

MCU專案重點在可靠性,滿足專案實時要求,大多數MCU專案大批量出去後不可能遠端公升級程式,所以程式定型後很少敢大動干戈的,要不手一抖幾千幾萬產品報廢,這個鍋我們可擔不起。各行有各行的道,入門容易,修行在個人。

15樓:阿宅

軟體非科班的也不少吧,也不見得都是水平高的,而且做這行同時要考慮到硬體問題,乙個人的時間精力是有限的,同時兼顧軟體,硬體比純軟體複雜了很多。有時候遇到的問題也怪,很耗費時間。

16樓:造鍋俠

我以前研究生,做的就是嵌入式相關的,做的MCU微控制器,偏控制方向。其實微控制器程式設計的目的主要是實時性,並不會設計到太複雜的程式,程式盡量精簡。做過嵌入式的一般知道,嵌入式程式除錯難度非常大,儘管你程式已經很精簡了,但是由於涉及到硬體,本身乙個系統就存在很多不穩定因素。

嵌入式開發人員大部分時間都是花在除錯上了,而且除錯硬體更花時間。

17樓:

大部分人智商水平都差不多,如果學習時間是一樣的,那軟體行業專精於構建與協作,而嵌入式行業則需要熟悉硬體再去開發,所以自然很難做到樣樣精通。

如果說要做精,我相信嵌入式行業的要求比軟體高,但是供需不平等的情況下,乙個人能做更少的事情,拿更多的工資,為什麼要去做更複雜而繁瑣的事情。

確實也有,因為夢想和情懷。

室內設計專業從業兩年,想轉行,有什麼可以推薦與之相關還不用997的職業嗎?

CHEN.GENG 你很喜歡他,他不喜歡你,受不了和客戶逼逼。這話怎麼聽怎麼覺得像是。打個比方。你談了個物件。剛見面就覺得喜歡的不得了。你們開始一起散步。聊天的時候對方問你,你平時上班的時候多做點什麼呀?你巴拉巴拉巴拉。又問你。你不上班的時候喜歡做點什麼呀?你巴拉巴拉巴拉巴拉。又問你。你在家沒事的時...

畢業兩年仍然不知道自己適合從事什麼行業,什麼職位怎麼辦?

稚凌聊生涯賈莉麗 已經過了適應期了,那應該快速去發現自己得優勢,很好地定位人生。在這個定不下來的年代,修煉和創造人生反而成為最有效的策略,以不變應萬變。 楊濤 做個職業規劃。第一,先選行業。三個原則 自己感興趣的,擅長的,以及有發展前景的,這三點為三個圈,重合部分則大概率是你可以從事的行業。第二 選...

為什麼奶茶這兩年這麼火?

農藥叔叔 奶茶為什麼這幾年這麼火?第乙個,奶茶滿足了人們對甜份的需求。人的原始本能,喝甜甜的能帶來原始的快樂。第三個,奶茶滿足了人們對多元化口味的需求。如果說酒是乙個社交工具,滿足社交場景中的需求,可樂是滿足人們對甜份的需求。那麼,近些年的大火奶茶,在需求滿足上,既有一點類似於偏社交酒的某部分功能。...