精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

嵌入式開發過來人的經驗之談

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

分享過來人的經驗之談,希望能給剛入行嵌入式開發的朋友一點兒幫助。

混跡互聯網行業七年有余,期間走了很多彎路,吃了不少苦。

大學階段

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

第一個C語言HelloWorld程序,調試了幾個星期,當時沒有人告訴我TC2.0需要設置下才能用。

大一學完了C、X86的匯編、數據結構、C++ 。

大二準備學VC和BC,當時難以取舍,后來選了VC,不為別的,只為書店里兩本書,VC那本便宜6塊錢。

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

我當時用的是486,16M內存、1G硬盤。顯示器是個二手的,輻射非常大,開機屏幕冒火花。安裝一個Windows NT4.0需要一個通宵,編譯一個BC5.0向導生成的程序需要兩個小時。但是就是這臺破機器陪伴我兩年,讓我學會了VC、Delphi、SQL Server等。

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

涉足社會

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

剛走上工作崗位的學生容易被誤導,覺得很受公司器重,實際上這樣的工作做下去可能永遠是一個低層次的開發者

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

作為一個畢業不久、剛步入過社會的學生,幾乎不可能在很短的時間掌握系統分析和設計,面向對象、UML只是一個工具,關鍵是人本身的思想,不是說你熟悉了C++ 、Rose就能夠做出好的設計。

注:統一建模語言(Unified Modeling Language,UML)是一種為面向對象系統的產品進行說明、可視化和編制文檔的一種標準語言,是非專利的第三代建模和規約語言。UML是面向對象設計的建模工具,獨立于任何具體程序設計語言。

我的觀點是不在于你用什么工具和語言,而在于你干什么工作。你的設計體現了你的技術層次。

轉行嵌入式

干了一年MIS,我覺得非常苦悶,做的大多數都是熟練工種的活,個人技術上沒有太多的提高也看不到方向。所以決定離開這個城市去上海,尋求更好的發展,并且打算放棄我以前的MIS。

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

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

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

學習IC設計

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

當然我明白如果我對硬件了解的非常少,沒有哪家IC公司會仁慈到招我這樣一個一竅不通的人來培訓。所以我必須努力打好基礎,學一些相關知識為以后做準備。

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

我在的通信公司是做系統設計的,有不少PCB Layout硬件人員,平常我就注意向他們學習,由于我做的是軟件,在公司看硬件資料不好意思,所以開始只好在家看,剛來上海工作我連續一年都在加班,后來不加了,因為我要擠出時間學習,通常我12點左右睡,第二天5點半起,我上班比較早,地鐵上如果人不多,我也用來看書。

學習當然不會是一帆風順的,有些實在不懂的問題就積累起來問硬件人員,他們的幫助使我學習進度快了很多。因為在沒有人點撥的情況下自學,我的一半時間是花在解決疑難問題上,但這種問題經常是別人的一句話就可以讓我豁然開朗,我非常慶幸我有這樣的學習環境。

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

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

軟硬件的結合使我的設計水平上了一個臺階。我現在寫的這個操作系統,編譯后我把程序反編譯成匯編,找出其中不優化的代碼,然后在C程序中進行調整。

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

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

只有干好本職工作后,我才會學習與工作關系不大的技術,這樣公司的上司才不至于反感。

在入門階段的問題我通常不去問那些資深人士 ,而是問一些資歷比較淺的朋友,比如剛畢業不久的學生,因為他們往往會跟你詳細的講解,而資深人士通常覺得你的問題太簡單,所以回答的也很簡單,我又不好意思多問。等技術上了一定的層次后我才會問他們,他們也能給你比較深入的回答。

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

跨行發展

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

最終還是做好了跳槽的準備,我向一家業界有一定知名度的IC設計公司投了簡歷,經過4個多小時漫長的面試。其他的一切我都比較滿意,唯獨薪資差強人意,我也明白原因,因為我是這個行業的新人,我沒有經驗。

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

當時我很猶豫,我熱愛我的事業,但我也是一個普通的人,也需要養家糊口,也想早一點買房買車。生活給我出了一道難題。

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

在已經在這家新公司上了一個多月的班,開始非常艱難,現在慢慢適應了。第一個月結束時,Team Leader找我談話,說我是新進員工中最優秀的一個,我心里很欣慰,這也算對我努力的一個肯定吧。

總結

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

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

學習工作是一個長期的過程, 像馬拉松而非百米沖刺。要注意調整學習和工作的強度,保證每天盡量有相對充沛的精力。

以前換行業是因為自己的興趣所致,希望我的經歷不要給朋友一個錯誤的導向,其實各行各業做到頂尖都是大有可為的。

現在我非常注意學習的效率和技巧,比如說學一相對陌生的技術,不妨問一問有經驗的人,不需要問很多,往往他不經意的幾句話會給你非常大的幫助。

原文標題:嵌入式開發經驗分享,把學習當作一種興趣

文章出處:【微信公眾號:STM32嵌入式開發】歡迎添加關注!文章轉載請注明出處。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5068

    文章

    19017

    瀏覽量

    303245
  • IC
    IC
    +關注

    關注

    36

    文章

    5898

    瀏覽量

    175233

原文標題:嵌入式開發經驗分享,把學習當作一種興趣

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

收藏 人收藏

    評論

    相關推薦

    一文了解嵌入式軟件開發的對象

    以前應用場景很單一,嵌入式開發可能談不上面向對象開發。但現在,做嵌入式開發,沒有面向對象開發,你就有點落伍了。 本文結合個人經驗和周立
    的頭像 發表于 11-15 10:31 ?241次閱讀
    一文了解<b class='flag-5'>嵌入式</b>軟件<b class='flag-5'>開發</b>的對象

    零基礎嵌入式開發學習路線

    嵌入式開發”沒有接觸過的同學可能會不明覺厲,但是只要你了解了,感興趣并且有一個正確的學習路線的話,零基礎也能入門。給大家介紹一個簡單易懂的學習路線,讓你能夠從零開始學習嵌入式開發。 第一步:掌握
    發表于 10-25 15:55

    嵌入式開發常見問題排查

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

    嵌入式開發常用軟件有哪些?

    嵌入式開發常用軟件有哪些? 對于初學嵌入式的朋友們,會想要了解嵌入式軟件開發常用的軟件有些,有什么用。那么看以下常用的軟件介紹。 1.VisualStudio Code 簡稱VSCod
    發表于 09-09 15:22

    聚焦嵌入式開發中的合規性工具、項目管理工具、版本迭代工具應用

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

    嵌入式開發前景怎么樣?

    嵌入式開發前景非常廣闊,這主要得益于物聯網、人工智能、大數據等技術的快速發展,以及嵌入式系統在各個領域的廣泛應用。以下是對嵌入式開發前景的詳細分析
    的頭像 發表于 07-10 09:00 ?2499次閱讀
    <b class='flag-5'>嵌入式開發</b>前景怎么樣?

    嵌入式開發者的未來

    嵌入式系統的就業方向非常廣泛,涵蓋了許多不同的行業和領域。以下是一些常見的嵌入式系統就業方向:消費電子產品:這包括智能手機、平板電腦、智能電視、智能家居設備等。嵌入式系統工程師可以參與設計、
    的頭像 發表于 06-23 08:10 ?328次閱讀
    <b class='flag-5'>嵌入式開發</b>者的未來

    嵌入式開發就業前景怎么樣?

    和醫療器械使用經驗。 3)工業控制 工業控制是指通過各種控制設備和系統,對工業生產過程進行監測、控制和優化。隨著工業自動化和智能化的發展,工業控制領域對嵌入式開發的需求也在不斷增加。在工業控制領域
    發表于 06-07 14:51

    網關怎么處理多個同時發過來的信息?

    網關怎么處理多個同時發過來的信息,求程序解析
    發表于 04-29 07:55

    ARM Cortex-A53嵌入式開發平臺Android手冊

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

    fpga是嵌入式開發

    FPGA(現場可編程門陣列)與嵌入式開發之間確實存在一定的關聯,但它們在本質上是兩個不同的領域。
    的頭像 發表于 03-15 14:18 ?979次閱讀

    嵌入式開發常見的C語言技巧與方法分享

    嵌入式開發中,常常要操作寄存器,對寄存器進行寫入,讀出等等操作。每個寄存器都有自己固有的地址,通過C語言訪問這些地址就變得尤為重要。
    的頭像 發表于 12-26 09:55 ?1056次閱讀

    嵌入式開發學習的十三法則分享

    嵌入式開發學習是一個不斷積累和總結的過程,來自一個嵌入式開發高級工程師為我們總結的關于嵌入式開發學習的十三法則,大家不妨參考一下: 一、冗余度法則 在嵌入式系統具有足夠的冗余度
    發表于 12-21 06:32

    嵌入式開發中的交叉編譯詳解

    嵌入式開發中,經常會遇到目標平臺資源貧乏,無法運行需要的編譯器。亦或是目標平臺上不允許或不能夠安裝需要的編譯器。這時候就需要使用交叉編譯了。
    的頭像 發表于 12-01 13:24 ?1153次閱讀
    <b class='flag-5'>嵌入式開發</b>中的交叉編譯詳解

    嵌入式開發為什么需要輸出調試信息?

    嵌入式開發為什么需要輸出調試信息? 因為輸出調試信息是嵌入式開發中一項非常重要的實踐,它有助于保證軟件的可靠性、穩定性和性能,也是故障排查的關鍵工具之一。 嵌入式開發輸出調試信息主要有以下
    發表于 11-28 16:46