高級(jí)電子工程師一般分為高級(jí)硬件工程師和高級(jí)軟件工程師。
硬件與軟件是不可分離的,硬件需要軟件來(lái)執(zhí)行其程序?qū)崿F(xiàn)具體功能。軟件需要硬件做載體。高級(jí)硬件工程師需要具備的知識(shí)和技能:
1. 技能概要:設(shè)計(jì)、開(kāi)發(fā)、調(diào)試、維護(hù)、管理符合功能、性能要求的硬件產(chǎn)品。
2. 高級(jí)硬件工程師需要具備的技能:按照計(jì)劃完成符合功能性能要求和質(zhì)量標(biāo)準(zhǔn)的硬件產(chǎn)品;根據(jù)產(chǎn)品詳細(xì)設(shè)計(jì)報(bào)告,完成符合功能和性能要求的邏輯設(shè)計(jì);根據(jù)邏輯設(shè)計(jì)說(shuō)明書(shū),設(shè)計(jì)詳細(xì)的原理圖和PCB圖;編寫(xiě)調(diào)試程序,測(cè)試或協(xié)助測(cè)試開(kāi)發(fā)的硬件設(shè)備,確保其按設(shè)計(jì)要求正常運(yùn)行;編寫(xiě)項(xiàng)目文檔、質(zhì)量記錄以及其他有關(guān)文檔;維護(hù)管理或協(xié)助管理所開(kāi)發(fā)的硬件。
3. 高級(jí)硬件工程師具備知識(shí)通信、電子工程、自動(dòng)化、計(jì)算機(jī)及其相關(guān)專業(yè),本科以上學(xué)歷。
4年以上相關(guān)工作經(jīng)驗(yàn),2年以上硬件技術(shù)開(kāi)發(fā)工作經(jīng)驗(yàn)。精通硬件開(kāi)發(fā)技能,掌握所屬行業(yè)的相關(guān)專業(yè)知識(shí)和業(yè)務(wù)流程;熟悉硬件開(kāi)發(fā)常用工具軟件;有良好編程風(fēng)格、文檔習(xí)慣;有良好的英語(yǔ)閱讀能力,能夠閱讀英文測(cè)試資料。高級(jí)軟件工程師需要具備的知識(shí)和技能:
1. 高級(jí)軟件工程師具備知識(shí)三年以上的軟件開(kāi)發(fā)經(jīng)驗(yàn);具備扎實(shí)的計(jì)算機(jī)軟件基礎(chǔ),熟悉匯編語(yǔ)言和數(shù)據(jù)結(jié)構(gòu),并對(duì)軟件工程有較好的理解;熟悉.NET/Java/C++/VB/Delphi等常用開(kāi)發(fā)語(yǔ)言中任意一種;有Oracle、SQL-SERVER或DB2等數(shù)據(jù)庫(kù)上的開(kāi)發(fā)經(jīng)驗(yàn),熟悉SQL語(yǔ)言;具備良好的溝通能力,較強(qiáng)的分析、解決問(wèn)題、領(lǐng)悟、歸納和邏輯推理能力和撰寫(xiě)開(kāi)發(fā)文檔;具有良好的計(jì)劃性,團(tuán)隊(duì)精神,能承受工作壓力并充滿熱情。
2. 高級(jí)軟件工程師具備的技能在目前很多國(guó)內(nèi)軟件企業(yè)中,如果你是“高級(jí)軟件工程師”,那么從需求分析,設(shè)計(jì),開(kāi)發(fā),測(cè)試,甚至到客戶這一條龍都可能由一個(gè)人來(lái)負(fù)責(zé)。
(1)軟件開(kāi)發(fā)與測(cè)試首先,軟件開(kāi)發(fā)是軟件工程師職責(zé)的基本組成部分,這點(diǎn)應(yīng)該沒(méi)有問(wèn)題。其次,此處的軟件測(cè)試可分為開(kāi)發(fā)前的驅(qū)動(dòng)測(cè)試,和開(kāi)發(fā)過(guò)程中的白盒測(cè)試。驅(qū)動(dòng)測(cè)試用于分析子系統(tǒng)/模塊內(nèi)部邏輯,用于在開(kāi)發(fā)之前暴露開(kāi)發(fā)過(guò)程中可能遇到的大部分問(wèn)題和對(duì)子系統(tǒng)/模塊進(jìn)行更進(jìn)一步的劃分;白盒測(cè)試是保證在項(xiàng)目交接到測(cè)試團(tuán)隊(duì)手中時(shí),能滿足基本的項(xiàng)目要求,即能夠進(jìn)行α測(cè)試。
(2)子系統(tǒng)/模塊分析設(shè)計(jì)在軟件架構(gòu)師做完系統(tǒng)設(shè)計(jì),項(xiàng)目經(jīng)理進(jìn)行項(xiàng)目分工后,項(xiàng)目就正式進(jìn)入開(kāi)發(fā)環(huán)節(jié)。這時(shí)候每個(gè)軟件工程師會(huì)拿到自己負(fù)責(zé)的子系統(tǒng)/模塊,首先要做的就是進(jìn)行分析設(shè)計(jì),其次才是開(kāi)發(fā)。開(kāi)發(fā)前進(jìn)行分析設(shè)計(jì),便于從整體上對(duì)子系統(tǒng)進(jìn)行把握,提前隔子系統(tǒng)中的變化點(diǎn)和問(wèn)題,同時(shí)也可以對(duì)子系統(tǒng)進(jìn)行更詳細(xì)的劃分,用于制定個(gè)人的工作計(jì)劃,與項(xiàng)目經(jīng)理和軟件架構(gòu)師進(jìn)行具體的溝通。
(3)撰寫(xiě)文檔在進(jìn)行子系統(tǒng)和模塊設(shè)計(jì)的同時(shí),要撰寫(xiě)子系統(tǒng)設(shè)計(jì)說(shuō)明書(shū);在開(kāi)發(fā)過(guò)程中,要記錄技術(shù)要點(diǎn)和發(fā)現(xiàn)的問(wèn)題,同時(shí)如有需要,要修改子系統(tǒng)設(shè)計(jì)說(shuō)明書(shū);在白盒測(cè)試時(shí),要記錄每個(gè)Bug。
(4)定期主動(dòng)溝通在項(xiàng)目開(kāi)發(fā)過(guò)程中,項(xiàng)目經(jīng)理需要和團(tuán)隊(duì)中的每一個(gè)人溝通任務(wù)進(jìn)度,其主要職責(zé)是從整體上把握和控制項(xiàng)目的進(jìn)度。那么作為團(tuán)隊(duì)一員的高級(jí)軟件工程師通常會(huì)負(fù)責(zé)項(xiàng)目中很重要的子系統(tǒng)/模塊,這些子系統(tǒng)/模塊往往能決定項(xiàng)目的成敗。因此定期主動(dòng)與項(xiàng)目經(jīng)理溝通解決遇到問(wèn)題,與架構(gòu)師和專家溝通解決技術(shù)難題就顯得非常重要了。另外,就對(duì)個(gè)人而言,定期主動(dòng)溝通也往往表現(xiàn)為個(gè)人的主動(dòng)積極性,對(duì)于個(gè)人長(zhǎng)遠(yuǎn)發(fā)展非常有益。
(5)持續(xù)學(xué)習(xí)也許有人會(huì)覺(jué)得學(xué)習(xí)應(yīng)該與職責(zé)無(wú)關(guān),狹義看來(lái)確實(shí)如此。然而,不斷學(xué)習(xí)新知識(shí),提高個(gè)人技能,于公司而言,能提升工作效率;于個(gè)人而言,益于職業(yè)發(fā)展。因此,工作之余,不管你職位如何,持續(xù)學(xué)習(xí)就顯得非常重要且必要。
(6)帶新人這點(diǎn)也許不是硬性要求,但國(guó)外有高手帶領(lǐng)新手這樣一種師徒習(xí)慣,也應(yīng)該學(xué)習(xí)并發(fā)揚(yáng)。通常情況下新人會(huì)與高級(jí)軟件工程師協(xié)同工作,因此帶新人一方面,帶領(lǐng)新人可以有重新審視自己知識(shí)的機(jī)會(huì);另一方面能夠讓新人更快入手,降低學(xué)習(xí)成本和提高工作效率;同時(shí)也能保持良好的人際關(guān)系。