我所理解的工程師簡(jiǎn)單描述是指“能根據(jù)實(shí)際問(wèn)題選擇適當(dāng)?shù)姆椒ā⑦m當(dāng)?shù)墓ぞ咻^好的達(dá)到既定的目標(biāo)”這樣一類人,下面是我自己歸類的一些認(rèn)識(shí)工程和解決問(wèn)題的一些思路,背景是嵌入式+linux類問(wèn)題的解決。
1.認(rèn)識(shí)對(duì)象
這一步的全稱應(yīng)該叫認(rèn)識(shí)對(duì)象、考慮需求、確立標(biāo)準(zhǔn),我剛開(kāi)始決定學(xué)習(xí)嵌入式linux的原因是為了找一份較好的工作,在linux大環(huán)境下的服務(wù)器、ARM驅(qū)動(dòng)or內(nèi)核開(kāi)發(fā)薪資待遇都是不錯(cuò)的,而且有較好的上升空間,同時(shí)不想軟件那樣無(wú)休止的加班學(xué)習(xí),但是后來(lái)一根筋扎進(jìn)去學(xué)了一陣子后發(fā)現(xiàn)開(kāi)始迷茫了,因?yàn)槠綍r(shí)做項(xiàng)目的話我有一個(gè)分析對(duì)象,我還有用戶,我可以較好的建立工程并構(gòu)思一些IDEA達(dá)到用戶需求,但是現(xiàn)在呢,我的用戶需求變成了找份好工作,對(duì)象是ARM+LINUX學(xué)習(xí),于是陷入了一個(gè)學(xué)習(xí)無(wú)底洞,因?yàn)槟康牟粔蚯逦瑫r(shí)變化較大,就比如說(shuō)驅(qū)動(dòng)開(kāi)發(fā),不同行業(yè)背景的要求不同、人才偏向不同導(dǎo)致招聘要求相當(dāng)多,我從來(lái)沒(méi)見(jiàn)過(guò)這么麻煩的用戶,于是在我崩潰之前我決定好好思考為什么會(huì)產(chǎn)生這樣的一個(gè)bad loop。在整個(gè)過(guò)程中我的“用戶”不成熟,同時(shí)具有很強(qiáng)的功利性,同時(shí)我確定“用戶”的時(shí)候也不夠真誠(chéng),起碼脫離了我自己所認(rèn)可的工程師的“品行”,經(jīng)過(guò)一系列的自問(wèn)自答后我做了如下的一些確定:
我希望的是成為一名工程師
我希望在某一類專業(yè)中具有較好的專業(yè)素養(yǎng)
在以上基礎(chǔ)下在考慮工作問(wèn)題
因此,我的對(duì)象變成了做一個(gè)ARM(及類ARM)+LINUX(及類LINUX)方向的驅(qū)動(dòng)開(kāi)發(fā)工程師,這就是我所要解決的問(wèn)題,也是我所面對(duì)的對(duì)象。
2.建立框架
全名是根據(jù)需求建立框架,要達(dá)到前面的標(biāo)準(zhǔn),首先我需要選擇一款A(yù)RM,并以此種結(jié)構(gòu)作為了解以后相似結(jié)構(gòu)的基準(zhǔn),針對(duì)LINUX也是一樣的,于ARM來(lái)說(shuō),以后工作可能會(huì)遇到ARM的其他系列,也或者有DSP等等,系統(tǒng)方面可能還會(huì)遇到一些針對(duì)特定用戶的類LINUX系統(tǒng),又或者我們接觸最多的Andriod,既然都是一脈相承,那核心不變也就是一些小的規(guī)則、一些處理問(wèn)題的約定發(fā)生變化,相對(duì)來(lái)說(shuō)并不會(huì)很難,因此以ARM+LINUX的某個(gè)內(nèi)核作為基礎(chǔ),以此來(lái)學(xué)習(xí)這個(gè)行業(yè)、掌握一種處理問(wèn)題的方法是可行的。
如果把ARM+LINUX確定了,那么就需要根據(jù)這個(gè)對(duì)象來(lái)建立我的框架,我們可以確定一條主線,在主線的基礎(chǔ)上添加附件,我把主線確定為L(zhǎng)INUX系統(tǒng),在學(xué)習(xí)整個(gè)系統(tǒng)及移植的過(guò)程中,添加對(duì)ARM架構(gòu)的學(xué)習(xí),包括:建構(gòu)相關(guān)硬件資源的原理及使用。
3.實(shí)施方法
一個(gè)LINUX系統(tǒng)我們可以將之分為u-boot、Kernel、Drivers三個(gè)部分,后面兩個(gè)部分其實(shí)是一體的,作為一名工程師,我們的目的就是解決我們的問(wèn)題,因此在一個(gè)大型工程中,我們不能面面俱到,我們需要其他人的幫助,那么這個(gè)時(shí)候就確立了兩條基準(zhǔn):1.學(xué)習(xí)(學(xué)習(xí)方法、筆記、書(shū)籍資料、官方說(shuō)明)、2.委托,所謂的委托就是我們?cè)诮鉀Q一些大問(wèn)題時(shí)往往不用完全理解事情的處理細(xì)節(jié),只要該種方法能夠合理的達(dá)到我要的技術(shù)標(biāo)準(zhǔn)那么我就直接使用,比如我要使用手機(jī)打電話,那么我并不需要知道手機(jī)是如何打電話的,這一部分我留給硬件方面的人才,但是這也不是絕對(duì)的,當(dāng)我們涉及到一些委托的部分出現(xiàn)問(wèn)題時(shí)就需要深挖了,而如何判斷哪些需要深挖哪些需要委托呢,這個(gè)完全就是經(jīng)驗(yàn)了,要么是一個(gè)技術(shù)骨干告訴你這里可以不用考慮,是全球通用的,要么就是自己的經(jīng)驗(yàn)之談了,總而言之,對(duì)付一個(gè)大工程,我們需要簡(jiǎn)化他,但是所委托的部分我們必須知道給了他什么,他做了什么,達(dá)到了怎樣的結(jié)果,這樣就夠了,人力有限,不管是誰(shuí)都需要有自知之明。
前面委托說(shuō)的很清楚了,委托其實(shí)也算是一種學(xué)習(xí),只不過(guò)始終宏觀學(xué)習(xí),而學(xué)習(xí)這一步,就盡可能多的去了解了,在學(xué)習(xí)搜集資料的過(guò)程中,我們基本按照如下方法,1.他是誰(shuí)?2.來(lái)自哪里?3.將要做什么?4.怎么做,只有深刻的了解了對(duì)象的各種形式的特征,我們才能更好地操作他,把握他的變化,采取應(yīng)對(duì)措施。
最后還需要添加一點(diǎn),關(guān)于筆記的,我們未來(lái)需要處理很多的對(duì)象,使用很多相關(guān)的芯片、架構(gòu)、系統(tǒng),那么針對(duì)不同的特征盡量有個(gè)筆記記錄,人的記性畢竟有限,而記錄的標(biāo)準(zhǔn)我們可以既定為:有價(jià)值、花費(fèi)自己一定時(shí)間才思考出的。
4.優(yōu)化
我們假定在第三部就完成我們的目標(biāo)了(當(dāng)然,實(shí)際會(huì)還有一些過(guò)程),任何一件事如果認(rèn)真做,一直做,都會(huì)做到“得心應(yīng)手”,那么這個(gè)時(shí)候我們可以考慮進(jìn)一步的升華,也就是優(yōu)化,比如編寫(xiě)的大型程序,我們可以優(yōu)化代碼段,調(diào)整局部實(shí)現(xiàn)思想,根據(jù)對(duì)結(jié)果的分析,不斷的做這些是,我想一個(gè)合格的工程師總是為此感到驕傲的。
-
工程師
+關(guān)注
關(guān)注
59文章
1566瀏覽量
68441
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論