到印度出差差不多三個月,終于又回來了。寫一點自己對于硬件以及軟件的一點認(rèn)識及體會吧。
每當(dāng)有了一點技術(shù)心得,總想寫出來和同行分享分享,所謂不吐不快,是為此理。
到印度出差差不多三個月,終于又回來了。寫一點自己對于硬件以及軟件的一點認(rèn)識及體會吧。
每當(dāng)有了一點技術(shù)心得,總想寫出來和同行分享分享,所謂不吐不快,是為此理。
接下來說說嵌入式崗位。個人覺得這一崗位相較于純硬件崗位,需要精通匯編或者C語言,現(xiàn)在主流的嵌入式語言當(dāng)然是C語言。這一崗位通常是和單片機及外圍電路打交道。這一崗位的就業(yè)方向個人覺得比純硬件崗位,就業(yè)面更廣更寬。
至于說薪資待遇這一塊,個人覺得還是仁者見仁,智者見智。我曾經(jīng)遇到過精通設(shè)計微電機的工程師,這是純硬件崗位,他通過個人的努力加上個人的運氣,在上海實現(xiàn)了有房有車的追求(有點世俗)。我也遇到過做單片機開發(fā)的工程師,在三四線城市,月薪4,5k左右。所以在帖子中我盡量客觀分析各個崗位對于既能要求的異同點,至于說薪資待遇,那就看各位的功力和機遇了。
嵌入式崗位之所以說就業(yè)面廣,是因為各行各業(yè)只要涉及到弱電控制,幾乎都離不開單片機。即使是傳統(tǒng)的開關(guān)電源行業(yè)也需要涉及電壓電流的采樣顯示,PWM脈寬的遠(yuǎn)程控制調(diào)節(jié)等,這必然得用到單片機的ADC采樣功能。
嵌入式崗位大至可以劃分為工業(yè)領(lǐng)域,醫(yī)療領(lǐng)域,通信領(lǐng)域,教育行業(yè),船舶通導(dǎo)領(lǐng)域等等。接下來說說嵌入式工程師需要具備的專業(yè)既能。首當(dāng)其沖是C語言,必須精通C語言,最好能達(dá)到同聲翻譯的水平。即客戶提出具體的技術(shù)指標(biāo),嵌入式工程師第一時間就能用C語言描述。其次需要熟悉至少一種單片機,目前大多數(shù)工程師入門接觸到的第一款單片機就是8051單片機。掌握了8051單片機之后,根據(jù)目前的流行趨勢,我們需要著手熟悉掌握STM32單片機。個人覺得如果具備了上述兩項技能,嵌入式工程師即可入門了,后面的路就需要你在學(xué)習(xí)中,工作中不斷的深入。至于說嵌入式操作系統(tǒng)以及對于單片機內(nèi)部的電路架構(gòu)的理解當(dāng)然是越深入越好,這就需要我們保持足夠的學(xué)習(xí)能力,永不疲倦的追求技術(shù)。
另外,我接觸到的嵌入式工程師,普遍的存在基本的硬件基礎(chǔ)知識較薄弱,導(dǎo)致的直接影響就是遇到硬件相關(guān)的問題,很多時候不知道如何解決。這也是廣大的嵌入式工程師急需加強補充的地方。
推薦的第一本書籍是C語言書籍,C Primer Plus。個人覺得這本書對于C語言的講解非常到位。另一本書,C語言入門經(jīng)典。這本書重視基礎(chǔ)知識點的講解婆媳。個人覺得這兩本書結(jié)合在一起學(xué)習(xí),對于C語言的入門及提高是非常有幫助的。只有將基礎(chǔ)打牢了,才便于后續(xù)知識的進(jìn)一步學(xué)習(xí)。如果能夠?qū)語言學(xué)到同聲翻譯的水平,個人覺得這才是真正的大成。能夠在大腦中將現(xiàn)場客戶的技術(shù)要求瞬間轉(zhuǎn)化為單片機能夠執(zhí)行的代碼,這就是C語言的同聲翻譯。
C語言的書籍推薦了幾本,接下來推薦一點C語言的視頻教程。郝斌C語言講解,這套視頻是我當(dāng)初學(xué)習(xí)C語言的入門教程,個人覺得郝斌老師講的很接地氣,看書時遇到的很多語法上的疑點在郝斌老師的視頻講解中都得到了解答。這套視頻教程一共180級,比較龐大,需要大家有一點學(xué)習(xí)的耐心和熱情。
另一套視頻,C語言深度解剖,這套視頻可以有助于我們深入理解C語言的諸多語法細(xì)節(jié),細(xì)細(xì)體會這套視頻,你的C語言功力會提升很多,當(dāng)然也有配套的書籍,書名也叫C語言深度解剖。
電子計算機這一行業(yè)涉及到的技術(shù)及知識點汗牛充棟,就談C語言吧,貌似很簡單,但是等你真正深入進(jìn)去才會發(fā)現(xiàn),C語言入門簡單,但是想用好C語言,那是真的不容易。通過簡單的C語言編程,可以讓單片機實現(xiàn)各種花式流水燈的操作。通過C語言編程,也可以讓單片機跑系統(tǒng)。這就是C語言的魅力。上述推薦的幾本C語言書籍及視頻教程只能幫助大家熟悉C語言的使用。真正想大成,還是需要通過實實在在的項目才能成長起來。
深入學(xué)習(xí)C語言,繞不開的一門學(xué)科便是數(shù)據(jù)結(jié)構(gòu)。C語言的核心以及精髓是什么,是指針。但是貌似單片機編程中沒有涉及到任何的指針類的語法(庫函數(shù)除外)。偶爾涉及到不同函數(shù)之間的數(shù)據(jù)傳遞時,我們也可以通過全局變量來解決,完全沒有必要采用指針操作。那指針到底用在哪里呢。
如果不知道指針到底用在哪里,真心建議大家好好翻一翻基于C語言編寫的數(shù)據(jù)結(jié)構(gòu)書籍,只有在深入學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的解除上,我們才能體會到指針是C語言的精髓這句話的真諦?;贑語言的單片機編程屬于底層編程,很多程序的編寫完全可以避免指針的使用,或者說常規(guī)的C語言語法已經(jīng)足夠我們應(yīng)付底層的驅(qū)動編寫了。不過此時的我們距離所謂的C語言高手還有一段距離。這段距離就是結(jié)構(gòu)體和指針??邕^結(jié)構(gòu)體及指針這道門檻,你才算步入了C語言高手的行列,后續(xù)的修煉就靠操作系統(tǒng)了,這是后話,暫且不表。
那如何跨過結(jié)構(gòu)體及指針這道門檻呢,學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)吧。指針的優(yōu)點是它非常的靈活,指針的缺點也恰恰是它太過靈活。數(shù)據(jù)結(jié)構(gòu)涉及到第一個知識點是鏈表。學(xué)好了鏈表,理解了鏈表,后續(xù)的樹,二叉樹以及圖等知識點,你才能更深入的學(xué)習(xí)。不過它們的操作無外乎插入,刪除,查找等等。學(xué)好了指針,你會發(fā)現(xiàn)編程真正玩的不過是內(nèi)存的分配釋放而已。
推薦兩本書籍,第一本是嚴(yán)蔚敏師太編寫的《數(shù)據(jù)結(jié)構(gòu)》,第二本是《大話數(shù)據(jù)結(jié)構(gòu)》,作者程杰。
今天終于可以坐下來寫點文字了。
剛?cè)胄械墓こ處焼柕淖疃嗟哪^于前途二字。老鳥們通常會告訴小菜鳥們,做電源好,只要涉及到電,必然就有電源,所以做電源絕對不用考慮失業(yè)。這句話不錯,電源雖然屬于電子行業(yè),但相對于其他電子行業(yè),電源技術(shù)的更新發(fā)展其實相當(dāng)緩慢。目前市面上我們接觸到的電源模塊很多都還是采用的模擬技術(shù)實現(xiàn)。很多行業(yè)甚至依舊采用線性電源。
不過做電源技術(shù)久了,我也發(fā)現(xiàn)電源工程師的局限性。除了電源,我們貌似會的還是電源,至于說單片機,F(xiàn)PGA等,幾乎不懂。而且最可怕的是,由于長久呆在電源行業(yè),想換個其他電子行業(yè),卻發(fā)現(xiàn)自己幾乎什么都玩不轉(zhuǎn)。想把電源技術(shù)玩出花來,跳不過去的一道坎就是單片機。模擬電源有其局限性,涉及到多電源數(shù)據(jù)采集控制通信,以及多模塊電源聯(lián)合控制等,想模擬電子技術(shù)實現(xiàn)就比較困難,而通過單片機編程實現(xiàn)則相對比較簡單。重點來了,我們不會單片機編程,怎么辦?
很多人埋頭于電源技術(shù),花了很多時間終于自認(rèn)為把模擬電源技術(shù)掌握好了,抬頭一看,自己早已過了而立之年。年齡大了,肩上的責(zé)任重了,自己的學(xué)習(xí)能力以及求知欲卻慢慢退化了。
人到中年,面對日新月異的電子技術(shù),很多人選擇的是逃避。君不見各大論壇經(jīng)常充斥著這樣的謬論:“做技術(shù),但不可一味追求技術(shù)。做技術(shù)是沒有前途的,做到一定的程度還是轉(zhuǎn)行做管理吧。”每每看到這樣的犬儒言論,我總覺得很好笑。這里我就不抨擊了,但我總覺得人生苦短,既然選擇了一個方向,那就應(yīng)該堅定不移的走下去,矢志不渝,不忘初心。
人到中年,面對日新月異的電子技術(shù),還有的人選擇了迎難而上。接下來我推薦的書籍主要用于那些想在數(shù)字控制領(lǐng)域有所斬獲的朋友。另外在此再糾正一個觀點,很多工程師覺得模擬電子技術(shù)相對于數(shù)字電子技術(shù),難度更大。其實不管是模擬電子技術(shù)還是數(shù)字電子技術(shù)都不簡單,都需要我們這些平凡人花費大量的時間去鉆研才有可能有所突破。
接下來我給大家推薦一些數(shù)字電子技術(shù)及CPU技術(shù)方面的書籍。
第一本書《數(shù)字電子技術(shù)基礎(chǔ)》,閻石主編。這本書我翻看了至少有三遍,視頻講解也看了差不多兩遍,只能說數(shù)字電子技術(shù)不簡單,真的不簡單。
掌握了一部分?jǐn)?shù)字電子技術(shù),我們有必要開始學(xué)習(xí)計算機相關(guān)的技術(shù)基礎(chǔ)。首先推薦的這本書為《邏輯與計算機設(shè)計基礎(chǔ)》。這本書前半部分講解的依舊是數(shù)字電子技術(shù),后半部分講解的是CPU的結(jié)構(gòu)組成。個人覺得這本書需要我們好好靜下心來仔細(xì)琢磨琢磨,書中后半部分對于CPU的體系結(jié)構(gòu)講解的比較深入,個人覺得非常適合于那些想深入理解CPU組成結(jié)構(gòu)的朋友。
繼續(xù)更新,今天準(zhǔn)備再推薦幾本微處理器及計算機相關(guān)的書籍。
我們每天接觸的計算機,到底由哪些部件組成呢,各個模塊之間是如何協(xié)同工作的呢。如果大家想系統(tǒng)地了解計算機的內(nèi)部原理,接下來這本書個人覺得大家有必要看看,《計算機組成與體系結(jié)構(gòu)》。這本書對計算機組成及體系講解的比較多,個人覺得通過這本書可以幫助大家對計算機建立一種立體的認(rèn)識,而不僅僅只是把它當(dāng)作黑盒子或者是工具。不過話說回來,即使把這類講解計算機體系及結(jié)構(gòu)方面的書籍看透,我們還是不能通過數(shù)字集成電路做出CPU。通過閱讀這類書籍僅僅是幫助大家更好地理解計算機原理組成罷了。
了解了計算機的內(nèi)部功能模塊及其作用,接下來我們要談?wù)動嬎銠C軟硬件之間是如何協(xié)同工作的,它們各自的處理數(shù)據(jù)的方式有什么異同呢?
軟硬件對于不同的數(shù)據(jù)處理都有著各自的優(yōu)缺點,如何權(quán)衡二者的優(yōu)缺點呢?這時僅僅通過我們掌握的那點可憐的計算機技術(shù)知識是遠(yuǎn)遠(yuǎn)不夠的。
有句話說得好,書到用時方恨少。這句話尤其體現(xiàn)在電子計算機領(lǐng)域,面對每天遇到的各種各樣的技術(shù)問題,只恨自己能力不夠,不知道諸位看官是否有這樣的經(jīng)歷。我自己在平時的工作中經(jīng)常感覺自己的知識儲備不夠,很多時候是通過自己的反復(fù)調(diào)試得以將問題解決,但為什么會出現(xiàn)這樣的問題,我卻是一知半解,更多的時候是通過嘗試以及直覺。
言歸正傳,想要深入的了解計算機軟硬件之間的協(xié)同作業(yè),《計算機組成與設(shè)計硬件/軟件接口》這本書需要我們好好消化消化。另外我得補充一點,這本書的作者是計算機體系結(jié)構(gòu)的大拿David A.Patterson 和John L.Hennessy,同時他們也是RISC的創(chuàng)始人,mips的發(fā)動者。這兩位作者還出了一本書《計算機體系結(jié)構(gòu)量化方法》。
畢竟是大牛出的書籍,再加上我本身的資質(zhì)相當(dāng)一般,很多知識點看了好幾遍依舊是一頭霧水,我一點也不急。余生只做一件事,就是把計算機技術(shù)學(xué)好,所以看到不懂的地方我就勉強看一下,有個大至的印象,接著往后看??吹亩嗔?,多多少少都會有一點心得體會,隨性而已。
抱著這樣的心態(tài),我每天學(xué)習(xí)計算機技術(shù)相關(guān)的知識,并不會很厭倦,偶爾有了厭學(xué)情緒,就暫且放一放,等恢復(fù)了學(xué)習(xí)的熱情之后繼續(xù)啃書。學(xué)習(xí)本身是個痛苦的過程,想長久地走下去,建議大家盡量走的慢點,別急火攻心,走岔路傷了元氣從此看到書籍就頭疼,那就得不償失了。話說國內(nèi)的教育模式,絕大多數(shù)人都有厭學(xué)情緒,如何調(diào)動自己的學(xué)習(xí)情緒,就仁者見仁,智者見智了。