對于嵌入式行業來說,有很多人徘徊在嵌入式的門口,不敢踏進,每每在進入這一行業之前都會有疑惑:嵌入式行業靠不靠譜,會不會被坑,看到網上很多出現了嵌入式坑,嵌入式是個坑這樣的詞,所以我就這個做了一點研究。
我先明確的讓你們知道,對于嵌入式來說,嵌入式坑的地方就是嵌入式學習太廣泛,但是它既有弊,但是利卻比弊大,我為什么這么說,聽我細細分析道來:
首先我先來簡單的說一下嵌入式是什么,以免一些想要入行的人可以深入理解一下:嵌入式系統嵌入式系統是以應用為中心,以計算機技術為基礎,并且軟硬件可裁剪,適用于對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統。不要看他的定義這么長不好懂,其實在這里幾個字就可以概括:專用的、可裁剪的、計算機系統。
了解了上面這些,那就開始進入正題,嵌入式行業他的坑就在他的廣泛,什么都會接觸學習。嵌入式工程師就是硬件工程師與軟件工程師的合體!別問我是哪一類軟件工程師,反正不是前端、后端、APP、測試、運維。也別問我是什么硬件工程師,電源、單片機、高頻、通信……你會做你就上!給你個嵌入式工程師的頭銜你就是軟件硬件小能手,堪比全棧工程師。嵌入式實際上是軟硬結合的一項領域,既要懂硬件又要懂軟件。
硬件要做一款產品很不容易,要考慮各種方案的選型,硬件方案的選型可不像移動開發一樣是選Android呢還是iOS,是用Java還是Delphi那么簡單,硬件工程師眼中只有電路圖!原理圖!
我喜歡把嵌入式分為四個層次,硬件層、驅動層、系統層和應用層,前面所說是屬于硬件層,需要會畫PCB、原理圖,可以畫2層板、4層板甚至更高。那下面說說其他的三層。如果某個人在單片機上寫過定時器、數碼管、溫度傳感器的程序,用過UART、SPI、IIC、CAN等通信方式、更厲害的話接觸過藍牙協議棧或者TCP/IP協議棧,可以稱其為驅動工程師。都是底層代碼,雖然有難有易。系統層:一般個人或小公司是寫不了的,聽說Windows某版本用了300人寫了2年。只有大公司才會想著自己寫系統,
應用層相對來說比較簡單,只要你具備一定的語言基礎,像C語言是必須得有的語言基礎,又如C++、Java等等;再加上對嵌入式應用層的開發有一個整體的框架,像進程間的通信、線程通信、TCP\IP協議、socket編程等等,那有了這些基礎之后對于勝任一個嵌入式應用層工程師是沒有問題的。但是對于嵌入式軟件工程師來說,并不是簡單地只懂軟件就可以了,你需要懂硬件,懂通信,會看原理圖。
在這里你對嵌入式的坑是不是有了了解,嵌入式就是需要你學習很多知識,了解很多,但是有句古話說的好:技多不壓身。學的多,自然也就硬,嵌入式行業是個柔性的后路極多的行業,可能嵌入式軟件勢頭不好,我可以轉去做硬件,做硬件勢頭不好,我在努力一下去研究算法,由嵌入式轉軟件開發容易,但是反過來可就不那么簡單了。嵌入式行業是個時間沉淀的過程,無人能逆襲,做不到極致,只能做的更好。這話怎么說呢,就是五年的不如十年的硬,十年的不如二十年的硬。年輕人的優勢就是思維靈活,接受新東西快,所以入行常常靠軟件這個門路,入行幾年開始積累硬件的知識,從底層追求極致,硬件是個慢功夫,經驗比書本上的知識準,或者說,有些東西寫不進書里只能自己明白,這就需要經歷,所以,每個人都要爬臺階。然而軟件開發,處境十分尷尬,做幾年,前有同行擋路,后有新人競爭,兩頭堵。做十年和做五年功效是一樣的,換句話說,很容易“滿級”。嵌入式的坑也是一個嵌入式行業的利劍,可以這個不行,去做那個,這都是可以的,前提是你要學的好,嵌入式的坑,也是一個自我全面發展的一個渠道,不會像有些技術一樣,就只學這個,出去了就只能做這個,其他不會,所以嵌入式這個坑還是利處比較大的咧。嘿嘿,好好學準沒錯,好好把握嵌入式這個時機。