0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

嵌入式開發(fā)過來人的經(jīng)驗(yàn)之談

STM32嵌入式開發(fā) ? 來源:STM32嵌入式開發(fā) ? 作者:STM32嵌入式開發(fā) ? 2021-03-03 14:54 ? 次閱讀

分享過來人的經(jīng)驗(yàn)之談,希望能給剛?cè)胄?a target="_blank">嵌入式開發(fā)的朋友一點(diǎn)兒幫助。

混跡互聯(lián)網(wǎng)行業(yè)七年有余,期間走了很多彎路,吃了不少苦。

大學(xué)階段

我讀的大學(xué)并不是什么好大學(xué),所以在大學(xué)開學(xué)之前我就打定主意要好好學(xué)習(xí),憑技術(shù)吃飯。開學(xué)前學(xué)完了PASCAL,那時(shí)連程序的概念都沒有,只好死記硬背代碼,拿紙做筆記。記不清楚用紙寫了多少程序,最長的一次在A4草稿紙寫了30多頁。就在這樣的條件下入門了C/C++。

第一個(gè)C語言HelloWorld程序,調(diào)試了幾個(gè)星期,當(dāng)時(shí)沒有人告訴我TC2.0需要設(shè)置下才能用。

大一學(xué)完了C、X86的匯編、數(shù)據(jù)結(jié)構(gòu)、C++ 。

大二準(zhǔn)備學(xué)VC和BC,當(dāng)時(shí)難以取舍,后來選了VC,不為別的,只為書店里兩本書,VC那本便宜6塊錢。

我的努力在班上無人能及,學(xué)的日夜不分,大三有了自己的計(jì)算機(jī)后更是如此。很多次父親在半夜教訓(xùn)我,責(zé)怪我是不是不要命了。我一直覺得自己基礎(chǔ)差,記憶力又不行,條件也不好,所以覺得只有多花點(diǎn)時(shí)間才能趕上別人。后來有許多朋友說我有計(jì)算機(jī)的天賦,我只能干笑。

我當(dāng)時(shí)用的是486,16M內(nèi)存、1G硬盤。顯示器是個(gè)二手的,輻射非常大,開機(jī)屏幕冒火花。安裝一個(gè)Windows NT4.0需要一個(gè)通宵,編譯一個(gè)BC5.0向?qū)傻某绦蛐枰獌蓚€(gè)小時(shí)。但是就是這臺破機(jī)器陪伴我兩年,讓我學(xué)會了VC、Delphi、SQL Server等。

大三假期在一個(gè)計(jì)算機(jī)研究所找了個(gè)實(shí)習(xí)機(jī)會,工作了兩個(gè)月一分錢也沒有拿到,但是這兩個(gè)月對我的發(fā)展幫助很大。由于工作認(rèn)真,在一位長者的引薦下開始和他們一起做項(xiàng)目,這使我在讀書期間有了自己的收入,在學(xué)生期間有1000多的收入我已經(jīng)非常滿足了,后來終于用自己賺的錢換了個(gè)新計(jì)算機(jī)。

涉足社會

大四下學(xué)期開始找工作,當(dāng)時(shí)非常幼稚地認(rèn)為工作經(jīng)驗(yàn)已經(jīng)很多。聽父母的想法,想去那個(gè)研究所。之前在那邊實(shí)習(xí)過的部門領(lǐng)導(dǎo)也希望我能去,大概是這種單位比較官僚的原因,最后沒去成。最后去了我兼職過的一家公司做管理信息系統(tǒng)MIS(Management Information System)的公司。畢業(yè)之前一年的時(shí)間里,做過各種MIS,從煤礦、煙廠、鐵路、到高校,什么有錢就做什么,工作也辛苦,經(jīng)常加班、通宵。從跟客戶談需求到設(shè)計(jì),再到編碼、測試、交付都要干。那時(shí)有滿滿的成就感,干勁十足,對自己很滿意,現(xiàn)在回想起來覺得真是膚淺。

剛走上工作崗位的學(xué)生容易被誤導(dǎo),覺得很受公司器重,實(shí)際上這樣的工作做下去可能永遠(yuǎn)是一個(gè)低層次的開發(fā)者。

你以為去跟用戶談需求、做設(shè)計(jì)就是系統(tǒng)分析和設(shè)計(jì)了嗎,國內(nèi)又有幾個(gè)公司能夠做的很到位很規(guī)范?一個(gè)公司不是通過了ISO9000或者CMM就能規(guī)范了,我現(xiàn)在在一家有幾十年歷史的外企工作,里面的管理不是一般國內(nèi)企業(yè)所能企及的。

作為一個(gè)畢業(yè)不久、剛步入過社會的學(xué)生,幾乎不可能在很短的時(shí)間掌握系統(tǒng)分析和設(shè)計(jì),面向?qū)ο?、UML只是一個(gè)工具,關(guān)鍵是人本身的思想,不是說你熟悉了C++ 、Rose就能夠做出好的設(shè)計(jì)。

注:統(tǒng)一建模語言(Unified Modeling Language,UML)是一種為面向?qū)ο笙到y(tǒng)的產(chǎn)品進(jìn)行說明、可視化和編制文檔的一種標(biāo)準(zhǔn)語言,是非專利的第三代建模和規(guī)約語言。UML是面向?qū)ο笤O(shè)計(jì)的建模工具,獨(dú)立于任何具體程序設(shè)計(jì)語言。

我的觀點(diǎn)是不在于你用什么工具和語言,而在于你干什么工作。你的設(shè)計(jì)體現(xiàn)了你的技術(shù)層次。

轉(zhuǎn)行嵌入式

干了一年MIS,我覺得非??鄲灒龅拇蠖鄶?shù)都是熟練工種的活,個(gè)人技術(shù)上沒有太多的提高也看不到方向。所以決定離開這個(gè)城市去上海,尋求更好的發(fā)展,并且打算放棄我以前的MIS。

由于是全新的行業(yè),我學(xué)的VC、Delphi、數(shù)據(jù)庫派不上用場,擺在我面前的是嵌入式、協(xié)議、信令一些我從未接觸過的知識。于是拼命的學(xué)習(xí),把自己當(dāng)做一個(gè)應(yīng)屆畢業(yè)生,半年過去我終于熟悉了工作,薪水也漲了。

記得公司安排我維護(hù)一個(gè)接入服務(wù)器軟件,由于代碼量不算太?。?萬行),資料和文檔都不齊全,我維護(hù)起來非常吃力,所以想重新把它做一遍,花了半年時(shí)間完成了接入服務(wù)器的軟件,并且實(shí)現(xiàn)了一個(gè)相對完整的TCP/IP協(xié)議棧。在這里我學(xué)會了嵌入式系統(tǒng)設(shè)計(jì)、驅(qū)動開發(fā)、TCP/IP和很多通信的知識。花了一年時(shí)間終于使自己從MIS開發(fā)轉(zhuǎn)到了通信行業(yè),并且站穩(wěn)了腳跟。

此時(shí),我的開發(fā)大多是對硬件的直接操作,不再受操作系統(tǒng),VC、Delhpi這些開發(fā)工具的約束,看到了另外一片天空。

學(xué)習(xí)IC設(shè)計(jì)

隨著開發(fā)的深入,軟件開發(fā)與硬件聯(lián)系越來越緊密,硬件知識的匱乏又對我的發(fā)展產(chǎn)生了障礙。芯片技術(shù)基本上掌握在國外公司的手里,這對做系統(tǒng)級設(shè)計(jì)是一個(gè)非常大的制約,一個(gè)新產(chǎn)品出來,第一道利潤也往往是最豐厚的利潤常常都被IC公司賺去了,國內(nèi)的廠商只能喝點(diǎn)湯。所以我決心解決自己的硬件技術(shù)障礙,并打算離開通信行業(yè),進(jìn)入IC設(shè)計(jì)相關(guān)領(lǐng)域。

當(dāng)然我明白如果我對硬件了解的非常少,沒有哪家IC公司會仁慈到招我這樣一個(gè)一竅不通的人來培訓(xùn)。所以我必須努力打好基礎(chǔ),學(xué)一些相關(guān)知識為以后做準(zhǔn)備。

就像我開始從MIS轉(zhuǎn)到通信一樣,我看過大量通信方面的書,并且給一個(gè)ISP(因特網(wǎng)服務(wù)提供商)做過RADIUS計(jì)費(fèi)分揀臺,在這樣的背景下這家通信公司才給了我這個(gè)機(jī)會。

我在的通信公司是做系統(tǒng)設(shè)計(jì)的,有不少PCB Layout硬件人員,平常我就注意向他們學(xué)習(xí),由于我做的是軟件,在公司看硬件資料不好意思,所以開始只好在家看,剛來上海工作我連續(xù)一年都在加班,后來不加了,因?yàn)槲乙獢D出時(shí)間學(xué)習(xí),通常我12點(diǎn)左右睡,第二天5點(diǎn)半起,我上班比較早,地鐵上如果人不多,我也用來看書。

學(xué)習(xí)當(dāng)然不會是一帆風(fēng)順的,有些實(shí)在不懂的問題就積累起來問硬件人員,他們的幫助使我學(xué)習(xí)進(jìn)度快了很多。因?yàn)樵跊]有人點(diǎn)撥的情況下自學(xué),我的一半時(shí)間是花在解決疑難問題上,但這種問題經(jīng)常是別人的一句話就可以讓我豁然開朗,我非常慶幸我有這樣的學(xué)習(xí)環(huán)境。

在后面的一年里,我學(xué)會了看硬件原理圖,學(xué)會了簡單的硬件設(shè)計(jì)。當(dāng)你熟悉硬件后大家又會覺得你好像原本就是軟硬件都懂的,同事們也都習(xí)以為常了。這個(gè)時(shí)候我可以把硬件資料堂堂正正的拿到公司看,沒有人再大驚小怪了。

讓我比較自豪的是我通過自己的努力做了一個(gè)IAD(軟交換的終端設(shè)備)系統(tǒng)方案,包含軟硬件的選型、設(shè)計(jì)等內(nèi)容,這個(gè)方案得到了公司和同事們的認(rèn)同,讓我感到非常欣慰。技術(shù)是相輔相成的,當(dāng)我的硬件有了一定的進(jìn)步后,我的軟件設(shè)計(jì)也有了很大的提高 ,我可以從更深層次理解問題。

軟硬件的結(jié)合使我的設(shè)計(jì)水平上了一個(gè)臺階。我現(xiàn)在寫的這個(gè)操作系統(tǒng),編譯后我把程序反編譯成匯編,找出其中不優(yōu)化的代碼,然后在C程序中進(jìn)行調(diào)整。

舉個(gè)例子,很多CPU沒有專門的乘法指令,這個(gè)大家應(yīng)該都知道,在這種CPU上進(jìn)行一個(gè)乘法操作常常會花費(fèi)大量的指令周期,有的朋友會說這個(gè)我知道。我會盡量避免采用×號,但是事情往往不是那么簡單,你知道C語言中數(shù)組的下標(biāo)操作是怎么實(shí)現(xiàn)的嗎?仔細(xì)看看反匯編的代碼你就會明白,同樣是通過下標(biāo)的定位操作,C編譯器會有時(shí)候會產(chǎn)生位移指令,但有時(shí)候會用乘法實(shí)現(xiàn),兩者效率往往是天壤之別,所以明白這些問題你才能將系統(tǒng)性能提升到極致。

希望在軟件上做的比較深入的朋友們有機(jī)會學(xué)學(xué)硬件以及其它相關(guān)知識,尤其是做底層開發(fā)和嵌入式設(shè)計(jì)的。這對軟件技術(shù)的提高有非常大的幫助,否則很多事情你只知道該這樣但不會明白為什么該這樣。

只有干好本職工作后,我才會學(xué)習(xí)與工作關(guān)系不大的技術(shù),這樣公司的上司才不至于反感。

在入門階段的問題我通常不去問那些資深人士 ,而是問一些資歷比較淺的朋友,比如剛畢業(yè)不久的學(xué)生,因?yàn)樗麄兺鶗阍敿?xì)的講解,而資深人士通常覺得你的問題太簡單,所以回答的也很簡單,我又不好意思多問。等技術(shù)上了一定的層次后我才會問他們,他們也能給你比較深入的回答。

我最終目的是IC而不是PCB,所以我下一步的準(zhǔn)備開始學(xué)習(xí)IC設(shè)計(jì)的知識。公司的同事沒有懂IC設(shè)計(jì)的,后面的路又要靠自己了。買了不少相關(guān)的書,在網(wǎng)上也查了很多的資料。花了大量的時(shí)間去學(xué)習(xí)VHDL,并且用軟件進(jìn)行了一些簡單的設(shè)計(jì)和仿真。沒有設(shè)計(jì)ASIC,只是針對FPGA。我漸漸明白了IC設(shè)計(jì)的基本流程,同時(shí)也明白了這條路的艱辛。

跨行發(fā)展

換行業(yè)是一個(gè)非常痛苦的過程,尤其從一個(gè)春風(fēng)得意的位置換到一個(gè)陌生的崗位。在原來那家通信公司,我是唯一一個(gè)兩年時(shí)間漲了五次工資的員工,公司和同事都給了我極大的認(rèn)可,工作上也常常被委以重任。

最終還是做好了跳槽的準(zhǔn)備,我向一家業(yè)界有一定知名度的IC設(shè)計(jì)公司投了簡歷,經(jīng)過4個(gè)多小時(shí)漫長的面試。其他的一切我都比較滿意,唯獨(dú)薪資差強(qiáng)人意,我也明白原因,因?yàn)槲沂沁@個(gè)行業(yè)的新人,我沒有經(jīng)驗(yàn)。

公司老板問我6000多一個(gè)月能不能接受,我知道他也是照章辦事。想想我通信行業(yè)的朋友們,基本上都是年薪10萬以上,月薪過萬的也比比皆是,朋友們也幫我介紹了不 少待遇不錯的公司。

當(dāng)時(shí)我很猶豫,我熱愛我的事業(yè),但我也是一個(gè)普通的人,也需要養(yǎng)家糊口,也想早一點(diǎn)買房買車。生活給我出了一道難題。

為了能離自己的夢更近一些,我選擇了這家IC公司,自己的薪資和公司剛進(jìn)來的碩士研究生相差無幾,但為了今后的發(fā)展只能忍受,一切得重新開始。

在已經(jīng)在這家新公司上了一個(gè)多月的班,開始非常艱難,現(xiàn)在慢慢適應(yīng)了。第一個(gè)月結(jié)束時(shí),Team Leader找我談話,說我是新進(jìn)員工中最優(yōu)秀的一個(gè),我心里很欣慰,這也算對我努力的一個(gè)肯定吧。

總結(jié)

引用父親常說的一句話,身體是革命的本錢。

我來上海以前學(xué)習(xí)過于拼命,常常晚上只睡3個(gè)多小時(shí),家人也說像我這樣拼命活不過60歲。那時(shí)的拼命使我的身體受到了影響,有一次早上突然腰肌劇痛難忍,痛的我倒在床上站不起來。

學(xué)習(xí)工作是一個(gè)長期的過程, 像馬拉松而非百米沖刺。要注意調(diào)整學(xué)習(xí)和工作的強(qiáng)度,保證每天盡量有相對充沛的精力。

以前換行業(yè)是因?yàn)樽约旱呐d趣所致,希望我的經(jīng)歷不要給朋友一個(gè)錯誤的導(dǎo)向,其實(shí)各行各業(yè)做到頂尖都是大有可為的。

現(xiàn)在我非常注意學(xué)習(xí)的效率和技巧,比如說學(xué)一相對陌生的技術(shù),不妨問一問有經(jīng)驗(yàn)的人,不需要問很多,往往他不經(jīng)意的幾句話會給你非常大的幫助。

原文標(biāo)題:嵌入式開發(fā)經(jīng)驗(yàn)分享,把學(xué)習(xí)當(dāng)作一種興趣

文章出處:【微信公眾號:STM32嵌入式開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5060

    文章

    18979

    瀏覽量

    302233
  • IC
    IC
    +關(guān)注

    關(guān)注

    36

    文章

    5881

    瀏覽量

    175096

原文標(biāo)題:嵌入式開發(fā)經(jīng)驗(yàn)分享,把學(xué)習(xí)當(dāng)作一種興趣

文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    嵌入式開發(fā)常見問題排查

    嵌入式開發(fā)問題排查很多人認(rèn)為嵌入式開發(fā)很難,主要是因?yàn)樵谶@個(gè)過程中常常會遇到各式各樣的問題。這些問題的復(fù)雜性和多樣性使得許多人感到困惑和無所適從。然而,如果將這些問題逐一拆解,實(shí)際上大部分都可以
    的頭像 發(fā)表于 09-22 08:04 ?243次閱讀
    <b class='flag-5'>嵌入式開發(fā)</b>常見問題排查

    聚焦嵌入式開發(fā)中的合規(guī)性工具、項(xiàng)目管理工具、版本迭代工具應(yīng)用

    日前,龍智攜嵌入式開發(fā)及管理解決方案亮相2024上海國際嵌入式展(embedded world China 2024)。展會期間,我們對話了多位龍智資深DevSecOps顧問及技術(shù)支持專家
    的頭像 發(fā)表于 07-29 15:15 ?443次閱讀

    嵌入式開發(fā)前景怎么樣?

    嵌入式開發(fā)前景非常廣闊,這主要得益于物聯(lián)網(wǎng)、人工智能、大數(shù)據(jù)等技術(shù)的快速發(fā)展,以及嵌入式系統(tǒng)在各個(gè)領(lǐng)域的廣泛應(yīng)用。以下是對嵌入式開發(fā)前景的詳細(xì)分析
    的頭像 發(fā)表于 07-10 09:00 ?2371次閱讀
    <b class='flag-5'>嵌入式開發(fā)</b>前景怎么樣?

    嵌入式開發(fā)就業(yè)前景怎么樣?

    和醫(yī)療器械使用經(jīng)驗(yàn)。 3)工業(yè)控制 工業(yè)控制是指通過各種控制設(shè)備和系統(tǒng),對工業(yè)生產(chǎn)過程進(jìn)行監(jiān)測、控制和優(yōu)化。隨著工業(yè)自動化和智能化的發(fā)展,工業(yè)控制領(lǐng)域?qū)?b class='flag-5'>嵌入式開發(fā)的需求也在不斷增加。在工業(yè)控制領(lǐng)域
    發(fā)表于 06-07 14:51

    網(wǎng)關(guān)怎么處理多個(gè)同時(shí)發(fā)過來的信息?

    網(wǎng)關(guān)怎么處理多個(gè)同時(shí)發(fā)過來的信息,求程序解析
    發(fā)表于 04-29 07:55

    ARM Cortex-A53嵌入式開發(fā)平臺Android手冊

    電子發(fā)燒友網(wǎng)站提供《ARM Cortex-A53嵌入式開發(fā)平臺Android手冊.pdf》資料免費(fèi)下載
    發(fā)表于 04-28 15:10 ?0次下載

    fpga是嵌入式開發(fā)

    FPGA(現(xiàn)場可編程門陣列)與嵌入式開發(fā)之間確實(shí)存在一定的關(guān)聯(lián),但它們在本質(zhì)上是兩個(gè)不同的領(lǐng)域。
    的頭像 發(fā)表于 03-15 14:18 ?951次閱讀

    嵌入式開發(fā)學(xué)習(xí)的十三法則分享

    嵌入式開發(fā)學(xué)習(xí)是一個(gè)不斷積累和總結(jié)的過程,來自一個(gè)嵌入式開發(fā)高級工程師為我們總結(jié)的關(guān)于嵌入式開發(fā)學(xué)習(xí)的十三法則,大家不妨參考一下: 一、冗余度法則 在嵌入式系統(tǒng)具有足夠的冗余度
    發(fā)表于 12-21 06:32

    嵌入式開發(fā)為什么需要輸出調(diào)試信息?

    嵌入式開發(fā)為什么需要輸出調(diào)試信息? 因?yàn)檩敵稣{(diào)試信息是嵌入式開發(fā)中一項(xiàng)非常重要的實(shí)踐,它有助于保證軟件的可靠性、穩(wěn)定性和性能,也是故障排查的關(guān)鍵工具之一。 嵌入式開發(fā)輸出調(diào)試信息主要有以下
    發(fā)表于 11-28 16:46

    嵌入式開發(fā)測試秘訣

    嵌入式軟件開發(fā)過程中,花在測試和花在編碼的時(shí)間比通常在3:1左右(實(shí)際上可能更多)。這個(gè)比例會隨著工程師編程、測試水平的提高而不斷下降,但無論如何,軟件測試都是嵌入式軟件開發(fā)中至關(guān)重
    的頭像 發(fā)表于 11-24 16:18 ?494次閱讀

    嵌入式C語言的結(jié)構(gòu)特點(diǎn)

    嵌入式開發(fā)中既有底層硬件的開發(fā)又涉及上層應(yīng)用的開發(fā),即涉及系統(tǒng)的硬件和軟件,C語言既具有匯編語言操作底層的優(yōu)勢,又具有高級語言功能性強(qiáng)的特點(diǎn),當(dāng)之無愧地成為嵌入式開發(fā)的主流語言。在 S
    的頭像 發(fā)表于 11-24 16:16 ?628次閱讀
    <b class='flag-5'>嵌入式</b>C語言的結(jié)構(gòu)特點(diǎn)

    c語言嵌入式開發(fā)

    電子發(fā)燒友網(wǎng)站提供《c語言嵌入式開發(fā).zip》資料免費(fèi)下載
    發(fā)表于 11-17 14:11 ?2次下載
    c語言<b class='flag-5'>嵌入式開發(fā)</b>

    嵌入式開發(fā)系統(tǒng)基礎(chǔ)知識

    電子發(fā)燒友網(wǎng)站提供《嵌入式開發(fā)系統(tǒng)基礎(chǔ)知識.pdf》資料免費(fèi)下載
    發(fā)表于 11-17 10:59 ?11次下載
    <b class='flag-5'>嵌入式開發(fā)</b>系統(tǒng)基礎(chǔ)知識

    嵌入式開發(fā)學(xué)習(xí)路線

    電子發(fā)燒友網(wǎng)站提供《嵌入式開發(fā)學(xué)習(xí)路線.doc》資料免費(fèi)下載
    發(fā)表于 11-17 10:13 ?13次下載
    <b class='flag-5'>嵌入式開發(fā)</b>學(xué)習(xí)路線

    嵌入式開發(fā)學(xué)習(xí)路線分享

    的實(shí)際應(yīng)用范疇,可以說目前市場上對嵌入式開發(fā)人才的需求越來越大,很多小伙伴都想通過培訓(xùn)學(xué)習(xí)的方式走向嵌入式開發(fā)相關(guān)的崗位。下面,小編就給各位小伙伴介紹一個(gè)簡單易懂的學(xué)
    的頭像 發(fā)表于 11-15 11:51 ?1281次閱讀
    <b class='flag-5'>嵌入式開發(fā)</b>學(xué)習(xí)路線分享