軟件工程師需要學(xué)什么
軟件工程師(Software Engineer)可以說(shuō)是從事軟件職業(yè)的人員的一種職業(yè)能力的認(rèn)證,通過(guò)它說(shuō)明具備了工程師的資格。下面是小編整理的關(guān)于軟件工程師需要學(xué)的內(nèi)容,希望可以幫助大家!
軟件工程師就是從事軟件開(kāi)發(fā)相關(guān)工作的人員的統(tǒng)稱(chēng),它是一個(gè)廣義的概念,包括軟件設(shè)計(jì)人員、軟件架構(gòu)人員、軟件工程管理人員、程序員等一系列崗位,工作內(nèi)容都與軟件開(kāi)發(fā)生產(chǎn)相關(guān)。
軟件工程師的技術(shù)要求是比較全面的,除了最基礎(chǔ)的編程語(yǔ)言(C語(yǔ)言/C++/JAVA等)、數(shù)據(jù)庫(kù)技術(shù)(SQL/ORACLE/DB2等)等,還有諸多如JAVASCRIPT、AJAX、HIBERNATE、SPRING等前沿技術(shù)。
1、Javascript
第一名的是Javascript,有42.4%的職缺中都要求必須會(huì)這項(xiàng)技能,那么Javascript為什么這么厲害呢?
最主要在于網(wǎng)絡(luò)軟件開(kāi)發(fā)的盛行,Javascript是很多現(xiàn)有的開(kāi)發(fā)框架的基礎(chǔ)除了用在前端的開(kāi)發(fā)(Angular、Ember、Backbone等),也用在后端的架構(gòu)像是Node.js以及資料庫(kù)數(shù)據(jù)的讀取如MongoDB。
Javascript所建立起來(lái)的生態(tài)系非常的龐大也造就了大多數(shù)的工作都需要這項(xiàng)技能,Javascript本身學(xué)起來(lái)并不會(huì)太困難,如果想要懂一些基本的應(yīng)用那可以參考這里(這里也推薦大家可以看下馬海祥博客的《老程序員給初學(xué)者的一些建議和忠告》相關(guān)介紹)。
2、Java
榜上的第二名是Java ,占了34.2%,關(guān)于Java有些人認(rèn)為它一個(gè)比較過(guò)時(shí)的語(yǔ)言也認(rèn)為它即將被淘汰。
但是根據(jù)TIOBE Index上的排行(根據(jù)程式語(yǔ)言的普及與受歡迎程度),Java還是名列第二的,Java不僅沒(méi)有被淘汰,它還過(guò)得很好仍然是很多大企業(yè)愛(ài)好的后端語(yǔ)言。
Java之所已受到企業(yè)的重視,一個(gè)很大的原因不止是因?yàn)樗旧砗糜,而是因(yàn)閷W(xué)好Java讓你學(xué)其他程式語(yǔ)言相對(duì)容易,因?yàn)镴ava是種面向?qū)ο笳Z(yǔ)言而且不需要處理指標(biāo)(Pointer),加上他有很好的開(kāi)發(fā)環(huán)境(IDE)讓初學(xué)者使用起來(lái)相對(duì)的簡(jiǎn)單,可以說(shuō)是身為一個(gè)軟件工程師絕對(duì)要懂得基礎(chǔ)。
以馬海祥的經(jīng)驗(yàn)而言,Java學(xué)起來(lái)比Javascript稍微難一些網(wǎng)絡(luò)上關(guān)于這方面的資源也不缺乏,像是MIT就有提供他的課程教材免費(fèi)讓大家學(xué)習(xí)。
3、HTML
在榜上第三名是HTML,馬海祥覺(jué)得HTML嚴(yán)格說(shuō)起來(lái)并不是一種程式語(yǔ)言它是一種標(biāo)記語(yǔ)言(Markup Language),簡(jiǎn)單來(lái)說(shuō)就是利用標(biāo)記可以達(dá)到與單純的文字不同的效果。
例如一段文字在前后加上標(biāo)記就可以加上超連結(jié),HTML是網(wǎng)路開(kāi)發(fā)中基礎(chǔ)中的基礎(chǔ),尤其在前端的開(kāi)發(fā)上了解HTML每一個(gè)標(biāo)記的功能是必要的。
但是馬海祥還是要強(qiáng)調(diào)他本身并不是一種程式語(yǔ)言,如果只會(huì)HTML對(duì)找工作是沒(méi)有任何幫助的,他只是基本中的基本,在這里也推薦大家可以花一點(diǎn)時(shí)間看下馬海祥博客的《12種最常用的網(wǎng)頁(yè)編程語(yǔ)言簡(jiǎn)介》相關(guān)介紹。
4、SQL and NoSQL
除此之外,榜上有名的.是SQL在31.2%的職缺上這項(xiàng)技能都是必須的。
根據(jù)Asurvey的調(diào)查有79%的受訪者仍然是使用關(guān)系資料庫(kù)也就是為什么SQL受到歡迎的原因,但這并不代表NoSQL就不重要雖然MongoDB在榜上只有4.3%,但是它主要被用在需要快速存取資料的產(chǎn)品上,像是Craigslist還有Expedia。
NoSQL與SQL究竟孰好孰壞,在資料庫(kù)的社群上一直是一個(gè)廣受爭(zhēng)論的議題,絕大多數(shù)的任認(rèn)為NoSQL是未來(lái)的趨勢(shì),但是以目前而言,SQL仍然是占了上風(fēng)。
5、Javascript Frameworks
建立在Javascript上的開(kāi)發(fā)框架總共有三個(gè)Angular.js、Ember.js以及Backbone.js,這類(lèi)的框架可以讓你很簡(jiǎn)便而且快速的處理前端的開(kāi)發(fā),然而這三種開(kāi)發(fā)框架由于性質(zhì)相近,因此也有很多的誰(shuí)才是最好的爭(zhēng)論。
目前是由Google所開(kāi)發(fā)的Angular.js站在榜上第一,當(dāng)然這三種開(kāi)發(fā)框架都有自己的好處,像是Angular.js比較適合大型的開(kāi)發(fā),Backbone.js比較簡(jiǎn)單易學(xué),Backbone.js讓合作開(kāi)發(fā)更簡(jiǎn)單。
6、Node.js
這里馬海祥也特別提下Node.js,其原因是在于逐漸增加的使用者,以及大型公司像是Linkedin以及Wal-mart的使用。
Node.js是一個(gè)基于Chrome JavaScript運(yùn)行時(shí)建立的一個(gè)平臺(tái),用來(lái)方便地搭建快速的易于擴(kuò)展的網(wǎng)絡(luò)應(yīng)用Node.js借助事件驅(qū)動(dòng),非阻塞I/O模型變得輕量和高效,非常適合運(yùn)行在分布式設(shè)備的數(shù)據(jù)密集型的實(shí)時(shí)應(yīng)用。
Node.js可以在不新增額外線程的情況下,依然可以對(duì)任務(wù)進(jìn)行并行處理——Node.js是單線程的,它通過(guò)事件輪詢(event loop)來(lái)實(shí)現(xiàn)并行操作,對(duì)此,我們應(yīng)該要充分利用這一點(diǎn),盡可能的避免阻塞操作,取而代之,多使用非阻塞操作。
【軟件工程師需要學(xué)什么】相關(guān)文章:
學(xué)動(dòng)漫設(shè)計(jì)需要學(xué)什么10-02
平面設(shè)計(jì)需要學(xué)哪些軟件10-04
學(xué)瑜伽需要準(zhǔn)備什么09-06
游戲美工需要學(xué)什么08-19
動(dòng)漫制作需要學(xué)什么10-04
廣告設(shè)計(jì)需要什么軟件09-24
平面設(shè)計(jì)需要學(xué)習(xí)什么軟件10-08
自考本科需要學(xué)什么科目05-19