軟件工程師需要學什麼

學識都 人氣:2.67W

軟件工程師(Software Engineer)可以說是從事軟件職業的人員的一種職業能力的認證,通過它說明具備了工程師的資格。下面是小編整理的關於軟件工程師需要學的內容,希望可以幫助大家!

軟件工程師需要學什麼

軟件工程師就是從事軟件開發相關工作的人員的統稱,它是一個廣義的概念,包括軟件設計人員、軟件架構人員、軟件工程管理人員、程序員等一系列崗位,工作內容都與軟件開發生產相關。

軟件工程師的技術要求是比較全面的,除了最基礎的編程語言(C語言/C++/JAVA等)、數據庫技術(SQL/ORACLE/DB2等)等,還有諸多如JAVASCRIPT、AJAX、HIBERNATE、SPRING等前沿技術。

1、Javascript

第一名的是Javascript,有42.4%的職缺中都要求必須會這項技能,那麼Javascript爲什麼這麼厲害呢?

最主要在於網絡軟件開發的盛行,Javascript是很多現有的開發框架的基礎除了用在前端的開發(Angular、Ember、Backbone等),也用在後端的架構像是Node.js以及資料庫數據的讀取如MongoDB。

Javascript所建立起來的生態系非常的龐大也造就了大多數的工作都需要這項技能,Javascript本身學起來並不會太困難,如果想要懂一些基本的應用那可以參考這裏(這裏也推薦大家可以看下馬海祥博客的《老程序員給初學者的一些建議和忠告》相關介紹)。

2、Java

榜上的第二名是Java ,佔了34.2%,關於Java有些人認爲它一個比較過時的語言也認爲它即將被淘汰。

但是根據TIOBE Index上的排行(根據程式語言的普及與受歡迎程度),Java還是名列第二的,Java不僅沒有被淘汰,它還過得很好仍然是很多大企業愛好的後端語言。

Java之所已受到企業的重視,一個很大的原因不止是因爲他本身好用,而是因爲學好Java讓你學其他程式語言相對容易,因爲Java是種面嚮對象語言而且不需要處理指標(Pointer),加上他有很好的開發環境(IDE)讓初學者使用起來相對的簡單,可以說是身爲一個軟件工程師絕對要懂得基礎。

以馬海祥的經驗而言,Java學起來比Javascript稍微難一些網絡上關於這方面的資源也不缺乏,像是MIT就有提供他的課程教材免費讓大家學習。

3、HTML

在榜上第三名是HTML,馬海祥覺得HTML嚴格說起來並不是一種程式語言它是一種標記語言(Markup Language),簡單來說就是利用標記可以達到與單純的文字不同的效果。

例如一段文字在前後加上標記就可以加上超連結,HTML是網路開發中基礎中的基礎,尤其在前端的開發上了解HTML每一個標記的功能是必要的。

但是馬海祥還是要強調他本身並不是一種程式語言,如果只會HTML對找工作是沒有任何幫助的,他只是基本中的基本,在這裏也推薦大家可以花一點時間看下馬海祥博客的《12種最常用的網頁編程語言簡介》相關介紹。

4、SQL and NoSQL

除此之外,榜上有名的.是SQL在31.2%的職缺上這項技能都是必須的。

根據Asurvey的調查有79%的受訪者仍然是使用關係資料庫也就是爲什麼SQL受到歡迎的原因,但這並不代表NoSQL就不重要雖然MongoDB在榜上只有4.3%,但是它主要被用在需要快速存取資料的產品上,像是Craigslist還有Expedia。

NoSQL與SQL究竟孰好孰壞,在資料庫的社羣上一直是一個廣受爭論的議題,絕大多數的任認爲NoSQL是未來的趨勢,但是以目前而言,SQL仍然是佔了上風。

5、Javascript Frameworks

建立在Javascript上的開發框架總共有三個Angular.js、Ember.js以及Backbone.js,這類的框架可以讓你很簡便而且快速的處理前端的開發,然而這三種開發框架由於性質相近,因此也有很多的誰纔是最好的爭論。

目前是由Google所開發的Angular.js站在榜上第一,當然這三種開發框架都有自己的好處,像是Angular.js比較適合大型的開發,Backbone.js比較簡單易學,Backbone.js讓合作開發更簡單。

6、Node.js

這裏馬海祥也特別提下Node.js,其原因是在於逐漸增加的使用者,以及大型公司像是Linkedin以及Wal-mart的使用。

Node.js是一個基於Chrome JavaScript運行時建立的一個平臺,用來方便地搭建快速的易於擴展的網絡應用Node.js藉助事件驅動,非阻塞I/O模型變得輕量和高效,非常適合運行在分佈式設備的數據密集型的實時應用。

Node.js可以在不新增額外線程的情況下,依然可以對任務進行並行處理——Node.js是單線程的,它通過事件輪詢(event loop)來實現並行操作,對此,我們應該要充分利用這一點,儘可能的避免阻塞操作,取而代之,多使用非阻塞操作。