畢業(yè)七年,一位嵌入式er分享自己的開發(fā)經(jīng)驗和想法
本人從畢業(yè)到現(xiàn)在一直在嵌入式軟件這個行業(yè)發(fā)展,已七年有余,也曾經(jīng)迷茫無助過,也驕傲自滿過,到現(xiàn)在算是趨于一個比較穩(wěn)定的狀態(tài),嵌入式軟件開發(fā)的項目本身代碼量不會太大,除了一些特殊的方面外,基本難度都不是太大,曾經(jīng)認為只要有人帶著,什么樣的人都可以從事這個行業(yè),從這兩年的經(jīng)驗來看,以前想的可能有點太樂觀了,這兩年在用心帶幾個人,發(fā)現(xiàn)有些東西確實需要一定的積累才能做好,畢竟人和人的思維方式不同,考慮問題的角度千差萬別。
本人對于技術(shù)的積累很少在一些網(wǎng)站或者論壇之類的做過交流,遇到問題時,我一般更希望盡自己的努力來解決,空閑的時間也希望自己看一些書籍,來提升一下內(nèi)功。
轉(zhuǎn)入正題,從事嵌入式軟件開發(fā)需要哪些基礎(chǔ)知識呢?
首先得學(xué)過單片機原理,對于底層的一些運作有個大致了解,最不濟也得明白數(shù)字電路是怎么回事吧!之前和一些新入行的工程師交流發(fā)現(xiàn),分不清什么十進制數(shù),十六進制和BCD,什么bit位,不清楚十進制數(shù)和十六進制數(shù)在機器上存儲有什么區(qū)別。對底層的基本原理壓根就沒接觸過,分析問題伏在問題表面現(xiàn)象上,有些問題扎著頭搞了兩個星期都沒有進展,到最后就是一個數(shù)的bit位除了一點問題,在面試時曾經(jīng)遇到過這樣的問題,有個面試者在回答問題時,使用RS485總線,波特率9600,協(xié)議通訊有響應(yīng)數(shù)據(jù),每個通訊周期的數(shù)據(jù)量都會超出10個字節(jié),問其通訊周期時,堅定的回答,10ms一個周期,每個周期都會有十幾個字節(jié)的數(shù)據(jù),在反復(fù)暗示后一直堅持自己的說法,對于嵌入式軟件開發(fā),從事一兩年后,一定要問問自己uart,spi和i2c這些總線我們是不是都已經(jīng)很熟悉了,對定時器和中斷我們是否都掌握了。
從事嵌入式軟件行業(yè)是否需要經(jīng)驗?zāi)?
經(jīng)驗這種東西是個很微妙的東西,有些事情經(jīng)驗?zāi)芷鸬酱龠M作用,有些事情有經(jīng)驗反而不太好。個人理解經(jīng)驗應(yīng)該是幫助我們更快更好的完成我們要做的事情,從這一點出發(fā)經(jīng)驗肯定是好的,但是在我們?nèi)胄械拈_始階段,我們的經(jīng)驗往往不成形,而且分不清哪些是好的經(jīng)驗?zāi)男┦遣缓玫慕?jīng)驗。
經(jīng)驗會在工作不斷碰壁的情況下逐步積累起來,我也一直堅持一個觀點,做項目如果研發(fā)階段非常順利,這樣注定后期要有忙不完的事情,反而做項目過程中問題不斷,所有的問題都迎刃而解,對于個人來說是寶貴的財富,對于一些平淡的事情我們可能過陣子就沒印象了,反而是項目中哪些折騰的我們多少個夜晚無眠的,會給人留下深刻的印象,使我們在下次在遇到這樣的問題時能夠快速的反應(yīng)。還有就是做項目的經(jīng)驗,從項目立項開始就介入,一直堅持項目做完會給人很大的提升,相反在項目中后期進入項目的,項目的架構(gòu)和流程已經(jīng)基本成型,只能沿著項目的路子走下去,會使后期介入的人員缺乏對項目的總體認識,風(fēng)險相對也比較少。項目早期介入的相當(dāng)于沒路走,自己趟出一條路來走,項目后期介入的相當(dāng)于選擇走哪條路,路已經(jīng)有了,只是做個選擇。
再有一個項目經(jīng)驗就是,做項目時,項目使用的工程文件的來處,基于老項目改造的話會有很多的細節(jié)問題無法體會,如果以后有相同的項目更換硬件MCU平臺時,可能會帶來一些不必要的風(fēng)險;加入新項目的工程是自己創(chuàng)建的或者接手的項目在時間允許的情況下,自己創(chuàng)建工程,這樣在有新項目來時,會讓我們能夠得心應(yīng)手。