上海做網(wǎng)站公司長沙百度搜索網(wǎng)站排名
來聊聊我的經(jīng)歷,提供幾個提升方向,親測有效,希望能讓你少走幾年彎路。
10幾年前,還沒參加工作的時候,主要是玩玩開發(fā)板,也接觸不到實際產(chǎn)品的代碼,很好奇那些產(chǎn)品級的代碼是怎樣的。
第一份工作,先是維護老產(chǎn)品, 一看公司產(chǎn)品的代碼,其實跟開發(fā)板的差不多,有些代碼可能還沒開發(fā)板的工整,是用STC 51單片機的項目,代碼也復雜不到哪去,能實現(xiàn)功能就行了。
接著維護基于NXP ARM7單片機項目,相對就復雜很多了,復雜度主要體現(xiàn)在要自己配置寄存器,去使用單片機外設(shè),還有整體功能多,組合起來看就有點云里霧里,不過從代碼架構(gòu)上,也是挺亂的。
經(jīng)過前面3,4年的磨煉,水平慢慢從維護,到能獨立完成各種功能。其實就是接觸多了,能在原有的功能上,懂得舉一反三了。
雖然能實現(xiàn)各種功能吧,但總覺的還是差那么點勁,就是總是感覺代碼寫得不夠?qū)I(yè),又說不出來哪里不專業(yè)。
大概在工作到第4年左右,自身也有經(jīng)驗了,跳槽也有更多的選擇,能進一些項目相對復雜點的公司了。
從那個時候,自己的認知,確實被一些大佬寫的代碼顛覆過幾次,原來單片機的代碼還能這樣寫?
就像很多無際項目特訓營的老鐵,系統(tǒng)學習我們項目后,也會被顛覆原有的認知一樣。
并不是說有多復雜,或者多高深的技術(shù),而是每個人寫代碼的思維,確實不一樣。
你接觸到的產(chǎn)品代碼,可能是上一任工程師,積累了很多年,一次次迭代出來的版本。
所以為什么工作以后,能力提升才比較快,這是其中一個因素,直接能學到別人積累幾年的東西。
不過這個也要看機遇和選擇,也有可能工作10年也碰不到。
后面我也找到了代碼提升的方向,就是實現(xiàn)功能的同時,怎么把代碼寫得擴展性和移植性更高一點,再是整體程序架構(gòu)的設(shè)計,能做到這一步,基本就能獨立開發(fā)各種項目了。
有人帶,能接觸到好項目,又有學習意識的話,其實也很快,大概2-4年左右。
有些同學說,接觸不到,那該怎么去提升?
其實還是有現(xiàn)成的,且非常優(yōu)秀的學習渠道的。
可以按照順序,把我說的這3套程序搞明白,編程思維和水平基本就到天花板了,哪怕沒到,去做任何項目都沒問題。最多就是不同的行業(yè),可能涉及到行業(yè)的專業(yè)知識和算法,這個可能還要針對性學習下。
第一,STM32固件庫,學習他們面向?qū)ο蟮木幊趟季S,學習代碼的封裝方法,對模塊化編程思維幫助很大。
第二,無際單片機那套程序架構(gòu)教程,是我2018年錄著玩的。
熟悉c語言"三板斧":枚舉、結(jié)構(gòu)體、指針的實際應用,初步學習系統(tǒng)的一些原理,比如任務管理,隊列,以及用這些對實際項目有什么幫助等等。
可以找我安排拿。
第三,學習OSAL系統(tǒng),這個是TI藍牙協(xié)議棧的事件型驅(qū)動系統(tǒng),也能適用于別的單片機,之前我做過幾款藍牙產(chǎn)品,對系統(tǒng)挖的比較深,然后按照他們的設(shè)計思路,經(jīng)過剪裁改編,用于后面的STM32項目上。
能把以上3套架構(gòu)吃透,我覺得水平已經(jīng)可以吊打大多數(shù)有10年開發(fā)水平的工程師了。
這個階段,項目上RTOS,對你來說就是一種累贅。
第四,RTOS,如果OSAL系統(tǒng)都不能滿足你了,下一步可以深入研究,或者把前面兩個系統(tǒng),加上現(xiàn)場切換和優(yōu)先級管理,改變成更加精簡的RTOS。
不過,如果你有前面三個架構(gòu)的經(jīng)驗積累,RTOS對你來說,就是小菜一碟,也就是1-2周學會的事。
以上4個方向,需要有一定開發(fā)經(jīng)驗的人去學習,否則看不出里面的門道和精華。
下面還是總結(jié)下,在學校,和實際工作,有什么區(qū)別?
1.學校學習的目的,是為了通過考試,工作學習的目的,是解決業(yè)務需求。
2.在學校喜歡刨根問底,重復造輪子。
編程的能力不在于,你對這門語言語法背誦,以及幾個數(shù)據(jù)結(jié)構(gòu)和算法的記憶。
在實際工作中,更多在于怎么設(shè)計架構(gòu),怎么組織整合代碼。 語法是可以百度的,單片機外設(shè)例程原廠/代理商也會提供,你只需要知道怎么調(diào)用修改。
工作后,見過鬼,怕黑了,不想再裝逼秀技術(shù)了,只想快點完成任務,有現(xiàn)成代碼可以抄,我覺得賊幸福,領(lǐng)導和甲方,大概是魔鬼。
所以后面我寫了通用程序架構(gòu),換了項目直接移植,修改。目前我們特訓營項目就用這些架構(gòu)。
3.工作才是學習的開始,大學生活只是讓你準備好。
4.除了技術(shù),你還要考慮業(yè)務知識、測試、質(zhì)量、生產(chǎn)效率和可持續(xù)性。
5.學校學的也有用,但是理論和實踐之間,有巨大的鴻溝,要趁早多做點實際項目,培養(yǎng)經(jīng)驗和工程感。
6.工作前幾年,能從頭到尾,讓你完整做一個項目的機會,其實并不多。
7.機會總是有的,你要做的只是準備好。
最近很多粉絲問我單片機怎么學,我根據(jù)自己從業(yè)十年經(jīng)驗,累積耗時一個月,精心整理一份「單
片機最佳學習路徑+單片機入門到高級教程+工具包」,全部無償分享給鐵粉!!!
除此以外,再含淚分享我壓箱底的22個熱門開源項目,包含源碼+原理圖+PCB+說明文檔,讓你迅速進階成高手!
教程資料包和詳細的學習路徑可以看我下面這篇文章的開頭。
《單片機入門到高級開掛學習路徑(附教程+工具)》
《單片機入門到高級開掛學習路徑(附教程+工具)》
《單片機入門到高級開掛學習路徑(附教程+工具)》