導航:首頁 > 程序命令 > nlp程序員少

nlp程序員少

發布時間:2023-06-19 10:39:32

『壹』 良心整理:IT程序員在北京可以選擇哪些好國企、央企以及研究所

北京適合程序員工作的企業實在太多了,所以怎樣給大家介紹北京適合程序員的工作機會一直讓我十分頭疼。如果寫得太簡單,我跟大家說北京有網路、騰訊、阿里、美團等等,大家一定覺得我是在廢話,但把所有企業一次性全介紹了工作量太大,並且文章也看不出重點了。所以我最終決定,把北京拆成三片來講,一篇介紹北京的國企央企研究所、一篇介紹北京的大型互聯網公司和大型外企、一篇介紹北京的中小型互聯網公司。

我發現在互聯網公司工作的程序員都對國企央企以及研究所十分好奇, 但是因為這些單位的信息比較封閉,所以大家對於這些企業的工作方式以及薪酬情況都都不清楚。為了能給北京系列開個好頭,第一篇文章我就以我熟悉的北京的國企央企研究所來給大家介紹了。想提前聲明一點,雖然我有很多同學和朋友在北京國企央企以及研究所,但是 同一個公司,不同的部門或者不同的組差別都太大了。

尤其是研究所,每個系列都有數量龐大的下屬研究所,並且下屬的研究所獨立性都特別高,所以風格差別很大。我只能把我見到的情況給大家做一個介紹,具體去到哪個研究所哪個團隊還得你們自己去詳細打聽。只能說我的介紹相對於更接近一些真實。如果大家發現哪裡有誤,歡迎大家指出。

下面還是分開來介紹一下:

在這篇文章中說的都是國企和央企的直屬軟體開發中心,子公司是不包含在裡面的。子公司的工作風格差別很大。總體來說,國企和央企在軟體技術上都是差互聯網公司一大截的,待遇好不好真的看具體公司。有些好的國企,我一個朋友在某國企雖然工資不太高,但是上了兩年沒加過班。也有一些國企,加班比拼多多都重,但是工資低且福利差。

最近幾年計算機相關專業應屆畢業生對於銀行的軟體開發中心熱情越來越高,主要是由於銀行的軟體開發中心比較穩定,薪酬也還可以。目前應屆生選擇比較多的是工行、農行、中國銀行、郵儲銀行的軟體開發中心。大家比較感興趣就分開詳細介紹下吧。

銀行軟體開發中心在校招時和互聯網公司不太一樣 ,hr 只會和你說一個大概的工資,hr 說的工資只能參考,工資還是以實際發放為准。如果想知道具體工資你得私下去問和你關系好的學長學姐,或者只能等工資發下來了才能知道。另外銀行軟體開發中心的穩定也只是說輕易不會開除你,但是忙不忙就要看你運氣了。銀行軟體開發中心有的組忙起來完全不虛 PDD。

和同行相比,工商銀行的軟體開發中心算是技術最好的了。工行喜歡招應屆生,社招進來得比較少。剛進來的應屆生職級是助理經理,稅前年薪差不多是20萬左右(到手15-16萬吧,加上年終獎和節假日補貼)。工資發放方式稍微有點奇怪,就是每月發八九千,然後留一部分年底一並發放。每月會有飯補,過節也會有節假日補貼(放三天的節日假期給 1000,國慶給 2000,過年 4000)。

這個職級的工資對於在北京工作來說還是有點難頂的,畢竟光跟人合租每月就要花掉兩千多了。如果你是本科畢業進入工行,從助理經理升到經理一需要兩年時間,碩士只需要一年,這個職級基本上全都能按時達到,不過工資變化不太大。從經理一升到經理二大約要一到兩年的時間,這就看你的能力了,經理二以後工資就相對多一些了,經理二績效不太好的話每年到手能拿 22 萬年左右,如果績效好,可能能拿到 29 萬左右。經理二升經理三就完全看你自己能力了,到經理三以後每年到手都能 35 萬左右,收入就很可觀了。另外在工行發專利什麼的也有些獎金,一個專利貌似是獎勵 5000.

工行的總行是在珠海。工行在西安、杭州等地也設立了研發中心,都是屬於總行的。目前北京這邊也一直在動員員工去西安,薪資和北京差不太多。聽說西安那邊的工行加班比較嚴重。北京這邊總體還好,卷不卷看你組長了,不過你也可以不甩你領導,他們是很難開掉你的,他們能的只是績效給你打低點,你工資少點。

感覺農業銀行的軟體開發中心技術比工行差一點,不過工資比工行多一些,剛畢業的應屆生稅前能到稅前25萬-32萬(這是hr說的啊,我了解到的西安每月稅後到手是 1萬2,加上年終獎稅前能算 20 萬的年包,北京比西安稍微多一點點,但是多不了太多)。

農行軟體開發中心有個大問題就是工資分配很平均,但是工作量分布不均,有的組十分 養生 ,有的組忙的受不了(越接近客戶用的產品線越累)。我的一個學長天天早早就下班了,另外一個同學周末跟我吃個飯都急匆匆的,為了投產要加班到凌晨。目前農行內部的怨氣比較大,這點大家在脈脈上也能看出來。農行想要升職還要去考軟考。

中國銀行軟體開發中心算是給錢最少的了,年包15萬左右。這錢在北京確實太少了。不過工作是目前幾個銀行軟開里最輕松的,家裡不怎麼缺錢,只想找個輕松穩定的可以選。

第一年包含試用期,年薪稅前總包 26w, 第二年年薪稅前總包 31w。加不加班看你運氣了,運氣好被分到好的組不怎麼加班,運氣不好就很慘了。在北京工作的話不會被外調,但是在西安等地工作的許多人會被外調。

曾經農行團開的一位領導來我們學校校招宣講時就說因為銀行的工資有限制,漲薪比較慢。所以很多銀行軟開的職工干幾年後就會跑到券商去掙錢。那時我才知道券商居然還招不少程序員。後來我發現中信建投證券是真不錯,北京這邊學校招生進來月薪 18k ,年終獎 6 個月,雖然薪資還是不及互聯網公司,但是漲薪速度相比於其它國企央企還是快很多的。另外只有股票開市的日子用上班,加班很少。不過對於學歷的要求比較高,必須是985碩士,並且還是本科。

對於其它券商的情況我知道的就不多了,這里給大家提供一個找工作的思路,大家可以多去了解下。

這里說的運營商說的是移動聯通還有電信的研究院。移動的工資發放風格和工行有異曲同工之妙,每個月發的工資很少,到年終會一起再發一些。應屆生年薪大概 20w 左右,平時工資發一半,年終把剩下的一半發給你。聯通在北京的研究院有兩個,一個叫聯通研究院,一個叫聯通軟體研究院。我聽說的是聯通研究院比較好,聯通軟體研究院比較坑。電信研究院的據說很輕松,但是工資低,沒朋友在這里,我不太確定,只是聽說。

北京有著數量龐大的研究所,比如航天 科技 系列、航空工業系列、中船舶系列、中科院系列、中電科系列、軍事科學院下屬系列、工信部下屬研究院、中國兵器等等。不得不說計算機相關專業真的是萬金油,因為上述研究所,不管他們主營業務是啥,他們全都招計算機相關專業的畢業生,並且招的還不少。

近幾年想成為這些研究所的正式職工都需要是碩士以上了,簽的本科生基本都是勞務派遣。戶口的事放在生活里統一說。

可能家裡的長輩聽到你去了研究所會覺得很有面子。但是單論軟體技術來說,目前研究所是落後於互聯網公司的,並且差距還不算小。研究所和互聯網公司的辦事風格不太一樣,互聯網公司會把崗位劃分的很細致甚至有的互聯網公司會無限的細分一個崗位(這點是我覺得不太好的地方,因為劃分的太細了,以後跳槽會存在問題),但是研究所的崗位又劃分的太粗糙了(從訂需求、寫開發文檔、代碼開發、測試、到和客戶扯皮這些流程全的你來搞)。

另外因為研究所的大部分領導軟體方面技術沒有互聯網那麼專業,所以對工作量的評估不是太准,有時候安排起活來就比較離譜。是否來研究所要想想明白以下幾個問題:(1)你家庭的經濟情況,至少在北京買房首付家裡能掏出來。(2)你的興趣(如果只想安安靜靜地寫代碼,研究所不太合適)。(3)面試通過後你要充分地了解你所在的團隊情況,同一個研究所,不同的團隊的差別那可大了去了。

總體來說,個人感覺如果你在一個二線城市的研究所工作會比在一線城市的研究所工作舒服。在一線城市去互聯網公司干幾年攢點錢撤一個二線城市壓力沒那麼大。在北京的研究所工作北京戶口是拿了,但是干幾年根本攢不下多少錢,一線城市研究所分房這事就不用做夢了,充其量會給你提供一個宿舍,這種宿舍也就是畢業三到五年內可以住,以後就不能住了。相比於二線城市的研究所,一線城市研究所的工資每月多個兩三千,但是房價是二線城市的三到五倍,生活幸福感會大打折扣。

我有很多的校友都在航空航天系列的研究所。研究所的具體薪資都比較保密,大部分研究所在給你 offer 的時候不會像互聯網公司那樣把薪資給你說的清清楚楚並且寫在合同上,而是大概和你說個數。而且你入職後兩到三個月的薪資往往都很少,等三四個月以後薪資穩定了你才能確定你開多少錢。

航空航天目前效益比較好,算是研究所中薪資比較高的。另外食堂和宿舍都有,如果沒宿舍還會有租房補貼。但是掙錢和互聯網公司肯定沒法比。薪資的話剛畢業的學生每月到手大概是一萬出頭,工資加上各種補貼年薪差不多稅前能到20多萬。加班沒有加班費,出差會有出差補貼,有的團隊出差一天補300,有的團隊出差一天補400。所以如果你一個月都駐在外面的話,一個月工資到手也兩萬多呢。但是一年有個一兩月出差還行,有的項目組一年有三分之二時間在外面出差,你會懷疑人生的。其實剛畢業頭兩年航空航天的薪資和互聯網公司差距不大,不過在兩三年後薪資水平就會逐漸拉開,研究所薪資漲的都慢。

另外航空航天的研究所是很忙的,所以別想著進來輕松。研究所的忙法和互聯網公司不是一種忙法,有的人在工作強度大的互聯網公司待過的可能覺得自己 996 和 007 都能抗,來個研究所還怕啥?我是想說你可能想的有點簡單了,在研究所寫代碼只是工作的一小部分,讓你煩心的事多著呢。只是說你如果不把領導打了的話,他不太容易把你開掉。另外研究所有個好處是比較支持在職讀博,如果你的組不是太忙,提升下學歷是個不錯的選擇。

工信部下屬的研究院整體上都不錯,就比如信通院(中國信息通信研究院),如果你對這個單位陌生的話你可以看看你的行程碼下面服務提供商排在第一個的是誰。信通院是制定標準的單位,也是監理單位。在信通院的話代碼就很少寫了,更多就是寫文檔了,不過信通院這種地方的視野肯定高一些。薪資的話信通院每個職工薪資差別很大,剛進去工資很低,可能就四五千塊錢,但是薪資每個月都會變化,然後穩定在一個數。薪資低的每月到手有一萬出頭,但我知道每月到手兩三萬甚至更多的也是有的(不是領導啊,只是職工)。

中科院系列下計算機相關最強的三個所就是自動化所(搞 nlp 的應該都聽過宗成慶老師)、軟體所、計算所。另外還有信工所、電子所也還湊合。整體待遇上,中科院系列的待遇不如航空航天系列的。你可以把中科院系列的研究所完全的想像成一個大學(嗯,不用想像,確實是個大學,中國科學院大學嘛)。每個團隊就是你們研究生的實驗室。基本上就是一個大老闆,帶幾個小老闆,再帶幾個職工,另外再配幾個中科院的學生。課題組想要掙錢也是需要大老闆出去拉活,然後小老闆帶著學生去幹活。工作方式和技術水平和你們研究生的實驗室一模一樣的,就是多了一些碩士博士職工罷了。

中科院系列各個所和各個課題組的待遇以及工作方式差距特別大,工資有少量的比較高的(我說的比較高是能和互聯網公司持平),大部分剛進來的碩士應屆生工資差不多就是八九千,博士一萬多點。有的所提供宿舍,有的所連宿舍都沒。總體上來說想在中科院有好的發展,需要你是博士,然後多發論文。等你成為小老闆後,且團隊可以項目成果轉化,或者孵化企業後你的待遇會有比較大的變化。

中電科系列的待遇比航空航天系列稍差,比中科院系列稍強一些。我感覺中電科系列的加班強度比較高,認識的幾個在中電科系列的經常 996 甚至 007,還經常出差。待遇的話基本工資也是每月1萬出頭,然後出差也是有出差補貼,每天300 或者400,具體要看團隊。感覺工資主要是靠出差補貼堆起來的。大部分下屬院所會提供職工宿舍,中電科系列下屬研究所風格差別很大,好起來是真好,坑起來是真坑啊。

中國兵器系列計算機相關專業招的不是太多,其實每年一共招的人也不多。我最初對中國兵器系列的研究所有了解是一個所來我們學校宣講。感覺中國兵器在西安的幾個所能算的上是西安研究所的天花板了吧,待遇還不錯(和航天504所比我有點不太確定)但是在北京我就不太清楚了。

軍事科學院系列的研究所招的職位都是軍隊文職,也就是說都需要考試的。我上時,聽過幾家軍事科學院下屬單位來宣講,只是有個粗略的了解。軍隊文職也是上班制的,上班時也是需要穿軍裝的,下班後的生活不幹預。工資有個很詳細的職稱對應表,碩士進去我記得是一萬出頭。想有好的發展最好去抓總單位,因為上面提的很多研究所想要項目都得抓總單位批。不過抓總單位的科研崗都要博士了,碩士進去只能是支撐崗位。

北京來我們學校宣講的幾家軍科院下屬研究所都是承諾戶口以及包解決子女上學問題的。當時說的是博士進去副營級,會提供一個四十平左右的房子住。碩士就是普通兩人一間的宿舍。

北京具體的房價、 美食 教育等情況我放到下一篇講北京互聯網公司的文章中好好去講下。這篇文章只講一個事,那就是 北京戶口 。北京戶口的主要用處就是子女教育問題,其它的一些好處就是有北京戶口可以申請共有產權房還有搖車牌等。應屆畢業生是最好搞定戶口的時候了,如果你能進這篇文章中講的這些單位,大概率你是有戶口的。不過拿戶口的同時都要簽一個五年的服務期合同,違約金每個單位不一樣, 20萬-50萬不等,逐年遞減。對於應屆生來說戶口貌似吸引力沒有特別的大,畢竟現在自己還顧不過來,也不知道自己子女在哪呢。但是對於已經有子女的人來說,我一提給北京戶口的事他們眼睛就亮了。

北京這些年對於戶口有也逐漸放寬,一些互聯網公司的特殊應屆招聘計劃也會給戶口,另外今年雙一流學科的碩士以上應屆畢業生都給戶口了。

另外想要戶口還可以走積分落戶,不過想要靠積分落戶解決北京戶口,就需要你頭上有犄角,身後有尾巴了。

好啦,這篇文章就介紹這么多,期待下一篇北京有哪些大型互聯網公司和外企吧!

『貳』 為什麼國內很少有35歲以上的程序員原因不是技術能力

大家都說程序員是吃青春飯,認為程序員是體力活,並且在國內,實際情況看到也的確是這樣的,年齡大一點的程序員的確很少,35歲以上的程序員大多都轉技術管理或者做架構師了,或者一些已經轉行做技術培訓什麼的,那麼35歲以後就不能做開發了么?接下來咱們一起看看答案是否真的如此。

35歲以後就不能做開發了么?

當然不是了,35歲以上是可以寫程序的,大家都聽說過java之父,詹姆斯高斯林,他是一位編程天才,他出生於1955年,而java這門語言是他近40歲時才創造出來的,就這個事例就證明35歲以後寫程序一點問題都沒有的,年齡大的程序員往往都閱歷更廣,經驗更深,編程思想更成熟,對技術的細節更敏感。其實從某種意義上來說年齡大的程序員應該更吃香。

為什麼國內35歲以上的程序員很少?

上面得出結論是年齡大的程序員更吃香,可是現實中不是這樣,起碼國內不是這樣,那這到底是什麼原因呢,首先從這3個維度去分析。咱們把時間按成x軸,隨著x軸的延伸,y軸有這樣3個指標,一個就是閱歷(經驗),一個是編程思想,一個就編程的反應速度。隨著年齡的增長,編程思想,閱歷(經驗)是毫無疑問增加的,可能編程反應速度,精力方面是下降的。如我下面的示意圖所示。

因此年齡大的更適合一些專門研究技術的公司,工作節奏又不是那麼快的,不需要天天加班的公司。不需要天天加班這一點好像不太現實,因為國內的互聯網公司,搞技術的不加班簡直是太少了,國內的公司對時間節奏要求的很高,國外的一些技術公司更注重程序員的編程思想,經驗,而國內的則更注重程序員的編程反應速度,為啥呀,很明顯,產出高呀,不需要你有什麼高深技術,做一個快速編碼的碼農就行了,因為行業競爭的壓力,你有再好的思想,你慢別人一步,你後開發出來就是死,正因為有這樣的互聯網環境下才會出現我們看到的景象,35歲以上的程序員很少了。

年齡還小的程序員應該怎麼做?

鑒於國內互聯網行業的大環境,建議現在還算是年輕的程序員應該想想以下這些事情。

前幾年把精力主要放在自己的技術提升上,這個是首要任務,不用老想著怎麼升職,只要你有足夠的技術能力,以後就不會發愁。如果把這段黃金時期的心思花在其他事情上,那麼年紀大一點在職業上就會比較被動了。

其次要刻意鍛煉一下自己的溝通表達能力,撰寫文檔能力,時間管理能力等這些軟技巧,為以後向管理崗轉型做鋪墊,避免中年危機的到來。

要做好資金儲備,避免月光族,等到你人已中年,發現還沒有任何積蓄,在加上上有老,下有小,外加有職業危機感,那你真的就很崩潰了,如果有一定的積蓄在身,你就不可能這么狼狽了。

「我們相信人人都可以成為一個java開發大神,現在開始,找個師兄,帶你入門,學習的路上不再迷茫。這里是java開發修真院,初學者轉行到互聯網行業的聚集地。"

『叄』 找c++方面的職位越來越少,c++程序員的出路在哪

不認可C++方面的職位越來越少的說法。我是一名有十多年C++開發經驗的程序員。並沒有感到崗位少,反而是招聘越來越難了。

其實有這種感覺也不足為奇。最近幾年,程序員這個群體的數量急劇增長。各種培訓機構如雨後春筍般冒出來,大部分是教授JAVA或者前端技術,C++相關的培訓機構則寥寥無幾。其中最主要的原因,如果不是科班出身選擇C++語言,學習起來堪比天書。

隨著互聯網的發展,能短時間將某個idea落地變的越來越重要。JAVA、PHP、python、GO等語言,甚至JS都以其框架多生態好,在競爭中占據領先地位。但是不容忽視的是,其他語言是各領風騷三五年,C++從來沒有跌出前五名。可見他們在業界內的地位,用常青樹來形容它都不為過。

C++語言最重要的優勢是內存自管理。這也是為什麼它的框架,乃至類庫都非常少的主要原因。內存自管理需要具備操作系統、計算機原理的理論基礎知識,是大家覺得它比較難的根本所在。在實時控制,高並發等領域,C++語言的優勢非常明顯。比如證券行業的交易系統,大多是由C++語言編寫。

了解到以上情況之後,題主應該就能明白具體的出路所在。

我們喜歡彎道超車,不喜歡做踏實的工作。所以,我們只關心現成的什麼框架啊什麼的,基礎的沒人做。

不得不承認,你說的這種現象確實存在,當今C++的職位確實不如以前,但也不不是說沒有出路,只要你夠專業,夠精通,任何一門語言都還是有用武之地

1.以前因為開發語言相對比較少,而且更多的是進行底層開發以及行業性軟體開發,所以c++應用應該說也非常廣,特別是visual c++在某段時期還是比較有熱度的。而c++在做底層硬體開發,服務程序開發都是有其獨特的魅力。這張圖是不是特別熟悉,又能做界面,又能做底層。

2.後來開發語言日益增多,而技術和應用也在不斷發展,比如後面應用廣泛的java,還有當今發展很快的python,無一不是 社會 不斷發展的產物,互聯網的發展催生了web開發,人工智慧的發展催生了python語言,所以其他語言相對而言熱度有所降低,導致很多人看不到未來,是不是需要轉語言等等。

3.不過c++還是有很多領域應用,很多細分領域和還在使用,另外做伺服器端開發還是不錯的,現在很多 游戲 伺服器都是c++開發的。另外,我不得不說的,語音、視頻這方面還是c++,現在很多語音聊天,視頻直播,不也是c++開發的嗎?所以c++不會過時,繼續在擅長的領域騰飛吧

C++語法太過度設計了,裡面一大堆平時很少用到的語法,語法又極其靈活很容易出現錯誤,對使用者的要求比較高。學習成本也很高,做一個C ++項目要有很嚴格的編碼規范來限制編碼,從而防範由於對語法了解不深導致的錯誤。編寫詳盡的編碼規范這也是一件很麻煩的事,加大項目的工作量。因此用c++的項目越來越少了

C++適合開發核心模塊,不適合開發應用邏輯為主的項目。

C++語言不會是正方向。怎麼說呢,C語言是最佳的的過渡底層學習。工作中都是c++的衍生工具軟體,qt幾年我學過的,需求在北京還不算少。或者就像大多數說的走嵌入式方向的底層開發,不過只會c++肯定是不夠的。總之就像你學java開發,只會java開源軟體坑定是不夠的,還需要框架項目介面的知識。服務期間怎麼連接的,傳輸過程之類的(我對java不算太了解,勿噴)。

一句話,核心演算法都是c++語言寫的,高層應用用c++的少了。但是話又說過來,如果你精通c++語言,學其他的語言,只是一星期的功夫而已。

開源項目越來越多,C/C++主要面向的基礎組件都比較成熟了,搬磚拿來會用就行。

沒有新的理論和平台,基礎的東西無需太多關注。只有新方向出現,才需要基礎組件的大量更新,這時候C/C++才會短暫性的繁榮。

從C++學 Java JavaScript C# python 都不過是幾個禮拜的事情,自己不願意學習坐在那怨天怨地?

因為golang開始慢慢蠶食c++

『肆』 為什麼現在的程序員,真正的大牛非常少

簡單算個賬:近十多年來,中國的各種大學每年有30萬計算機相關專業畢業生,加上其他行業的轉入,編程崗位每年新增超過20萬人,全國的規模大約300萬。平均每人年15萬成本,大約需要4500億成本。市場有多大呢?手機萬億級,互聯網萬億級,游戲萬億,企業服務市場萬億。至於不足的那部分在哪裡呢?中國之外, 還有很多國家。

而IT和編程這種轉移成本幾乎為零的行業,在世界上任何一個角落都可以佔領。以美國為例, 它本國市場規模比中國還大, 卻也佔領了世界上其它國家包括中國的大部分市場。美國大約有700-800萬程序員,編程工資相當於中國的2-3倍,原因正是因為我們不能自給。世界范圍來看, 把上面的市場單位換成美元就好了。

當程序員, 確切的說是碼農, 是一個見錢最快的職業, 這也就導致現在干這個的特別多,各種培訓機構也滿天飛。當然, 程序員也是有分水嶺的, 這取決於掌握的知識技能的多少。也有一些比較精深的知識,如數據結構演算法、編譯原理、操作系統、計算機網路、面向對象等這些, 如果能掌握,會讓一個程序員的工作效率和質量有巨大的提高 , 也有了向高階程序員進化了資格 。 然而, 對於一份普通的寫代碼的工作, 這些東西最多隻能算是綿上添花, 掌握與不掌握, 對於飯碗沒有本質的影響 。 假如把掌握這些知識作為程序員的入門標准, 那麼程序員的數量估計會少一大半。不過話說回來, 不應該說程序員的數量多, 而是整個IT行業的從業人員多, 像做設計、產品、運營這方面的人, 數量不比程序員少吧。

『伍』 為什麼國內程序員都很少進行代碼重構

說到代碼的重構對於國外的程序員提到的比較多,特別是大型的開源工程,基本上一個模塊或者函數的實現會反復的修改,一個文件能被修改成千上萬次,曾經訂閱了linux內核組的郵件,每天的收到的修改文件成千上萬,有時候一個文件都能被修改上百次,對於文件修改最瘋狂的是google的chrome源碼,重構的次數,讓你覺得每天都在重寫但是功能上感覺越來越流暢。為什麼我們周圍的程序員絕大部分時間做的不是這樣的事情。

為啥從直覺上覺得老外的寫的代買質量比我們的要高,我們國內的程序員絕大部分的時間是在趕進度,准確的來講忙著增加功能和修改bug,其實也從側面反映出為什麼國內出不了android以及Linux等影響深遠的 科技 創新,從全球開源代碼的佔比就可以看出,差距還是很巨大的。

為什麼覺得老外寫的代碼比我們的強?

1.國內軟體發展主要階段還在解決有沒有,還遠談不上強大
中國的軟體經過近幾十年長足的發展,已經取得了巨大的成就,特別在互聯網行業已經有幾個巨頭躋身世界前列了,最近炒的很熱的臉書的用戶數據泄密事件,作為當事人扎克伯格,也在論述中提到中國有幾個很厲害的互聯網公司,這說明中國在互聯網領域還是取得了相當大的成就,但是在一些核心的領域,或者門檻很高的領域差別還是非常巨大。

任何事情在發展的初級階段首要考慮的是不是有沒有,所以如同創業初期的公司會選擇短時間內搞出來個產品,哪怕是不成熟的產品,然後快速的投入市場,根據市場用戶的反應同步追蹤問題,等到產品差不多穩定,並且產品在市場上有了一席之地之後,後續的事情就要考慮優化功能,對裡面的代碼或者產品的性能進行全方面的提升,目前國內大部分的互聯網一般比較年輕,還在解決有沒有的問題,相信隨著時間的推移以及國內軟體的發展,也會有大量的高質量的開源框架代碼出來,但這一切都需要很長的時間。

所以國內的程序員大部分時間都是在趕進度和根據需求完成功能代碼。

2.軟體產業的底子還很薄弱, 歷史 積淀還不夠
舉個很典型的例子,現在很多國內的程序員到了30多歲就開始考慮後續的轉型了,因為後面的輕輕人會帶來很大的沖擊,所以大部分的30多歲的程序員都在考慮自己後路,都要考慮轉型的問題。老的有經驗的程序員反而轉型去做管理或者合夥創業了,哪有幾個還在安心搞技術,年齡大了還在搞技術的還被人鄙視,覺得自己沒有出息。

但是在國外寫代碼是一種很常見的職業,和別的工種沒有多大的差異,40,50歲了寫代碼也是比比皆是,做軟體是一種技術工種,經驗的佔比是很高的,所以老程序員寫出來的代碼更加有深度,穩定性更高,一切的根源還是產業的發展不夠成熟,需要時間和 歷史 的積淀,從這方面講國內的軟體整體產業還是比較薄弱,從業人員的整體素質和工作氛圍還有待慢慢的成熟,周圍都是有經驗的程序員在帶領著如何去重構代碼,如何提升代碼的質量,而國內大部分的程序要還是被產品經理鞭策著增加需求和修改代碼。

3.公司的文化差異
目前很多的中國技術公司更多的追求的是短期利益的最大化,在基礎軟體的投入遠遠不夠,畢竟基礎的投入很難短期見成效,在一個具體的場景,有一個產品主體的功能已經實現了,也能在用戶那邊投入使用了,一般的公司很難拿出時間來,讓你做代碼的重構,畢竟這種事情很難直接產生經濟效益。這與公司本身的文化差異有很大的關系,重視的技術或者懂得技術的公司對於這方面相對比較重視,反之就差很多。

小時候課本上就說著我們落後100年,所以高樓大廈不是一天建成的,所以在追趕的道路很漫長,所以承認存在差距,然後努力加倍的去追趕。

Time is money. 以目前國內互聯網的情況,需求應接不暇,程序員基本上都是被需求與業務趕著走,時間非常緊張,在這種情況下,程序員很多時候唯一的選擇就是趕緊實現需求的功能。所以,一個項目下來,代碼基本上都變得非常非常的「垃圾」。

也有很多程序員想過在項目結尾的時候進行代碼的重構,基本上每個程序員也都知道重構代碼的好處,但是並不代表著真正能做起來。還是那個原因,國內互聯網的速度太快,需求應接不暇,做為程序員,基本上沒有時間來做這件事情。

而另外一個原因是跟團隊負責人有關。若團隊負責人能夠意識到重構的好處,那麼他可以為此單獨劃分一段開發時間出來,讓大家分別負責一個模塊進行重構,這都是可以安排做起來的。這也需要團隊負責人如何在需求人員的需求與代碼質量的進度上做一個平衡,進行統籌安排。

最後我想說一個可能很少意識到的原因,那就是人員流動問題。國內互聯網目前人員流動非常的大,尤其是北上深這樣的互聯網發達的城市,基本上是平均兩年就會走一大波人,在這樣的情況下,也會考驗從業人員的職業道德,即我到底要把代碼寫的多好,要把代碼的可維護性做到多好,其實這都是從業人員自身需要考驗的問題,因為完成一個功能很容易,但是要考慮的全面就是另外一回事了。而人員流動帶來的另一個問題就是有一些代碼是很難看懂的,即有些代碼在人員離開後成為了「 歷史 」,無人敢動。這也會阻礙著軟體的重構工作的進行。

從我所講的這幾種情況來看,重構其實是大家都能知道的好處,但是真正實施起來卻又有現實的約束,需要負責人來做這樣的統籌安排與推動。

成本太大
大多數軟體產品的開發都是經過了很多開發人員的付出,如果進行代碼重構需要了解產品、了解框架、了解代碼邏輯,這個過程會花費大量的時間和人力成本,對於企業來說,效益是第一位的,與其花費精力進行效益不大的產品重構,不如去承接更多的項目來的實在。
領導決策
由於大部分企業的老闆都是非技術人員出身,他們更關注效益和客戶,為了符合企業的發展,在進行產品開發時會更多的採用新技術來吸引客戶,花費精力重構代碼不如開發一套新產品或者開發更酷炫的效果更具有實在意義。
代碼規范不足
由於國內互聯網較之國外起步較晚,很多企業發展時間較短,加之人員流動比較大等多方面的因素,很難形成標准、嚴謹、行之有效的代碼規范,所以很多技術人員在開發時都是根據個人風格習慣在開發,等其他人接手代碼時,缺少相關標准和文檔,很難理解代碼邏輯,花時間去了解代碼、重構代碼不如直接推翻重做來的方便。
客戶定製化需求
部分企業創業初期對企業信息化是不夠重視的,只有企業發展到一定程度才會考慮信息化建設,而由於業務的限制,大多數標准化的互聯網產品都很難滿足企業的實際需求,需要進行大量定製化的開發,對於互聯網企業來說,即使產品開發足夠完善,在實際項目中也需要進行擴展,倒不如直接在項目中進行調整。
程序員的發展限定
在國內很少有終身的程序員,大部分都會逐漸轉向銷售、售前、項目經理、產品經理等崗位,而這些崗位則需要了解業務、了解客戶,對技術的需求反而不會太高,所以與其花時間去專研技術不如將更多的精力用在業務和項目層面。

代碼能夠重構對底層框架要求深度掌握、且代碼框架本身要足夠靈活,而國內絕大部分技術人員都是停留在對框架的使用層面、少數可以完善、結合使用,極個別的在做同語言山寨或者換一種語言重寫,能夠對產品體系進行把握、與時俱進擴展實在是鳳毛麟角。隨著國家的經濟提升、IT行業逐漸成熟,在我國這么多IT公司基數下,即便是鳳毛麟角的概率,重視基礎框架、積累萃取、不斷迭代完善的一些技術公司也會慢慢嶄露頭角、涌現出來的。

【國內程序員很少進行代碼重構】,這個現象雖然沒有什麼調查統計,不過我寫了十多年代碼,也發現身邊的程序員大多數是這樣的,【寧可寫新的代碼,也不願意重構老代碼】。下面我也談談自己的看法:

系統沒有問題,就是最大的功勞
我見過的大部分的傳統行業的軟體公司或IT部門是這樣的(互聯網公司不太了解),「只要系統穩定,那麼就是最大的功勞」,而保持系統穩定最好的方法是什麼? 就是盡可能的不要動系統!

可能很多人不能理解,但很多公司確實是這樣,甚至公司對項目的考核標准中,項目有什麼突破的權重很低,是否有生產事故的權重很高。所以很多「機智」的項目組成員,千方百計的不接需求,或者把需求推給別的項目組。在這種單位裡面,別說重構了,新代碼都寫的不多。

測試覆蓋度太低,重構代碼沒辦法保證質量
代碼重構,很重要的一個問題:「重構後的代碼誰來保證?如果影響到原有的功能怎麼辦?」

這時候很有效的一個方法,是使用各種自動化的測試來保證重構代碼的質量。

但是,大部分公司,不管是單元測試還是其他的自動化測試,都是不健全的,甚至是沒有的。所以只要不是被逼不得已,程序員寧可重新寫一個方法,也不願意重構之前的代碼。

其他

進行代碼重構不是一件容易的事情,務必需要對需求熟悉;對代碼 歷史 變更熟悉;對代碼框架,模塊熟悉;對產品更新迭代做好風險把控,時間成本把控……

進行代碼重構需要能力非常高,責任心非常強的人進行,甚至需要一個優秀的團隊完成。

為什麼要代碼重構?理由一大堆,我認為主要有兩條,一是原代碼已不適合擴展新需求,二是原代碼已擁腫不堪,亂七八糟。

為什麼很少重構?除了上述分析外,還有其他因素,如人員流動快,原團隊原作者早已不知何去何從了。又如需求和業務繁多,完成工作開發都累得半死不活,日理萬機似的,哪有時間和心情重構?

謝謝大家。

1.國內程序員技術能力不足以進行代碼重構

大量的軟體從業人員連編程規范都不熟悉,怎麼可能做代碼重構?更多的人只會寫寫hello world,只會拷貝粘貼小段代碼,連if else這種語句都寫不清楚甚至漏掉邏輯,連面向對象的編程思想都沒有,談何重構?

2.國內程序員的溝通能力說服能力一般。

進行軟體重構,必須說服經理,讓經理相信重構會帶來軟體質量的提高和故障率的逐步降低,這樣經理才會安排人力進行重構。

3.國內軟體開發更注重bug的及時解決

國內軟體開發大量的人力被分配到解決短期的某個bug,沒人抽時間思考如何長久的徹底的解決軟體缺陷,其實解決bug不重要,找到軟體的缺陷或者性能低下的地方才重要,這些才是重構的點。國內加班加點疲於奔命式的開發,沒人考慮bug率是否長期內能夠收斂,總是先解決眼前的問題再說,處於一個永遠解決bug的死循環里。

這種工作模式是愚蠢的,不是smart的。

軟體開發,一定要動腦子,不要蠻干,這不是耕地,力氣大就耕的多。

重構代碼的目的說白了,就是讓軟體開發人員更自由。

謝謝樓主的問題,這是一個我特別想回答的問題?

為什麼?因為,第一,我是一個對代碼有潔癖的人,受不了一坨,一坨那樣的代碼。第二,我是一個踐行Clean Code 的人,給大家我主要負責的一個項目的一組數據(JAVA),總代碼量20萬行,UT coverage(單元測試代碼覆蓋率)82%,代碼重復率0.5%,代碼規則(sonar)違反(Code issue)0,甚至連最低的違反都沒有。

也正是因為我的項目在實踐Clean Code上的數據,我經常去給不同的團隊做分享,也對團隊對這個重構不太上心有一些理解。

大致以下幾個原因。

第一,也是最多的,交付壓力,大部分人都會抱怨,你看我們有這么多新功能,還有那麼多bug,根本忙不過來,哪有時間重構?

第二,重構意識不足,老闆,管理人員總是希望這個我們要有,那個我們也要實現?為什麼?因為別人有,別人有我們沒有可能會造成用戶流逝。即使有一些有見識的程序員和老闆反應這個重構問題,但是重構從來不是高優先順序的。畢竟,現在的軟體的生命周期可能很短。

第三,人員流動性大,這個是我聽過最奇葩的一個理由,我問一個來聽培訓的哥們,說你代碼寫成這樣,以後怎麼維護?這個哥們說,我也知道難維護,但我明年就跳槽了。

第四,設計上就不需要重構,曾經給一個保險公司做分享,我本人也是做金融相關產品後台的,我就問你們這樣寫代碼,可能三四年以後就非常難維護了,還是要盡快重構。他們的回答是,我們不重構,我們只重寫。什麼意思那?就是一個系統,三四年以後在寫一遍。

第五,程序員本身的問題,可能第一寫單元測試,修改命名,修改代碼結構,是一件很沒有成就感的事情,也是一個沒有多少附加值的事情。畢竟現在你去找工作,這個代碼質量方面的問題會問得很少。

第六,我見過的我不能反駁的一個回答,我的英文太差,不能很好的命名,而我也不想學英文。

第七,反正我已經實現了功能。

最後,用一句話來提醒程序員們,重構是多麼重要。

出來混遲早要還的,挖了坑遲早要填的。

在國內,【重構】這件事是程序員最喜歡做的事,而不是公司喜歡做的事。

但程序員喜歡並不能影響公司的決策,所以,國內的現象就是軟體系統很少有重構。

其根本的原因在於,國內的公司所推出的系統大多沒有重構的價值。

1、國內的互聯網公司存在這樣一種快節奏,那就是發現一個有價值的創意,就馬上進入開發,開發完成立即上線,並立馬推廣使用。這是一種快速試錯的模式,一旦發現系統在 社會 中沒有引起反響,那就馬上把系統再下線。這種情況下的系統哪來的重構價值呢?

2、即使一個系統上線成功了,也積累了大量的用戶,貌似為了系統的穩定性和性能,可以有重構的機會。但事實上不是,國內公司仍舊不會選擇重構,因為重構帶不來新的價值。所以,公司多數都會在系統上添加新的功能來吸引新的客戶,而不會考慮重構現有系統。

總得來說,引起重構的原因在於能夠有持續的價值。沒有價值的事,企業當然不會做,僅是程序員的一廂情願而已。

你只是見到了你所在的公司現象,不代表所有,也不能代表大部分的。

代碼重構還是存在的現象

代碼設計爛,經常出問題、擴展麻煩、維護心累、數據混亂、結果不清醒、模塊劃分混亂

就可能要考慮到重構了

呵呵,

老大說:

你趕緊去修復一下這個bug,

還有幾個功能沒有實現,加班搞一下,

pm 說:

這個功能改一下,

還有這個,界面重新調整一下,

這個業務流,現在不一樣了,

客戶需求需要多幾個功能,

老闆說:

這東西下周能出來嗎?

『陸』 中國的程序員數量是否已經飽和或者過剩

程序員的數量是否已經飽和或者過剩?

任何一個行業,基本都是呈現金字塔結構。處於低端的人很多,越往上人才越少,很多大廠還不是喊著招不到人。

1、未來IT行業會持續發展,C端近幾年內用人需求會縮減,B端和高級產品端會加強,對人才技術會有更高的要求,高端技術人才的春天來了。

2、初級人員的確會更內卷。


3、35歲現象短期內不會得到改變或者緩解,會變成各行業普遍現象。35歲會變成一個分割線,變成貧富分化線。


4、油條崗位會變少,低端業務碼農,未來堪憂。

『柒』 女生適不適合學軟體開發

女生其實非常適合軟體開發,做一個程序員對於女孩子來說沒有任何問題,只不過女生對於這一行業有一定的偏見,所以女性的程序員比較少,正是因為如此啊,物以稀為貴,女性在程序員這個職業上的優勢會更大。

閱讀全文

與nlp程序員少相關的資料

熱點內容
考編教師用什麼app 瀏覽:189
靜態面向對象編程語言 瀏覽:902
炒股密碼pdf 瀏覽:661
差分演算法有哪些 瀏覽:563
佳明怎麼配對安卓 瀏覽:245
用什麼app校對試卷 瀏覽:101
基於單片機的光控路燈 瀏覽:33
為什麼說安卓平板適配的軟體少 瀏覽:680
三國志下載pdf 瀏覽:685
為什麼單片機c語言 瀏覽:427
演算法一定有一個或多個輸入 瀏覽:248
浪潮伺服器貴州銷售雲主機 瀏覽:846
amdlinux顯卡安裝 瀏覽:570
泰海科技雲伺服器如何卸載 瀏覽:124
有密碼打開excel加密 瀏覽:822
java生成重復字元 瀏覽:282
串口伺服器有什麼用 瀏覽:330
linux安裝red5 瀏覽:295
單片機中斷時入口地址作用 瀏覽:150
程序員的工作是重復性的嗎 瀏覽:69