標(biāo)題: 從硬件到純軟件,回顧一個(gè)老工程師的經(jīng)歷之路! [打印本頁(yè)]

作者: 苳天里的一把火    時(shí)間: 2018-3-1 15:21
標(biāo)題: 從硬件到純軟件,回顧一個(gè)老工程師的經(jīng)歷之路!
前段時(shí)間,我寫了很多關(guān)于嵌入式學(xué)習(xí)的文章,通過(guò)不少學(xué)習(xí)者的反饋使我有成就感。分享的樂趣使我決定繼續(xù)寫下去。在接下來(lái)的時(shí)間,我計(jì)劃也開始寫關(guān)于Java的內(nèi)容。希望對(duì)你或多或少提供方向,當(dāng)然,老規(guī)矩,遇到問題或者想發(fā)展確沒方向的新手都可以私我。話不多說(shuō),給大家?guī)?lái)一個(gè)軟件工程師的成長(zhǎng)史:
其實(shí)我很早以前就想寫了,Java是我畢業(yè)后學(xué)的第一門語(yǔ)言,準(zhǔn)確來(lái)說(shuō),如果單純?yōu)榱俗鲆粋(gè)普通的開發(fā)人員的話,只要你熟練掌握MVC的分層,熟練掌握List和Map的用法,然后會(huì)寫寫SQL,基本上就沒有什么大問題了。真不難,我一開始也和大多數(shù)剛剛接觸編程的人一樣,感覺Java學(xué)起來(lái)好難的。


的確,如果你要去深究,我的意思是,深究Java的運(yùn)行機(jī)制,底層代碼等,那真的有一定難度?墒,如果你只是為了找一份養(yǎng)家糊口的工作,在一個(gè)小公司做做開發(fā),真的不需要你有多么精通。
原因很簡(jiǎn)單,在這個(gè)時(shí)間就是金錢的時(shí)代,程序框架都是現(xiàn)成的,公司主要追求的還是項(xiàng)目的開發(fā)進(jìn)度。尤其是中小型公司,根本不需要你對(duì)Java底層研究得有多深。你會(huì)照貓畫虎,快速地把功能開發(fā)出來(lái),你就很OK。如果有個(gè)新需求,需要你去網(wǎng)上借鑒一些代碼,弄一些免費(fèi)的組件,直接拷貝實(shí)現(xiàn)功能,那更加OK,升職加薪是肯定的了。
記得第一次寫一篇文章,居然收到了非常多評(píng)論,老實(shí)說(shuō)這是我沒預(yù)料到的。我只是把我自己的經(jīng)歷發(fā)出來(lái),沒別的意思,當(dāng)然,那篇文章的描述中,也的確有不妥的地方。
本篇文章,我會(huì)詳細(xì)地講述我如何從一個(gè)硬件工程師轉(zhuǎn)到Java Web軟件開發(fā)的,希望給需要的人做一個(gè)參考。或者,你就當(dāng)故事看看也可以。
2. 記憶猶新的一段話
我最早是希望從事本專業(yè),搞單片機(jī)或者嵌入式開發(fā)的,現(xiàn)在依稀記得曾經(jīng)面試我的一個(gè)老板對(duì)我說(shuō)的話,大意如下:
“我真搞不懂你們這些剛畢業(yè)的學(xué)生,總是談一些理論。很簡(jiǎn)單,我就問你,一個(gè)功能馬上就要用,你三天之內(nèi)能不能給我開發(fā)出來(lái)?網(wǎng)上都有現(xiàn)成的東西,拿過(guò)來(lái)用不就行了。如果我接到一個(gè)單子,你說(shuō)要花個(gè)半年時(shí)間研究一下,我的公司還能開下去么,我不早就餓死啦。也許百度,華為那種大公司需要專門招幾個(gè)人來(lái)研發(fā),可是我們不需要,我們只看效率和速度。我朋友一個(gè)什么什么公司前幾年也招了幾個(gè)大學(xué)生,結(jié)果兩年下來(lái)了,核心的代碼還不是自己寫,CAD還不是自己畫?讓他們搞也搞不出什么東西。不是說(shuō)他們水平不行,而是這東西需要很長(zhǎng)時(shí)間的積累,不是說(shuō)你一畢業(yè)就能直接達(dá)到多高的水平!
雖然最后錄取了我,可是我自己也明白,學(xué)校里學(xué)的那些CAD,單片機(jī)方面的知識(shí)已經(jīng)跟不上公司的節(jié)奏。芯片我只知道STC-89C51,而且不是很熟悉,我連STM32都沒用過(guò),而51單片機(jī)和這里的工作沒有關(guān)系。我CAD繪圖也還停留在理論,實(shí)際操作起來(lái)估計(jì)就露餡了。
我深刻地明白,即使進(jìn)入了這家公司,也不會(huì)有人教我如何去勝任這份工作,到時(shí)候我會(huì)變得很尷尬和被動(dòng)。所以最后我沒有去。
不過(guò)他的一番話也提醒了我,必須要有一份拿的出手的技術(shù)。社會(huì)不比在學(xué)校,上課隨便聽聽,通過(guò)考試就行了,實(shí)在不行還有補(bǔ)考。在公司里,不是這樣的。
正好趕上近幾年制造業(yè)不景氣,嵌入式方面的工作更加難找,我投了很多簡(jiǎn)歷,除了一些小作坊,小公司,其他都是石沉大海,進(jìn)入大公司的機(jī)會(huì)為0。
很多公司不是不缺人,而是缺少來(lái)了就能立馬上手的工程師,而不是說(shuō)要招一些應(yīng)屆畢業(yè)生,來(lái)了之后再手把手教他們。哈哈,沒那個(gè)時(shí)間。
3. 理論真的不重要嗎
理論真的不重要嗎?
不,從某種程度上說(shuō),理論的確很重要。它會(huì)讓你對(duì)一項(xiàng)技術(shù)理解得更加深入。這一點(diǎn)我不否認(rèn),也不可能否認(rèn),因?yàn)樗褪鞘聦?shí)。
但,我不得不承認(rèn),如果我學(xué)歷不夠硬,真的沒法接到大公司的面試通知。
名牌大學(xué)的畢業(yè)生都一大把,研究生大軍也在盯著這些職位。哪里輪得到我一個(gè)普通二本的畢業(yè)生?
也許,大公司會(huì)看重你理論知識(shí)是不是很扎實(shí),所以在校招上,你會(huì)經(jīng)歷一次他們給你安排的筆試。
上一篇文章中,有的評(píng)論提到,如果理論不扎實(shí),你連筆試都過(guò)不了。的確如此,但是,這也要建立在你能夠接到大公司的筆試邀請(qǐng)的前提之下。
事實(shí)情況是,我們學(xué)校的校招,最多就是一些中型公司,都算不錯(cuò)了。大公司是見不到的。還有一些老司機(jī)(你沒看錯(cuò),真的是老司機(jī)),還有倉(cāng)庫(kù)管理員的職位。大公司的話,嗯,肯德基,大娘水餃算不算?
4. 我的一次校招經(jīng)歷
那次校招,我看到一個(gè)稍微好一點(diǎn)的公司,就拿著我的各種證書,什么CET-6,高等數(shù)學(xué)競(jìng)賽,英語(yǔ)競(jìng)賽,數(shù)學(xué)建模啥的去應(yīng)聘。我記得他看了一會(huì),就把證書的復(fù)印件拋在一旁了。然后,他問我,Java會(huì)不會(huì)?會(huì)寫測(cè)試用例嗎?(當(dāng)時(shí)我不懂,根本就不知道什么意思,現(xiàn)在明白他招的是軟件測(cè)試。汗~)
我說(shuō),“我不會(huì),但我可以學(xué)!。
他繼續(xù)說(shuō),“哦,沒關(guān)系,我們這個(gè)職位對(duì)編程要求不高。對(duì)了,你有沒有參加過(guò)什么項(xiàng)目!
我說(shuō),“沒有,不過(guò)我對(duì)編程很感興趣,學(xué)過(guò)C,C++,還考過(guò)證。”
然后就沒有然后了,我也不記得后來(lái)對(duì)我說(shuō)了什么,反正有一句是:“你什么都沒做過(guò)就來(lái)應(yīng)聘啊?”
你什么都沒做過(guò)就來(lái)應(yīng)聘啊?這句話深深地打擊了我。
好吧,我的確沒做過(guò),我只是在老師的要求下完成了課程。我說(shuō)了實(shí)話。
這就是我還未畢業(yè)時(shí)候的一次面試經(jīng)歷。


5. 背水一戰(zhàn),從偏硬件轉(zhuǎn)到純軟件
說(shuō)來(lái)慚愧,在大四的時(shí)候,我還真做過(guò)一段時(shí)間的硬件工程師(純自黑)。那段時(shí)間,接觸了一點(diǎn)protel 99SE,沒事也會(huì)畫畫CAD?墒牵夷屈c(diǎn)三腳貓功夫完全靠自己網(wǎng)上搜了點(diǎn)視頻學(xué)來(lái)了。一段時(shí)間下來(lái),我連最基礎(chǔ)的事情都做不來(lái),很多時(shí)候,我也不知道要學(xué)點(diǎn)什么,該怎么去學(xué)。
我找回模擬電子技術(shù),數(shù)字電子技術(shù)的教材,重溫三極管,二極管,電力電子技術(shù)等等。可是,真的很無(wú)奈,我不清楚這些東西怎么用到工作中。
那段時(shí)間真的是比較低迷的,做不了事情,也沒有人教,準(zhǔn)確的說(shuō),他們也忙得一塌糊涂,我不好意思去請(qǐng)教。更何況,我都不知道要請(qǐng)教什么。
兩個(gè)月后,我實(shí)在受不了這個(gè)尷尬的氣氛了,于是辭去了工作。
我總結(jié)了一下,我不認(rèn)為自己的理論知識(shí)有多糟糕,只是沒有一個(gè)實(shí)戰(zhàn)平臺(tái)讓我來(lái)鍛煉。大公司,我連筆試的資格都沒有,小公司,就算面試吹**混進(jìn)去了,也根本勝任不了。
這個(gè)時(shí)候,我才明白,嵌入式這種東西,我沒有個(gè)三五年,真的不太可能達(dá)到一個(gè)很高的水平。而且,它需要大量的實(shí)踐操作,而實(shí)踐操作需要硬件設(shè)備。像我這么一個(gè)大學(xué)里只會(huì)理論,連實(shí)驗(yàn)室都沒怎么去過(guò),連在洞洞板上搭一個(gè)實(shí)驗(yàn)電路都費(fèi)勁的人,真的是不太適合。雖然當(dāng)時(shí)非常想學(xué)習(xí)嵌入式,只是苦于沒有領(lǐng)路人。至今想起仍然后悔不已...
不知道怎么下手,怎么學(xué)習(xí),沒有實(shí)踐的機(jī)會(huì)。這就是我那段時(shí)期的狀態(tài)。
我不知道正在看這篇文章的你,是否能夠理解我當(dāng)時(shí)內(nèi)心的無(wú)助?
可是日子還得過(guò),辭去工作后,家里人也為我著急。我認(rèn)真思考今后的發(fā)展道路。
我發(fā)現(xiàn),我其實(shí)對(duì)硬件不是很感興趣,卻對(duì)電腦感興趣。如果繼續(xù)發(fā)展硬件,我就必須要有足夠的實(shí)驗(yàn)器材,加上各種單片機(jī)芯片,然后畫CAD,還要做出來(lái)。雖然用仿真軟件也可以,不過(guò)我對(duì)仿真軟件也不是很熟悉。
問題就在于,我大學(xué)里面動(dòng)手實(shí)踐的機(jī)會(huì)太少。
PLC方向?呵呵,我對(duì)PLC的實(shí)踐經(jīng)驗(yàn)還沒單片機(jī)多。
硬件工程師,電氣工程師,在當(dāng)時(shí)的我看來(lái),似乎通往了一條未知的道路,有著太多的不確定因素。
那么,干脆搞純軟件吧!
我頭腦中冒出來(lái)這樣一個(gè)想法,對(duì)啊,我說(shuō),我干嘛非得從事本專業(yè)?
如果我搞純軟件的話,我只要一臺(tái)電腦就行了,也不用去關(guān)心什么芯片的型號(hào),也不需要畫什么CAD,而且我也不需要去焊東西了。
是啊,只要一臺(tái)電腦就可以了,我在自己家也能學(xué)!不需要管其他硬件設(shè)備了!
我越想越興奮,就這樣踏出了第一步,直到今天我在寫這篇文章的時(shí)候,我都慶幸自己當(dāng)初的決定。
不論怎么樣,成為一個(gè)軟件工程師,雖然累了點(diǎn),不過(guò)很充實(shí),也很快樂。而且,工作環(huán)境好。我記得當(dāng)初做硬件的時(shí)候,每天都在跟焊錫絲打交道(因?yàn)樽霾涣嗽O(shè)計(jì)的工作,我主要的任務(wù)就是焊電路板,換換元器件啥的。一不小心電容炸了,打在身上還是很疼的。一不小心被電烙鐵燙到,立馬一個(gè)包。)
總之,這就是我學(xué)習(xí)軟件開發(fā)的原因和經(jīng)過(guò)。
6. 總結(jié)
故事講完了,說(shuō)起來(lái)生活還真是變化莫測(cè),有的時(shí)候,一個(gè)小小的決定就會(huì)極大地改變今后的人生軌跡。
硬件也好,軟件也罷,都是自己的選擇,任何一門技術(shù),當(dāng)你真的熱愛它,就一定能走得很遠(yuǎn)。
我后來(lái)捫心自問,自己的興趣真的不在硬件上面,所以做軟件開發(fā)是我的最終選擇。如果你對(duì)硬件,嵌入式方面感興趣,那也是很好的。
我大學(xué)一個(gè)同學(xué),就走了嵌入式的方向,當(dāng)然,也是在一家中小型公司,大公司也是連筆試的機(jī)會(huì)都沒有。
他大學(xué)里面基本上選修課必逃,必修課選逃,還未畢業(yè)就拿了高薪。
我和他算是兩個(gè)極端,我一天到晚弄理論,各種考證,競(jìng)賽,結(jié)果連大公司的筆試機(jī)會(huì)都拿不到。他一天到晚搞實(shí)踐,不管怎樣,找到了比較滿意的工作。
曾經(jīng)有人問我做什么工作的,我說(shuō)軟件開發(fā)。對(duì)方一聽就覺得好像挺那個(gè)啥的,然后各種抱怨自己的工作怎么怎么不好。然而他不知道的是,我背后付出的汗水有多少。
每個(gè)軟件開發(fā)人員都知道,雖然在一般人眼里看起來(lái),IT這個(gè)行業(yè)多么多么好,可是,我們?cè)诒澈笃鋵?shí)都付出了很多。當(dāng)別人晚上去看電影了,我們?cè)诩影。?dāng)別人周末出去旅游了,我們還在電腦前敲代碼學(xué)習(xí)最新的技術(shù),等等。各種滋味,其實(shí)也就我們內(nèi)心知道了吧。社會(huì)如此,我們當(dāng)漸行漸遠(yuǎn)!還是老規(guī)矩,如果你是想學(xué)習(xí)確沒有方向,或者剛剛踏入it行業(yè)的菜鳥這邊都可以私我。樓主這些年也存了不少干貨,送給有緣人,相信一定可以幫助你更上一層樓!

作者: 苳天里的一把火    時(shí)間: 2018-3-1 15:22
企鵝 29...42...454...56,另外喜歡的朋友也可以留下自己的企鵝
作者: 16456163156    時(shí)間: 2018-5-10 21:23
苳天里的一把火 發(fā)表于 2018-3-1 15:22
企鵝 29...42...454...56,另外喜歡的朋友也可以留下自己的企鵝

2453704283,干了四五年維修電工我今年準(zhǔn)備去找個(gè)plc方面的工作,不知道這條路走的對(duì)不對(duì)

作者: rickpeng    時(shí)間: 2018-7-20 11:57
2839935440  企鵝
作者: TT1998    時(shí)間: 2018-7-20 14:05
苳天里的一把火 發(fā)表于 2018-3-1 15:22
企鵝 29...42...454...56,另外喜歡的朋友也可以留下自己的企鵝

1289028249大一雞,入門嵌入式
作者: 許辰    時(shí)間: 2018-7-20 16:55
1622837015,,,?瓶飚厴I(yè)了,在學(xué)32現(xiàn)在,但是不太喜歡編程,特別喜歡研究電路這些,雖然我特別菜
作者: lon7085    時(shí)間: 2018-7-20 17:46
3163706042 企鵝 加一
作者: 慧凈電子    時(shí)間: 2018-7-20 22:18
很好,值得我們好好學(xué)習(xí)
作者: cliang223    時(shí)間: 2018-7-20 23:22
人生的路上總是坎坷的,人在不同的階段都會(huì)經(jīng)歷不同的困境
作者: SMiLe_Z016    時(shí)間: 2018-7-23 16:12
531092860 我想要從單片機(jī)轉(zhuǎn)向純軟件。
作者: addorn    時(shí)間: 2018-7-31 01:10
佩服樓主
作者: YHB51H    時(shí)間: 2018-7-31 08:52
很想向樓主學(xué)習(xí),我QQ2933036945,望加我。
作者: 15931666846    時(shí)間: 2018-7-31 09:14
我現(xiàn)在就是你說(shuō)的剛畢業(yè)的狀態(tài),好難受
作者: 我正在學(xué)習(xí)    時(shí)間: 2018-7-31 10:59
我現(xiàn)在大三實(shí)習(xí),出去找嵌入式方面工作,面試了好幾家直接跟我說(shuō)實(shí)習(xí)可以,但沒有工資,就是讓我跟著學(xué)。難受的要死。佩服樓主
作者: oyyp    時(shí)間: 2018-8-2 14:29
寫的非常好,心有感觸
作者: 不負(fù)時(shí)光~田    時(shí)間: 2018-8-3 18:08
QQ:1263776468.忘樓主加下。開學(xué)就要大三了,現(xiàn)在暑假在學(xué)嵌入式,也沒參加過(guò)什么比賽,很迷茫。知識(shí)只限于課本上的。內(nèi)心和樓主快畢業(yè)時(shí)差不多。。
作者: yanglei920509    時(shí)間: 2019-1-5 22:51
引起內(nèi)心共鳴,目前正在考慮轉(zhuǎn)軟件
作者: lagong    時(shí)間: 2019-1-7 10:52
郵箱&qq: 1277557861@qq.com 我是17年機(jī)械畢業(yè)的,因?yàn)楣巨D(zhuǎn)型現(xiàn)在在搞嵌入式,從頭開始
作者: gaojiajun99    時(shí)間: 2019-2-14 08:33
企鵝295812470低端硬件工程師
作者: yfpc2006    時(shí)間: 2019-2-15 02:29
嵌入式系統(tǒng)開發(fā)的,看了你的文章,表示贊同,如果需要和單片機(jī)打交道的,可以一起學(xué)習(xí)!
作者: hellowC8051    時(shí)間: 2019-2-15 08:33
寫得不錯(cuò),很有方向
作者: IdeaMing    時(shí)間: 2019-2-15 09:41
鄙人還在嵌入式硬件的道路上苦苦追尋
作者: jxchen    時(shí)間: 2019-2-17 12:35
感謝~~~~~~~~~~~~~~~~~~~~~~~~~~~~
作者: 皓月千里    時(shí)間: 2019-7-29 14:52
企鵝  2814885319    一個(gè)純軟件的學(xué)生想學(xué)硬件,其實(shí)主要是覺得物聯(lián)網(wǎng)很有趣
作者: QEQWE123    時(shí)間: 2019-7-30 13:59
?飘厴I(yè)三個(gè)月,在學(xué)校期間三年參加了很多次比賽,也積累了一定硬件經(jīng)驗(yàn),但32碰都不敢碰,工作之后從事硬件工程師,從正點(diǎn)原子開發(fā)板一點(diǎn)一點(diǎn)學(xué),三個(gè)月也搞定了公司交給的四五個(gè)項(xiàng)目,感覺一切并不是太難,只要心中相信這就是你的路,一定要走好,當(dāng)時(shí)下班就看STM32和AD的書,上班就看視頻,天天學(xué)習(xí) 然后根據(jù)開發(fā)板實(shí)踐,多上網(wǎng)百度資料,成熟的很快。歡迎大佬們交流
作者: jzdcff    時(shí)間: 2019-7-31 10:05
QEQWE123 發(fā)表于 2019-7-30 13:59
?飘厴I(yè)三個(gè)月,在學(xué)校期間三年參加了很多次比賽,也積累了一定硬件經(jīng)驗(yàn),但32碰都不敢碰,工作之后從事硬 ...

都說(shuō)搞技術(shù)的多少都要會(huì)點(diǎn)c,打算從單片機(jī)入手學(xué)點(diǎn)C語(yǔ)言
最近遇到難題,求解答

用的是mini板,案例里讀寫內(nèi)容的格式是8位字符串?dāng)?shù)組

//要寫入到W25Q64的字符串?dāng)?shù)組
const u8 TEXT_Buffer[]={"MiniSTM32 SPI TEST"};
u8 datatemp[SIZE];
讀寫函數(shù)↓
SPI_Flash_Write((u8*)TEXT_Buffer,FLASH_SIZE-100,SIZE);        
SPI_Flash_Read(datatemp,FLASH_SIZE-100,SIZE);        

但是在實(shí)際用的時(shí)候大部分存儲(chǔ)讀寫的是 32位整數(shù),讀寫函數(shù)只能按照8位傳輸,請(qǐng)問改如何實(shí)現(xiàn)32位整數(shù)的讀寫保存。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1