如何成為優(yōu)秀的嵌入式開發(fā)工程師
目前,Linux作為系統(tǒng)的主力軍,廣泛應(yīng)用于消費(fèi)類電子、工業(yè)控制、軍工電子、電信/網(wǎng)絡(luò)/通訊、航空航天、汽車電子、醫(yī)療設(shè)備、儀器儀表等相關(guān)行業(yè)。隨著行業(yè)的迅猛發(fā)展,Linux憑借其系統(tǒng)發(fā)展的成熟度、市場(chǎng)應(yīng)用的高份額也受到更多工程師朋友的青睞,越來越多的企業(yè)和研發(fā)機(jī)構(gòu)都轉(zhuǎn)向Linux的開發(fā)和研究,這使得Linux在新興的操作系統(tǒng)領(lǐng)域內(nèi)也獲得了飛速發(fā)展和廣泛應(yīng)用。而對(duì)于那些希望盡快進(jìn)入行業(yè)從事產(chǎn)品研發(fā)的朋友們,選擇Linux方向作為切入點(diǎn)無疑是最好的途徑之一。
近期,有許多面臨畢業(yè)、找工作的大學(xué)生來到培訓(xùn)中心咨詢了解有關(guān)Linux方向的學(xué)習(xí)安排。在與他們交流溝通的過程中,被問到最多的幾個(gè)問題就是“如何做好Linux學(xué)習(xí)前的準(zhǔn)備?”,“學(xué)習(xí)Linux需要補(bǔ)習(xí)哪些基礎(chǔ)課程?”,“Linux開發(fā)跟普通軟件開發(fā)在學(xué)習(xí)方法上有什么不同?”,“項(xiàng)目實(shí)戰(zhàn)環(huán)節(jié)多嗎?”,“有專業(yè)人員帶領(lǐng)嗎?”,相信這些也是很多準(zhǔn)備入行的初學(xué)者都會(huì)關(guān)心的問題,為了幫助大家做好Linux的學(xué)前準(zhǔn)備,我們對(duì)這些常見的問題逐一進(jìn)行解答,提供給大家參考,希望能夠有所幫助。
1、如何做好Linux學(xué)習(xí)前的準(zhǔn)備?
要成為一名合格的Linux工程師,就需要系統(tǒng)的學(xué)習(xí)軟、硬件相關(guān)領(lǐng)域內(nèi)的知識(shí),需要在最開始就掌握開發(fā)的規(guī)范和原則,養(yǎng)成良好的工作習(xí)慣。為了確保學(xué)習(xí)的效果,安排的整個(gè)課程體系是非常集中、高效的,這就要求準(zhǔn)備參加Linux就業(yè)課程學(xué)習(xí)的同學(xué)要調(diào)整好自己的時(shí)間,務(wù)必要確保在4個(gè)多月的學(xué)習(xí)時(shí)間內(nèi)能夠高度集中精力。
在整個(gè)集中學(xué)習(xí)過程中,既要保證課上認(rèn)真聽講、實(shí)戰(zhàn)演練的時(shí)間,也要保證課下繼續(xù)實(shí)戰(zhàn)演練、查閱資料的時(shí)間。只有經(jīng)過這種高強(qiáng)度的、實(shí)戰(zhàn)為主的訓(xùn)練,才能夠在比較短的時(shí)間內(nèi)掌握規(guī)范的開發(fā)工作流程,讓自己符合企業(yè)對(duì)應(yīng)崗位的需求。
除了在學(xué)習(xí)時(shí)間上要做好充分的準(zhǔn)備之外,在學(xué)習(xí)的心態(tài)和方法的調(diào)整上也要做好準(zhǔn)備。許多朋友只了解Linux方向美好的發(fā)展前景,只關(guān)注高收入、就業(yè)機(jī)會(huì)多等熱點(diǎn),卻忽略了學(xué)習(xí)過程本身。為了能夠讓集中培訓(xùn)的效果發(fā)揮到最佳,建議大家在學(xué)習(xí)開始前更多地去了解產(chǎn)品研發(fā)的特點(diǎn)、所需要掌握的技術(shù)規(guī)范和工作要點(diǎn),關(guān)注需具備基礎(chǔ)的補(bǔ)充和學(xué)習(xí),從而為后續(xù)的強(qiáng)化學(xué)習(xí)過程做好心態(tài)上的準(zhǔn)備,畢竟態(tài)度往往決定了最后做事的結(jié)果。
2、學(xué)習(xí)Linux需要補(bǔ)習(xí)哪些基礎(chǔ)課程?
Linux工程師的學(xué)習(xí)需要具備一定的C語言基礎(chǔ),因此面對(duì)許多朋友只是在大一或者大二學(xué)習(xí)過C(還不一定認(rèn)真學(xué)了,呵呵!),之后基本就不再用過的情況,建議大家先復(fù)習(xí)一下C語言基礎(chǔ)這塊。要提醒大家的是,復(fù)習(xí)時(shí)不能只關(guān)注基本語法,對(duì)于常用的數(shù)據(jù)存儲(chǔ)及處理方式,例如:數(shù)組、結(jié)構(gòu)體等也要關(guān)注,有條件的話一定在機(jī)器上親自敲敲代碼、分析理解一下具體案例代碼編寫的思路,讓自己慢慢進(jìn)入一名開發(fā)人員的狀態(tài)。
此外,在時(shí)間允許的情況下,建議大家看一下有關(guān)計(jì)算機(jī)操作系統(tǒng)工作原理以及計(jì)算機(jī)組成原理等方面的專業(yè)書籍。對(duì)于進(jìn)程、線程、任務(wù)調(diào)度、總線、I/O等基本概念及工作原理有一個(gè)初步的了解和掌握,這部分知識(shí)的準(zhǔn)備對(duì)于后續(xù)更好地學(xué)習(xí)Linux系統(tǒng)開發(fā)將會(huì)起到很好的幫助作用。
3、Linux開發(fā)跟普通軟件開發(fā)在學(xué)習(xí)方法上有什么不同?
要成為一名成功的軟件開發(fā)人員,程序的設(shè)計(jì)能力是首要技能,這一點(diǎn)與普通的軟件開發(fā)人員的要求是一樣的。但是作為“軟硬兼施”的開發(fā),則要求大家不僅要了解較底層軟件的工作過程和工作原理(例如操作系統(tǒng)級(jí)、驅(qū)動(dòng)程序級(jí)軟件),在軟件開發(fā)的專業(yè)水平上也需要充分考慮軟件設(shè)計(jì)的時(shí)間和空間效率,這樣才能設(shè)計(jì)出高性能程序。
因此面對(duì)相對(duì)復(fù)雜的系統(tǒng)的研發(fā)過程,在學(xué)習(xí)的過程中需要更多關(guān)注完整的知識(shí)體系結(jié)構(gòu)的建立。特別是對(duì)于原理性知識(shí)的掌握程度則相對(duì)普通的軟件開發(fā)人員提出了更高的要求。因此在學(xué)習(xí)的過程中,“要知其然,更要知其所以然”。
4、充分利用網(wǎng)絡(luò)資源。
互聯(lián)網(wǎng)中一些學(xué)習(xí)資料可以用來學(xué)習(xí)。比如一些針對(duì)性的論壇社區(qū),經(jīng)常去看看交流,也是很好的方法。 記住貫穿始終的是:要知道為什么學(xué)?要知道學(xué)的是什么?要知道怎么學(xué)?要知道學(xué)了如何用?最后還要知道用的時(shí)候出了問題該如何解決?相信以這些問題為線索的學(xué)習(xí)過程一定可以幫助大家快速成為一名優(yōu)秀的開發(fā)工程師。