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