程序員在互聯網公司和行業軟體公司工作,有什麼區別?

技術區別、職業規劃、發展前景等


日常的工作是幫程序員跳槽,常常會遇到想從軟體公司跳槽到互聯網公司的,也有想從互聯網跳到軟體公司的(覺得工作強度低)。他們很關心的一個問題是:軟體公司和互聯網公司,孰優孰劣?

其實兩者之間沒有優劣之分,但有更適合自己的那一個,對岸的風景也不一定是更美的。知己知彼方能百戰百勝,我把在這兩種公司里工作的差異闡述一下,對此感興趣的程序員朋友看完便了解了。


1. 軟體公司程序員在哪些公司工作?

很多人說到軟體公司就是 IBM、Cisco 之流,其實和 VC 不是只有紅杉、IDG 一樣,軟體公司也是多種多樣,大體分為以下四類:

a、外企

  • 美資居多,辦公環境和福利都很好
  • 招聘時對員工的英文水平有要求
  • 制度嚴格,絕無可能出現剋扣工資等坑員工現象
  • 有些公司產品線固定缺乏創新,員工在公司里一直做一顆螺絲釘,得不到成長
  • 典型公司:IBM、 Cisco、Adobe

b、民營小公司

  • 規模小,比較典型的情況是老闆有關係和行業資源,拉一夥兒程序員給他打工
  • 員工薪水有高有低,有的老闆很慷慨有的則很摳門
  • 小公司存在風險。無論軟體公司賣的是軟體、解決方案還是服務,都是以客戶為中心,所以小公司如果長時間接不到項目或者被客戶拖欠款項的話,老闆可能會拖欠工資或者直接開人
  • 一句話總結:去這類公司工作,老闆的人品很重要

c、大型民企:典型公司如金蝶、用友

d、國資背景企業:比較典型的有「中科 XX 軟體公司」,氛圍和國企差不多


2. 在軟體公司工作的程序員能賺多少錢?

對於應屆生或者一兩年工作經驗的程序員來說,平均薪資的情況是外企>國內大公司>民營小公司

應屆生的薪資水平

  • 外企 : 13~20W/年
  • 大型民企:4~10k/月
  • 民營小公司:差異很大,我見過應屆生 3K/ 月的,也見過 8K/ 月的

3. 軟體公司程序員的職業發展

  • 一條路徑是走技術路線,一直做到技術負責人
  • 另一條路是做一段時間,從技術轉到技術管理

4. 軟體公司程序員的跳槽去向

  • 隨著互聯網大熱,跳槽去互聯網公司
  • 其他軟體公司,比如從小公司跳槽到大型外企
  • 銀行、金融企業的 IT 部門,錢多事少
  • 跳槽去客戶那裡,乙方跳甲方

5. 互聯網公司程序員在哪裡工作

  • 外企(在中國):google 等上市公司,以及 airbnb、uber 等明星創業公司
  • BAT、京東、途牛等上市公司
  • B 輪及以上的創業公司
  • 未融資、天使、A 輪的創業公司

6. 互聯網公司程序員拿多少錢

  • 外企、上市公司、B 輪及部分 B 輪以前的創業公司,工資都比較高,比如阿里給應屆生的批發價是13K*15月。詳細情況推薦閱讀 數據說話:怎樣的程序員最搶手? - 程序員的自我修養 - 知乎專欄
  • 由於互聯網公司近兩年給應屆生的薪水越來越高,不少互聯網公司出現薪資倒掛的情況:同一家公司里,工作兩年的程序員工資可能還不如剛入職的應屆生高
  • 外企、上市公司給的工資不一定比創業公司高,時值 TMT 投資大熱,很多融資完不差錢的創業公司為了招攬人才,會開出比 BAT 高20~50%的工資
  • 部分創業公司會用期權為理由壓低工資,對於這種情況,推薦廣大程序員同志閱讀:程序員為了期權加入創業公司,值得嗎?

7. 在軟體公司和互聯網公司,工作狀態有什麼不同

  • 在軟體公司的程序員,比較典型的工作狀態是 965,即早上 9 點上班,晚上 6 點下班,一周上班 5 天,相比互聯網公司典型的 996,在工作強度上輕鬆許多
  • 一些軟體公司存在人力外派的情況,需要員工到客戶處出差幾個月,去軟體公司求職的程序員可以在面試時問清楚是否需要經常出差

8. 在軟體公司和互聯網公司,工作環境和氛圍有什麼不同

就辦公環境我更喜歡互聯網公司,尤其是互聯網創業公司

典型的的軟體公司辦公環境

互聯網創業公司

更重要的是,互聯網創業公司的管理更扁平化,同事也更「潮」——更開放,適應潮流,帶來新觀點。
比如說,在互聯網創業公司里大家會討論 GoPro 相機的使用體驗,老闆開的車不是賓士寶馬而是特斯拉,這在軟體公司里是不太可能發生的事情。而這樣的公司,他們的技術開發、市場運營等,往往也會很與時俱進。


只想說一點:很多互聯網公司都管飯,但行業軟體公司沒怎麼見管飯的?


最近也受到這方面問題的困擾。說說我的看法。
首先從工資上來說,同樣工作年限和能力的2個人,一個在所謂傳統行業,另一個在互聯網。工資能差一倍。
從工作強度上來說,一般而言,應該是互聯網公司強度更大。但這個也不一定,不能一刀切。很多傳統軟體公司也是非常累,為了做項目經常加班,並不比互聯網少。比如華為,亞信等公司。但是在外企來說,像微軟,oracle, Vmware , 以及筆者所在的RedHat , 基本上不用加班(除非需要晚上和國外開會)。
就技術上而言,我覺得說互聯網的工程師的技術比所謂傳統軟體公司高,純屬胡說八道。我不清楚在互聯網公司的工程師的優越感是從何而來的。
作為一個JAVA工程師,我從以下幾個方面分析一下,我只說事實。
1: 互聯網公司的特點是高並發,大數據,快速迭代。所以從技術選型上來說,互聯網公司會用到 hadoop, nosql, spark , mesos , 負載均衡,集群等技術。
2: 傳統軟體有大致可以分為,項目型(如筆者曾經工作過的神州泰岳),技術基礎平台型(目前的RedHat ).這些公司確實不會面臨到像互聯網公司特別高的並發和大數據分析的問題。
3: 說完區別,我們來看看共性。共性就是,其實都是軟體開發。你能說互聯網的伺服器端的程序不是軟體么?不能!你能說互聯網的前端(web,app,)不是軟體么?不能!
4: 我們再來看一個非常有意思的問題,就是互聯網公司用的都是什麼技術(只說後端):Linux , tomcat, jboss,ngnix,mysql,nosql(redis , mongodb .. etc.) ,java以及生態圈內的一系列框架和庫, 負載均衡器,hadoop,docker,spark..等等太多了,這裡面除了開源框架,大家有沒有發現,其他的技術都是所謂傳統軟體公司的產品! 反過頭來現在很多互聯網公司看不起傳統公司,在互聯網工作的程序員看不起傳統公司的程序員,認為自己的水平高,不是很可笑的一個事情么!
5: 在從編程本身出發。程序的靈魂是演算法和數據結構。請問你上大學時有沒有一種什麼演算法叫做互聯網演算法?就JAVA而言,有沒有互聯網JAVA, 傳統JAVA? 語法不同還是API不同還是設計模式?互聯網要用到多線程,傳統公司就不用?互聯網公司程序員懂JVM,傳統就不懂?這叫什麼狗屁邏輯?
6: 對於一個成熟的工程師來說,解決不同的問題所採用的工具集是不同的。而如何用好,取決於個人能力。包括天賦,學習能力,工作經驗,努力程度。和在互聯網或是傳統軟體沒有啥關係。
7:很多傳統軟體公司有的需要處理的業務可能確實比較簡單,就像很多互聯網公司也是一些概念炒作起來火了一段就破產一樣。哪都有好的,也都有不好的。

最後,我的觀點是 : 評價一個工程師的能力,要看他的編程能力,學習能力,溝通能力,各方面的能力,不能以行業來簡單的劃分,因為這樣是很片面的。


行業軟體企業對客戶負責,互聯網企業對用戶負責。這決定了兩者思維方式有很大不同。

客戶是個體的,實際的,是張局,李處,王經理。搞定這些人項目就成了

用戶是統計的,虛擬的,無法對應具體的人,所以必須搞數據收集,統計分析,優化體驗。


傳統行業的需求聽用戶的,互聯網基本可以沒有需求這一說,產品定義聽產品經理的,說難聽點就是看產品狗蒙的準不準。所以需求變化上更快,對用戶的體驗要求更高。
傳統行業的用戶如果足夠大,技術架構是定好的,基本上是IBM,Oracle,微軟之類東西,開發的重複性強,很多工作是為了應付用戶從領導到基層員工的各種(奇葩)需求,說難聽點,你照著實現就好了,不要有太多想法。什麼用戶體驗不體驗的,系統驗收能過就行。
互聯網行業喜歡各種免費開源框架,求新求快,可以學很多新東西,但是新不一定好。
傳統行業的發展機會是熟悉用戶的流程,很容易跳槽甲方,有心人不跳槽的人如果用戶做的多,行業知識也會了解的很透徹,轉出技術崗也是很容易的。歲數大了吃點行業知識老本不難。
互聯網行業的針對面很廣,技術積累易,行業積累難,技術上不爬的很高,今後不容易。
收入上那個好現在說都是瞎說,誰知道10年後互聯網行業會不會變成夕陽產業。想想當初在外企拿高薪,現在要被裁員的中年人吧,真是三十年河東三十年河西。關鍵看自己是否能否保證足夠的競爭力。


在軟體公司和互聯網公司都呆過的人來答一下

樓上有些人的回答純粹是在幻想

軟體公司和互聯網公司工作的差別還是很明顯的

1、薪資方面互聯網公司一般是完爆軟體公司,差到一倍的情況還是很多的

2、一般說來互聯網公司氛圍更輕鬆平等一些,軟體公司等級卡得更嚴

3、軟體公司在技術選型上求穩,新技術跟得不太緊,因為一時用不上,互聯網公司普遍求新

4、軟體公司由於業務迭代比較慢,所以更強調架構設計,讓一個軟體用得更久一點也是開發的目標之一(雖然不一定能做到),互聯網公司更強調寫代碼,這樣也導致互聯網公司會有一些還沒寫完就得重構的工程出現

5、軟體公司由於做TO B業務比較多,開發人員的發展會出現兩個傾向,一個是做著做著就開始做各種雜事,比如技術支持,售前諮詢,項目管理,另一個是強調懂業務。在互聯網公司,懂業務沒有那麼重要

6、基於第五點的情況,軟體公司和互聯網公司的技術人員發展路線大不一樣,一般來說軟體公司出色的技術人員基本上都走了管理的路線,幹了三五年以後各方面能力均衡(均衡的意思也可以理解為沒有一個特彆強),能寫代碼,會分析業務,能做設計,能管人,會談判,集產品經理,項目經理,技術經理,工程師於一身,不管是對付老闆還是對付客戶都有一套(雖然未必都很精通)。而在互聯網公司工作的開發人員則在技術深度和代碼能力上一騎絕塵

7、軟體公司由於業務方向和體量問題,在大規模大體量的工程開發方面比互聯網公司弱很多

最後,最近十年互聯網公司從中國的大學裡面招走的優秀學生數倍於軟體公司


本來準備睡覺的,看到這個問題感觸良多,特來開夜燈回復一番。
我個人這個情況倒是蠻適合回答這個問題的。我現在就處在軟體公司,然後所做的方向是政府行業。而我另一個朋友則是在一個旅遊互聯網公司。剛好年前吃飯的時候我們倆討論過技術的發展問題。想著能從對方身上學到一些技術發展的思路。聊了幾十分鐘之後發現我們兩個的思維的確有很多的不同。
給我印象最深的是兩者所用技術的不同。我那個朋友,所處的那個互聯網公司,他們現在主要做的事情就是一個雲計算的管理。他們的軟體架構已經實現了微服務,集群化,多節點這樣的軟體模式。他們目前的重點就是如何管理這些應用的節點,比如說分散式系統日誌的管理追蹤分析,提高集群下多節點服務的健壯性,如果哪個服務出現了故障,其他災備服務能夠快速的反應。框架上他們使用了一些spring cloud ,百度雲計算的管理框架。而我所在的公司是一個項目制的公司,公司的盈利依賴於每年幾百個項目的回款。這幾百個項目中如何提取出可復用的組件構建出開發平台,如何準確地摸清每個項目的需求,如何在有限的人力,時間,資源上看速的完成項目的驗收是我們的當務之急。
我這個朋友工作經驗比較複雜,之前有好幾年做的並不是web的開發。但是短短一兩年之內,技術占的廣度和實效性已經大大超出了我目前的認知。而當我說起我每天的工作內容有很大一部分是放在項目管理之上時,我這個朋友覺得項目管理任何一個開發程序員都能去做,這讓我很不可思議。軟體公司和互聯網公司從這一點來說,軟體公司要更注重於項目管理,互聯網公司更注重於產品的快速迭代,提高運行速度。
還是說技術,有一些共性的東西是我們兩個都比較贊同的。比如jvm的調優,分散式緩存與消息隊列等組件的使用,資料庫的水平垂直擴展,應用伺服器的負載均衡等等都是相通的。
再來說待遇,因為哥們兒兩個關係比較好。但與聊起來也很隨意, 同樣的畢業學校同樣的工作年數,待遇也差不多。不同的是他們大型的上市公司公積金交的比較高,我們民營企業一般是做避稅處理社保醫保公積金都是按最低基數來交。他們公積金有2500我們公積金一個月有400。他每個月要交稅一兩千,我每個月只要交稅40。
再來說發展,他現在的標就是在技術上面不斷追求,追求技術的廣度追求技術的深度,追求編碼能力,思想的培養。我現在的目標則是半開發,半管理。技術的時效性來說,我確定他將會比我強很多。但是就項目管理上來說,如何跟那個一個客戶去聊他們的需求,如何跟公司領導去有奶就是娘的要資源,如何準確的分辨出哪個開發要離職並且進行安撫,如何快速的將新入職的員工培養成有戰鬥力,我只信會比他強。說不出兩者哪個發展更好,好好乾都有一定的發展。我個人覺得做技術做的久了,人就變得比較木訥不通人情世故,做管理做的久了你會變得越來越虛越來越耍嘴皮子功夫,換個公司,所積累的人際關係行業業務知識的作用都會大打折扣。
先說這麼多吧,凌晨開始寫的,到現在已經零點半了,明天還有一堆有新的事情等著去處理。文章是用搜狗輸入法語音功能翻譯的,有錯別字請大家見諒。


行業軟體公司我覺得和普通行業差不多,互聯網行業更為浮躁,畢業過萬三十財務自由的想法很多。尤其以初入職場的居多


傳統行業對程序穩定性、性能、代碼質量更看重吧,互聯網行業更加追求快速迭代、堆硬體、更注重外觀等。
在傳統軟體業中,更多的是C/S模式,必須關注性能及穩定性問題,因為用戶直接在用你的程序,是不是好用直接就能感受到。
而在互聯網行業,更多的程序是在伺服器端,跑在linux下。掛掉了?沒事,給你按個看門狗,掛掉就重啟;性能不夠?沒事,再加幾台伺服器 ...


互聯網公司:關注高並發 海量數據 同學在網易 之前是做頁游的 分分鐘要求百萬的訪問相應時間要多少。。。。
軟體公司:鄙人在某IT諮詢公司做碼農 主要是業務邏輯複雜 現在有個case是出一個report 每個report裡面每條記錄根據某個欄位的值需要執行不同的邏輯 邏輯種類不同大概總數在50種邏輯 是利用XML配置還是自己鼓搗一個腳本引擎還是硬編碼邏輯進去還是利用面向對象的多態來實現?這是個問題
這就是典型的側重點不同。。。
PLUS 軟體公司在上海很多外企 對英語或者日語要求高
再PLUS 互聯網的薪水相比軟體公司感覺在1.5到2倍的樣子 我網易的同學現在是20K而我只有10K 淚奔。。。。
當然我確實沒有他們那麼累 最多就是晚上跟歐美開開會。。。


職業規劃和發展前景差不多。因為不管是互聯網還是行業軟體,其內部就大包大攬了幾乎所有的分門別類,只好說是差不多了。
技術上差別還是挺大的。
互聯網一是對頁面的舒適性要求更高,也就是頁面細節不能錯,相應速度要快。二是用戶條件很不確定,load時高時低,高時要扛得住,低時要優化資源。三是安全關注點主要是可用性,防止被攻停。技術難點集中在前端,關鍵字:集群,緩存,動態化。
行業軟體一是更複雜,充斥著各種工作流,要求絕對的流程追溯,場景復現。二是生命周期更長,一用就十幾年的情況很常見,而且可能每一年被改成完全不同的另一個系統,但也不能從頭開始做,所以可維護性上要求高。三是安全關注點主要是防盜竊。技術難點集中在後端,關鍵字:集成,框架,領域化。


偶爾我會想:讓做互聯網的哥們去做醫療設備軟體,會不會出人命啊?

需求:互聯網靠蒙;行業死聊關鍵客戶。
業務:互聯網自己定義;行業必須板上釘釘,否則一堆的對接和兼容性問題。
流程:互聯網靠迭代;行業基本瀑布,做版本迭代的都死球了。
質量:互聯網靠客戶反饋;行業靠AB線測試甚至多系統判定。
維護:互聯網自己開發自己維護;行業得把客戶當傻瓜,自己維護是找死。
責任:互聯網主要搞死自己,行業先搞死客戶然後搞死自己。
專家:互聯網專家懂自己這攤,換個公司基本沒半條命;行業也是業內專家,換個公司繼續大魚,換行當死翹翹。


利益相關:在米帝某油服的碼農部門實習。業內來講我司開發的軟體算是最好的之一。

用我mentor的一句話概括就是:在專業的軟體工程師眼裡我司的代碼就是作坊水平,不過跟友商的代碼比的話作坊水平的就是友商們了。

不少行業的專業性決定了寫代碼的大部分是這個行業的專業人才而不是專業的碼農,代碼風格和質量能好到哪去。。。比如我負責重寫的legacy code里內存溢出、不做boundary check導致偶爾crash、用==比較double這種新手級別的bug碰到過一籮筐。而互聯網行業就好多了吧,PM再push碼農也不會掄著膀子說「我行我上你走開」,code都是科班出身的軟體攻城師一個字一個字敲出來的。而且互聯網公司對新技術、新工具的追趕也更及時,應該不會像我司這樣在這個時候用著gcc4.6,eclipse4.3,gdb 6.6和centos 5.


互聯網可以是一種大行業,等同於金融、政府這樣的大行業,在這個行業的程序員更加偏重於前端體驗、軟體創造性、關注市場動態,視野思維比行業程序員要開闊。


我看到這個題目首先愣了一會兒,在想以什麼角度去劃分互聯網程序員和行業軟體程序員。看看了樓上的回答大概明白了提主的意思,下面說說我的拙見。
技術區別
良莠不齊,無法比較。從概率學的角度分析,互聯網程序員的工作環境決定了討論技術的氛圍會更加濃厚,用到的技術更廣。而行業程序員可能研究與本行業更密切技術,知識面是窄而精。
職業規劃:
技術還是管理。不管是所謂的互聯網程序員還是行業軟體程序員從大方面來說就是這倆,細分的話請自行查詢。
發展前景:
目前來說都很好啊,都是開發崗位。
答完之後發現自己被題目繞進去了,這兩者真的沒啥比較的。二者想通,踏踏實實的把技術掌握好才更重要。


求摺疊。互聯網公司加班多,軟體公司加班少或不加班。


行業軟體公司?....呵呵....
某日大領導來審查項目組,他一共說了兩句話
1、哎呀,最近該加工資了吧....
2、小X,你有中興的安居房就不用加了吧,你也走不了....
你們體會一下!!!!


行業軟體員研究菜譜,互聯網軟體員去做菜。
也不排除交叉的可能性。


個人覺得主要在於技術和文化,而互聯網開放,快,極致的文化不是一般軟體公司有的,當然也不是所有軟體公司死氣沉沉的氛圍,互聯網公司也有一些傳統軟體公司進來做管理的管理者,管理沿用軟體公司做法。大互聯網公司和某些互聯網創業公司的氛圍確實很贊。


調侃一下,來看個答案:

4: 我們再來看一個非常有意思的問題,就是互聯網公司用的都是什麼技術(只說後端):Linux , tomcat, jboss,ngnix,mysql,nosql(redis , mongodb .. etc.) ,java以及生態圈內的一系列框架和庫, 負載均衡器,hadoop,docker,spark..等等太多了,這裡面除了開源框架,大家有沒有發現,其他的技術都是所謂傳統軟體公司的產品! 反過頭來現在很多互聯網公司看不起傳統公司,在互聯網工作的程序員看不起傳統公司的程序員,認為自己的水平高,不是很可笑的一個事情么!
作者:田樂
鏈接:https://www.zhihu.com/question/20274106/answer/91684623
來源:知乎
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。

嗯,說得很好,所以作為互聯網公司,我們只用vert.x,這裡一大串我們都不用,還有pg,還有flink,還有cassandra,還有cloud哈哈哈

docker不用,因為沒有必要,jar本身就跨平台

nginx也不用,因為沒有必要,vert.x自身就可以做反向代理,實測性能不比nginx差,而且我們通過直接調用cloud api修改dns的a和cname這些,做到dns的負載均衡,所以這一層也沒有必要存在,直接去掉了

jboss,tomcat更不用了,vert.x web可以做web server

linux,用,但是是cloud上用,虛擬化這一層顯然是互聯網公司的產品

spring,no,不用,di太麻煩了,而且會破壞verticle內單線程的環境,引入風險

mysql,不用,pg更好用,實測pg性能更佳

mongodb,不用,理由同上,實測效率不如pg

hadoop,嗯,hdfs備用但沒用,cassandra基本足夠用了

spark,不用,用也是flink

redis,不用,vert.x的verticle自己可以做緩存,存狀態

哇哈哈哈哈,好像我們是第一家真正意義上的互聯網公司啊

淘汰了這麼多東西,看起來好有成就感哦

----更新一下,有人說mysql,blablabla,好,給一個例子----------

英語好的自己看,為了兼容mysql這種東西,導致比如batch api都不能用啊

用久了pg真想讓這些api們甩開mysql這個包袱,每次都被mysql拖住了腳步,好煩啊

俺們用的是scala寫的這個pg mysql這個async的client,高級貨,看源代碼都是scala……

Vert.x MySQL / PostgreSQL client

mauricio/postgresql-async


推薦閱讀:

為什麼 O2O 領域融資額特別高?
創業什麼最重要?
北大畢業,放棄了博士學位,不巧當了奶爸,更苦逼的是,我還創業了,還選擇了母嬰行業,為什麼?
有點子有技術沒有團隊,怎麼做出東西來?
目前是創業的最好時機嗎?

TAG:互聯網 | 創業 | 軟體 | 程序員 | 職業 | PHP | Java | NET | JavaEE |