1,針對面向?qū)ο蟮脑O(shè)計與分析:為了讓軟件有更好的可維護(hù)性,重用性以及快速開發(fā), 簡短的OOAD與它的SOLID原則對于每一個軟件工程師來說都是該牢記的。
2,軟件品質(zhì)因素:軟件工程的好壞與軟件的品質(zhì)因素是絕對關(guān)聯(lián)的。請在開發(fā)過程中深 刻的理解這一點。
3,數(shù)據(jù)結(jié)構(gòu)與算法:深刻理解像數(shù)組,列表,棧,樹,圖,集合等這樣的基本數(shù)據(jù)結(jié)構(gòu) ,并在軟件開發(fā)過程的關(guān)鍵部分使用好的算法。這樣整個軟件邏輯就會很清晰了。
4,Big-O符號來標(biāo)記算法復(fù)雜度:在開發(fā)過程中,請務(wù)必使用 Big-O 符號來比較兩個代 碼段或者不同算法所消耗的時間復(fù)雜度,這在開發(fā)高性能軟件項目中是非常重要的。
5,UML圖:UML圖已經(jīng)是一個通用的軟件設(shè)計與分析的語言。如果你們在開發(fā)軟件的過程 中還沒有做UML圖,那么給人的感覺就是這壓根就不是軟件工程。
6,正確的衡量軟件開發(fā)進(jìn)度。
7,設(shè)計模式:設(shè)計模式是前人在解決各種各樣問題的過程中總結(jié)出來的一套標(biāo)準(zhǔn)對策, 在絕大部分情況下,使用這些模式肯定是利大于弊的。如果你不想在開發(fā)過程中重新造 輪子,那么就直接使用它吧。
8,理解操作系統(tǒng)的基本原理:因為所有的應(yīng)用程序都是直接運行在操作系統(tǒng)這個層級的 ,學(xué)習(xí)操作系統(tǒng)的基本原理能讓我們對應(yīng)用程序的底層以及性能有更好的把握。
9,學(xué)習(xí)計算機(jī)組成原理:幾乎所有的應(yīng)用程序甚至是OS都需要與物理硬件打交道的,所 以學(xué)習(xí)計算機(jī)組成原理與理解操作系統(tǒng)原理一樣都可以讓你對于應(yīng)用程序有更深刻的理 解。
10,網(wǎng)絡(luò)基礎(chǔ):網(wǎng)絡(luò)與計算機(jī)組成,操作系統(tǒng)以及傳輸流程都是緊密關(guān)聯(lián)的,理解網(wǎng)絡(luò)基礎(chǔ) 能讓你在開發(fā)過程中得心應(yīng)手。
11,需求分析:對于軟件工程來說,需求分析是項目的起點,也是整個項目最最重要的 部分。如果這玩意你搞錯了,整個項目的方向也就錯了。
12,軟件測試:在軟件工程中,測試也是非常重要的。單元測試,黑盒測試,白盒測試,TDD,集成測試等等都是我們必須知道的。
13,獨立管理:主要是說類庫(JAR,DLL等等)的管理,熟悉使用一些類似Maven,Ant,lvy這樣的知名工具對于大型項目的類庫管理是非常有用的。
14,持續(xù)化集成:持續(xù)化集成能讓測試大型模塊與組件更加簡單與自動化,關(guān)于這一點,你可以去了解 Hudson 這個工具。
15,ORM:了解Hibernate這種將對象與數(shù)據(jù)庫表映射工具是非常有好處的,它可以減少你的代碼量并節(jié)省你的代碼維護(hù)時間。
16,DI(獨立注入):DI或者IoC(Inversion of Control)的具體實現(xiàn)框架Spring能讓你創(chuàng)建對象時更加輕松,對于大型企業(yè)級項目更是如此。
17,版本控制系統(tǒng):VSC工具(SVN,TFS,CVS等)對于團(tuán)隊合作開發(fā)以及版本控制都是非常重要的。熟練使用這類工具算得上是必備技能。
18,國際化:通過i18n來將不同語種的字符串存儲在其他文件是讓軟件支持多語種最好的方法。所以i18n在不同的IDE上使用的方法我們應(yīng)該了解。
19,架構(gòu)模式:理解類似MVC,MVP,MVVM這樣的架構(gòu)模式非常關(guān)鍵,這能讓你寫出易維護(hù),簡潔以及方便測試的代碼。
20,編寫干凈的代碼:你的代碼僅僅只是能夠正常運行是遠(yuǎn)遠(yuǎn)不夠的,它必須讓編程人員輕易看懂來方便后續(xù)維護(hù),所以,代碼格式以及編寫易讀的代碼技術(shù)都是我們需要了解的關(guān)鍵點。
-
軟件工程師
+關(guān)注
關(guān)注
8文章
243瀏覽量
21335
發(fā)布評論請先 登錄

如何成為一名嵌入式軟件工程師?
U-Boot 和 Bootloader,99% 的工程師都分不清?



硬件工程師的終極幻想:焊板子焊上人生巔峰!#半導(dǎo)體器件 #硬件工程師 #MDD辰達(dá)半導(dǎo)體
嵌入式軟件工程師就業(yè)好不好?

不同時期的硬件工程師,最怕發(fā)生的事 #電子工程師 #硬件工程師 #內(nèi)容過于真實 #YXC晶振 #揚興科技
特斯拉招募軟件工程師強(qiáng)化無人駕駛與機(jī)器人遠(yuǎn)程操作

FPGA算法工程師、邏輯工程師、原型驗證工程師有什么區(qū)別?
硬件工程師如何做元器件變更的決策

找STM32硬件開發(fā)兼職工程師
談?wù)凟MC,工程師必須知道的58個EMC問答

評論