Developer思維和Engineer思維有什麼區別?

軟體開發領域,尤其是工作幾年之後。

為什麼有人說應屆生畢業去微軟之後的技術成長不如去 BAT? - itlr 的回答


Developer更關心把用戶需求轉化為代碼實現,而Engineer更關心實現過程本身的質量。比如一個在線電商項目的開發,Developer團隊更關注實現本身,比如資料庫設計,業務建模,UI等等,而Engineer團隊的側重是設計高效的部署流程,建立從commit到CI的規約,給團隊確定具體的測試實踐等等,目的是把Developer團隊的整體效能通過工程化的方法托起來,讓Developer可以專註於具體的系統開發。

有Google搜到的定位佐證:

Software development and software engineering are interrelated terms, but they don"t mean quite the same thing. A software engineer is engaged in software development; not all software developers, however, are engineers. Software engineering means applying engineering principles to software creation.

Developer的思維往往需要更加務實,短平快地把需求實現出來,關注短期效能是他們的思維相關,一個東西做不做得出來,要多久做出來,有什麼阻礙,他們的工作中心是應對業務的快速變化。

Engineer的思維習慣是為問題找到長期最優解,相對不容易為短期目標所左右,因為工程的方法論雖然在演化,但相比業務本身的演化速度,是要慢很多的。

大多數公司都同時需要Developer和Engineer,所以招聘的時候有頭銜的區分,雖然許多並不嚴格。總體來說,如果公司的產品本身不是軟體,只是把軟體作為平台,那麼對Developer的需求就大一些,初創的業務驅動的團隊,很可能只有Developer職位,兼作一部分Engineer的工作,因為把業務所依託的軟體系統實現出來是頭等大事。但是像Microsoft這樣的公司,軟體本身就是產品,對Engineer的需求一定要遠大於普通業務驅動的公司,因為工程方法論在節省成本和提升效率上的長期作用,比某個時期短時間內的生產力要重要得多。

國內的絕大多數職位其實是Developer,通常會兼作一部分Engineer的工作,分工沒有這麼細。這也是由國內軟體行業的發展規模決定的。


以前公司的技術大牛,等級很高,什麼都會,base在倫敦,時薪是我的好幾十倍。。。

我的頭銜是senior software engineer

他的頭銜是developer


文字遊戲


Engineer寫一個軟體,最後出了一個引擎和一個測試產品;Developer寫一個引擎結果出了什麼都不是的東西。


我的一點點微小的見解:

engineer注重的是解決問題的能力,一般招聘engineer都是描述應用場景,要求某方面的背景知識或是對某個行業的理解。

而developer往往只關注對某個工具的熟練程度。大部分招聘好像還是停留在這個層面上,ios程序員,C++程序員,java程序員,你都不知道他們要你在ios上到底開發什麼,要你用C++解決什麼問題。


你非得這樣分?

那你讓 Development Engineer 怎麼辦?

或者 Engineering Developer ?


寫代碼的developer,寫ppt的engineer


engineer要考慮一些經濟因素


推薦閱讀:

Windows下的Sleep(0)具體做了什麼?
軟體測試有前景嗎?
計算機學科本科可參加的國際競賽?
一個軟體是怎麼保存用戶信息的呢?
有哪些開源後煥發新生甚至走向輝煌的項目?

TAG:程序員 | 軟體開發 | 軟體工程 | 軟體工程師 | 工程師 |