⑴ 工程師與程序員
簡單來說程序員負責軟體產品的設計開發工作,實施工程師負責軟體產品的安裝與運維工作。
⑵ 程序員與工程師
有很多的公司他們會把程序員也稱為工程師,所以程序員是工程師這一個大集合當中的一個子集,而工程師是不包含在程序員這個概念裡面的。
⑶ 軟體工程師和程序員到底有多大的區別
軟體工程師是從事軟體開發相關工作的人員的統稱。它是一個廣義的概念,包括軟體設計人員、軟體架構人員、軟體工程管理人員、程序員等一系列崗位。這些崗位的分工不同,職位和/或級別不同,但工作內容都是與軟體開發生產相關的。軟體工程師是IT行業需求量最大的職位,穩居IT行業職位需求TOP10的第一位(第二位是高級軟體工程師)。
軟體工程師的技術要求是比較全面的,除了最基礎的編程語言(C語言/C++/JAVA等)、資料庫技術(SQL/ORACLE/DB2等)、.NET平台技術、C#、C/S
B/S程序開發,還有諸多如JAVA
SCRIPT、AJAX、HIBERNATE、SPRING、J2EE、WEB
SERVICE、STRUCTS等前沿技術。除此之外,關於網路工程和軟體測試的其他技術也要有所涉獵,以利於操控全局。
軟體工程師可謂是軟體項目開發的掌舵者。一名優秀的軟體工程師應當具有較強的邏輯思維能力,對於技術的發展有敏銳的嗅覺。雖然要求技術全面,但無須偏執於門門技術都精通,任何軟體工程師都有自己的技術特長和偏向,對於自己手中的技術,可有精通-掌握-熟悉-了解之分,根據工作需要和職業發展的具體情況來劃分。
程序員(英文Programmer)是從事程序開發、維護的專業人員。一般我們將程序員分為程序設計人員和程序編碼員,但兩者的界限並不非常清楚,特別是在中國。
知道了嗎?小林凡
⑷ 軟體工程師與程序員的區別
軟體工程師它是一個廣義的概念,它包括程序員這個崗位。再說明白一點就是程序員也可以叫做軟體工程師,但是軟體工程師不只有程序員一個崗位。
⑸ 驅動工程師是程序員嗎
工程師不是程序員,還是有區別的。
可惜,很多軟體開發人員未必清楚兩者的差別,甚至做了很久也只算程序員而不算嚴格意義上的工程師。所以我就自己的觀察和經驗,談談程序員和工程師的差別。
第一,工程師不寫黑箱程序。
「程序=數據結構+演算法」,這個著名的公式大家都知道,不幸的是,它不適合描述工程領域或者現實世界的程序。有很多程序,數據結構和演算法都寫得很棒,功能足夠強大,系統足夠復雜,但是——它很難調試,一跑起來就無法停止,而且誰也不知道程序現在到底在干什麼,裡面發生了什麼。
別覺得好笑,我遇到過很多工作三四年甚至五六年的開發人員,仍然不停地生產黑箱程序:出現問題的第一反應是直接殺掉進程重啟(天哪你們的程序不能安全關閉的嗎?)。當然還有更生猛的,直接用開發機連上生產資料庫(防火牆上開個洞)去調試。
你說他們技術不好嗎?明明各種技術問題也能搞定。你說他們沒有系統意識?做過的程序也不簡單。但是,他們做的充其量只能叫「程序」,而不是工程上成熟的「系統」。
怎樣的程序不是黑箱?你需要考慮它的層次劃分,你需要考慮哪些(功能之外的)運行信息必須暴露和記錄,以什麼方式暴露記錄,你甚至還需要考慮這些暴露和記錄對性能的影響,以及程序需要對外提供什麼操縱介面……當你把這一切都考慮清楚,寫出能夠讓運行細節「盡在掌握中」的程序的時候,你的一條腿就邁進了「工程」的大門。
這方面,互聯網和軟體開發的大廠會更加關注一些,但也不是說個人就毫無追求的空間了。網路爬蟲大家都會寫,大家也都知道如果要數據抓得准,調試起來很麻煩。我有個朋友在某大廠寫過一套「可視化」的爬蟲,可以用逐步操縱語句的執行,迅速定位問題所在。這種水平的工程師,屬於可遇而不可求的類型,每次說起來大家仍然嘖嘖稱贊。
第二,工程師注意實現和介面分離。
Java 面試的一道經典問題是:請描述抽象類和介面的區別。通常,大家都會知道「介面」和「實現」要分離。不幸的是,很多人理解的「介面」,只是俠義的特定語言提供的 interface,而沒有考慮「介面」真正的含義。
程序員和工程師有什麼不一樣?
介面的真正含義是什麼?計算機最擅長處理額是信息,它可以讓信息脫離現實的障礙高速流動起來。如果說「實現」是干臟活累活,「介面」就是發出干臟活累活指令的窗口。臟活累活干一遍就足夠了,但發指令的窗口卻可以有千千萬萬。
更具體一點說,完成功能的是程序員,完成功能並且設想它會在什麼情況下使用,並且讓人方便使用的,是工程師。我見過不少這樣的程序:登錄會話一開始放在本地內存里沒問題,到了要切換到資料庫里方便會話轉移就得大興土木,雖然要做的其實仍然只是存取而已;程序自動載入的數據出了問題,就根本不能手動載入;以前手動載入的數據,改成自動載入就要推倒重來……
有沒有介面意識,能不能真正區分介面和實現,這是區分程序員和工程師的一大標識。
第三,工程師注重功能的邏輯聯系。
很多系統都在不斷的變化和改進過程中,程序員看到的是功能點,工程師看到的是功能點之上的邏輯。
任何系統當然都是由若干功能構成的。但在功能點之上,還需要一張有邏輯意義的大網,才能把功能點組合起來,把復雜度降低,成為大家能理解的對象。最簡單的「登錄」,就包含數據輸入、數據驗證、登錄信息記錄等等功能,「登錄」是這些功能的邏輯集合,也是理解這些功能的基礎。
隨著時間的推移,業務的增長,新功能可能越來越多,比如用戶數據的載入,對好友的通知,廣告的推送准備等等。這些功能實現起來當然都容易(因為很具體),但功能堆積的後果是復雜度急劇上升,因為功能之間的邏輯聯系被切斷了。所以,工程師必然需要思考,這些功能應該怎麼組合,放到哪些具有邏輯意義的動作——比如「登錄」里去?正是經過這樣持續不斷的思考,系統的復雜度才能夠被一直維持在較低的水平,容易讓大家理解。
這個例子看起來很簡單,但做起來卻沒那麼容易。我有時看到復雜的系統操作手冊,簡直讓人哭笑不得:1) 點這里;2) 點那裡;3) 輸這個…… 這些操作對應的邏輯意義那麼准確,分明就該是一次性自動完成的啊,把它們割裂開來的後果大大提高了系統的復雜度,既不方便維護,也不方便操作。最後來擦屁股的,只能是開發人員自己。
⑹ 為什麼計算機從業者多被稱為程序員,而不是工程師
隨著經濟不斷發展,現在電子類物品層次不窮,那麼在電子類物品層次不窮的過程中,也就意味著會衍生出很多計算機行業的人才。可是在日常生活中,為什麼計算機從業者總是被稱為程序員而不是工程師?
對於工程師來說,在日常生活中可能需要做到:計算機的程序設計員、軟體測試師、系統的分析師、軟體項目的管理師、系統架構設計師、網路的工程師、網路建設的工程師、計算機操作、信息系統安全師、信息系統管理師、信息系統監理師、信息系統評估、資源開發與管理人員、信息系統設計人員等等。所以每天的職責還是比較繁重的。
⑺ 工程師與程序員誰厲害
等於說是:
硬體程序員和軟體開發程序員相比,誰發展比較好唄?
近幾年,全球互聯網發展迅速,讓軟體人才變得炙手可熱。供求關系決定價格,加之軟體業的成本主要是人(硬體需要更多的設備投入),軟體工程師的薪資也更為豐厚。
「在大型設備比如工控和高端醫療器械領域,硬體的處境就好很多,但對知識的要求也會高一些,不光數字電路和嵌入式底層軟體,模擬電路,大功率,高可靠性設計的知識也是必須的。沒有現成的晶元解決方案;沒有現成設計可供參考,系統的龐大,很長的生命周期,可靠性設計相關的需求(出錯可能出人命),都決定了硬體有更大的空間去發揮。深度的硬體技術也有了用武之地。」不過,在這種復雜度下,硬體工程師的受重視程度也是和待遇跟軟體相當。
硬體學習難度比較大,特別是開始階段,必須從電子技術,信息方面的只是開始。這些只是基礎,目前掌握計算機核心硬體技術的公司都是老外。基本上,我們更多的是應用別人的東西。但是,就電子硬體技術來說,從原理圖設計,PCB線路板設計需要更多的是經驗。所以作為一個電子工程師往往是越老越吃香。
軟體學習難度比硬體低,而且發展速度很快。需要掌握的基礎是操作系統,數據結構,資料庫,軟體工程等基礎只是,另外就是掌握一門或多門編程語言。對軟體來說,經驗沒有硬體那麼重要,知識和一個人的智商反倒比較重要。所以這是一個年輕人熱衷的行業,也是年輕人短期就可以拿到高薪的一個行業。
從發展前景看都不錯,只不過硬體工程師相對人數數量會少一點,待遇方面整體來講軟體會高一些,但具體到個人在選擇的時候還是以個人的興趣點為依託,特別是起步階段不要太在意工資高低,即使在工資非常高的行業水平達不到一樣還是適應不了,從就業的廣度看軟體工程師就業的機會更多一些,但參與競爭的人也多,就業機會多少主要是影響剛就業,進入技術成熟期階段就是看個人能力和發展潛力了,無論做什麼都要想辦法讓自己邁進技術金字塔的頂峰,所以入行階段看不出這些表面的東西,還要側重內在驅動力,如果就是對某一方面剛興趣直接去選擇,沒必要在意當前一兵一卒的得失,職業生涯路子長著那。
⑻ 工程師和程序員的區別
第一、工程師不寫黑箱程序
「程序=數據結構+演算法」,這個著名的公式大家都知道。不幸的是,它不適合描述工程領域或者現實世界的程序。有很多程序,數據結構和演算法都寫得很棒,功能足夠 強大,系統足夠復雜,但是——它很難調試,一跑起來就無法停止,而且誰也不知道程序現在到底在干什麼,裡面發生了什麼。
第三、工程師注重功能的邏輯聯系
很多系統都在不斷的變化和改進過程中,程序員看到的是功能點,工程師看到的是功能點之上的邏輯。
任何系統當然都是由若干功能構成的。但在功能點之上,還需要一張有邏輯意義的大網,才能把功能點組合起來,把復雜度降低,成為大家能理解的對象。最簡單的「登錄」,就包含數據輸入、數據驗證、登錄信息記錄等等功能,「登錄」是這些功能的邏輯集合,也是理解這些功能的基礎。
⑼ 「軟體工程師」和「程序員」究竟有什麼區別
軟體工程師所要具備的條件是:對於軟體工程師,不太重視學歷,但並不是對學歷沒有要求,重點關注項目的經驗和學習知識的能力,能否利用軟體工程專業知識來解決問題,根據崗位不同,對軟體工程師的要求也有所不同。具體能力要根據崗位和自己的興趣愛好選定自己的職業規劃方向,一方面要詳細了解軟體工程師的要求,可以關注企業的招聘信息。一方面自己要貯備通用的知識技能,廣泛閱讀相關的計算機材料對自己以後的發展大有幫助。可以確定的是軟體工程師的前途在未來的發展依然是不斷升溫的職業,比較需要有技術和良好前景的專業之一。軟體工程師的技術要求是比較全面的,除了最基礎的編程語言(C語言/C++/JAVA等)、資料庫技術(SQL/ORACLE/DB2等)等,還有諸多如JAVASCRIPT、AJAX、HIBERNATE、SPRING等前沿技術。此外,關於網路工程和軟體測試的其他技術也要有所涉獵。
⑽ 軟體工程師與程序員的區別
軟體工程師它是一個廣義的概念,它包括程序員這個崗位。再說明白一點就是程序員也可以叫做軟體工程師,但是軟體工程師不只有程序員一個崗位。