互聯網公司的開發工程師和傳統軟體公司的開發有區別嗎?如果有是什麼?

互聯網公司的開發工程師和傳統軟體公司的開發有區別嗎?如果有是什麼?

我一直感覺有,並且區別很大。但是對於我一個剛畢業只在一個公司呆過的人來說並不清楚是否真的有區別,請大神來解惑。


兩種類型的公司,規模稍大以後實際上都有很多不同的崗位。例如互聯網公司一般會有開發產品的團隊,數據統計分析的團隊,基礎架構的團隊,甚至還有內部IT支持的團隊。

其中直接和公司收入相關的,都是產品開發團隊。以產品開發團隊的基層工程師要求為例,互聯網公司和傳統軟體公司的專業要求區別還是很大的,當然不同規模、產品方向的互聯網公司可能要求也不一樣。

簡單說來,互聯網公司招聘產品開發工程師時,更希望候選人有高吞吐量、大並發、大數據量系統的開發經驗,更看重編程基礎、掌握原理,能夠承受快速迭代的壓力。如果候選人的經驗主要一些用戶量少、並發要求低的內部系統,技術難點靠第三方硬體、商業系統解決,編程經驗局限於API、框架的使用而不了解相關源碼實現、背後的思想,甚至在於怎麼和客戶需求進行周旋,那多半是不符合互聯網公司招聘期望的。


有區別。從產品管理上來說,互聯網公司的產品價值判斷是很模糊的,就像你很難在iPad出來之前判斷出人們需要iPad,互聯網服務需要不斷的嘗試,在錯誤中調整,因此從技術上需要使用大量的快速開發技術,比如腳本語言。做出來再說,看看有沒有人用。如果你花了大量時間分析、開發,做出來卻根本沒人用,完全就浪費掉了。而傳統的軟體公司製造的產品價值都是很明確的,比如為企業做一個倉庫管理,這個系統上線之後能對倉庫管理起什麼作用,一年能省多少零件,提高入庫出庫的速度,基本都可以在使用前算出大概的比例。開發人員需要做的就是摸清業務流程,搞清楚需求解決的實際問題,做出來不會有大的偏差。至少不會像互聯網產品一樣沒見光就死了。

另外,互聯網產品的易用性要求更高,所以對產品設計有特別的要求。有一個著名的例子:某電商網站改動了他們的訂貨付款流程,每年因此增加了1個億的銷售額。而傳統的軟體公司,由於服務於企業經營,因此客戶和用戶經常是分離的。比如你做一個倉庫系統,老闆是客戶,他考慮的是這個系統用起來打通了A和B兩個數據,提高了管理效率,一年能省多少錢。而員工作為實際的使用者,具體增加了多少錄入工作負擔,只要這個人力成本不是十分巨大,其實是沒有多少考慮的餘地的。為員工開發過多的易用性,老闆是不會多買單的,是不必要的。只要說清楚用什麼方式提高管理水平,能達到什麼效果,老闆就簽合同了。界面設計、操作流程滿足最低要求就可以了。

因此互聯網公司需要的是專職的產品經理。而傳統軟體公司根據業務的複雜情況,比如銀行、保險、製造、物流、會計這些普通人無法完全了解的領域,需要的是業務專家。如果業務領域不複雜,或者客戶自己就能說的清楚,連業務專家也省了,寫代碼的直接上。至於界面、圖標、菜單之類的設計,寫代碼的人自己搞吧。


互聯網公司可以持續迭代,每日發布nightly build ,傳統的軟體公司開發不可能每天升級


傳統的軟體公司一般都是給甲方打工,靠項目吃飯。

互聯網公司是給用戶打工,靠產品吃飯。

基層開發上基本上沒區別。


傳統軟體工程師最喜歡寫無比長的大sql並且以大sql為榮、寫代碼不考慮性能、也不知道性能瓶頸在那裡、遇到問題就是頭不抬眼不睜的瞎干!


一個是為自己公司開發,一個是為別的公司開發


推薦閱讀:

軟體工程的就業前景如何?程序員的發展前景如何?
為什麼中國的搜索首頁要推薦新聞?
如何評價即將卸任的工商銀行董事長姜建清?
互聯網上說的 BAT 三強是什麼意思?
如何評價 5 月 17 日滬江網聯合創始人於傑在同濟大學的演講?

TAG:互聯網 | 軟體 | 程序員 | Java | Java編程 |