如何看待《中國的程序員培訓是不是有問題》這篇文章?
http://iphone.myzaker.com/zaker/article_wx.php?app_id=310000pk=5751a0d51bc8e09d6f000021詳情
知乎的程序員較多,想看看大家的看法
中國有一奇事。面試的時候,技術官可能會問一個很細的問題,比如某個函數怎麼調用。奇了怪了,難道記不住這些就不能做開發了?谷歌一搜不就結了嗎,本來開發就是需要各種文檔輔助的,豈有光靠記憶力做開發的人。
同意此句================================
分分鐘成為最多贊的回答·笑哭補充一句,這裡主要想表達的是吐槽有些面試官神奇的問題,當然也可以說是問了公司需求,希望找到有經驗的應聘者。這自然是無可厚非。只是覺得沒有工作經驗的面試者很吃虧罷了。但本來工作經驗就比工作能力好考察吧,所以遇到這種事而且又恰好沒答上的,最多也就是和公司無緣咯如果確實有能力的話,那也是公司的損失吧~作者畢竟是「旅日工程師」,情懷可以打個滿分,洞見就只能負分了。我有點懷疑是看多了互聯網新興企業的程序員拉風的樣子心裡不爽,就勸我們多學學傳統公司低調的「IT工程師」。
實話說「Java工程師」、「Python工程師」這種稱號我也覺得挺鬱悶的,不過一個同時會 Java、Python、Scala、Ruby當然還有最好的語言PHP的程序員,工資不但不會乘以五,還有可能會被拉去同時做五份工作的風險,你說心累不心累?怎麼想都覺得自己腦子有病吧?為什麼所有項目不用同一種語言寫呢?就算你不屑於當一個 Node.js 全棧工程師,還是有 Scala.js + Scala Native 可以選擇的嘛!這下統一了技術棧,簡化了系統,為企業降低了維護成本,功在當代利在千秋!那麼招聘該怎麼寫呢?寫「軟體工程師」?老闆說不行,這樣萬一不會Scala還要花錢花時間培訓……於是就有了「Scala工程師」,然而你又不高興。又想馬兒跑,又想馬兒不吃草,這是不行的啊!
我們不妨來想像一下全棧工程師的面試場景,面試官說用C++寫個B+樹,你吭哧吭哧寫好了,再用Java寫個多線程Web伺服器,你又吭哧吭哧寫好了,面試官說小夥子基礎不錯月薪4K,WordPress 企業網站定製對你來講應該很簡單的,PHP程序員一天搞定的事你只要一個小時應該就能搞定了!工作不能挑肥撿瘦啊!—— 我怎麼就懷疑作者收了資本家的錢發帖的呢?
我最喜歡的一套introductory級別的書叫head first series,我覺得搞cs或者做se的,head first比較重要,只要能看得懂paper或者technical documents,然後有實踐的能力,就存在無限的可能。一個Java大牛,換手C++也就是一個短周期的事情,懂編譯原理和編程語言原理的,上手新語言的速度也會大大提高。
所以文章裡面強調的泛能力我覺得很關鍵,反正我覺得美國CS教育系統都是奔著泛能力去的,因為我們學校基本copy的美帝CS教育模式,就是什麼都學什麼都用,這門課C++,下門課haskell,再下門Java,再下門C#,JavaScript,大概老師只會兩三頁slides提一下primitive type,loop,function,class的用法,剩下的就都自己去Google。
語言始終是工具,用合適的語言做合適的事情,這是我實習公司的老闆告訴我的,我深以為然。我大三去面某司的時候,某司的高P評價我各種語言來實現的簡歷是江湖花拳繡腿,雜而不精,高手都是一套功夫練到家,才足夠精深,我亦深以為然。
但是,我現在覺得功夫不是語言,而是一個語言的語法結構,一個語言的語義結構,一個語言底下所依賴的系統結構,一個語言所寫出程序的設計結構,和一個語言所實現程序的演算法結構。語言只是工具,精通Java不過是一個碼Java的。語言大同小異,而且目前來看同化趨勢越來越明顯,do right thing with right languages是我現在的觀點。
所以目前我覺得對國內細分的各類語言工程師,比較不解。比如Java工程師,是後端Java還是前端Java還是Android端的Java?工程師的話按照software engineering應該是按照layer劃分的,前端(又分桌面,移動,Web),後端,測試端等等。。有時候一個公司囤積一批C#工程師,如果後端因為各種原因需要換Java呢?難道全部換人么。同樣是OOP,C#和Java的核心都是結構性的設計,而不是糾結誰的lambda更和諧好用吧。。
(以上只是菜鳥見解)吹日本就算了吧,中國整個it界,不討論到具體某個細節上,從整體上看,無論規模還是技術,也就服個美國了。你拿日本跟中國比,這不扯淡嗎?不是日本互聯網不吸血,而是日本壓根兒沒有中國這麼好的互聯網發展時空條件…中國的互聯網也不是吸血,是輸血好嘛親!
http://www.zhihu.com/question/28800965/answer/100000820
關於這個問題,之前我看過這篇文章的時候覺得這篇文章說得很全面了。
脫離環境和其他因素談這個問題個人了的沒有太大的意義。所以日本互聯網行業不發達啊,說到底,著名的軟體公司有誰在日本嗎?
圈子大了才有社會分工啊,才需要區分什麼是java程序員什麼是c程序員啊,如果一個地方對技術人員的需求就只有幾萬,那隻能什麼都會才容易找到工作了,但如果一個地方對技術人員的需求是幾千萬,那隻要會一點就能找到工作。中國的全棧程序員,兼通設計的程序員並不少啊,而這些人也都是行業的精英,日企搶著要也未必肯去的吧?為什麼我覺得是日本程序員有問題??
看到吹日本程序員也是拼了…吹印度都更靠譜一點…
婦產科醫生給你做外科手術小學老師教你高中數學你敢么?
職業發展到最後,往往都會細化,專人專用,人盡其能
所以說可能日本這個行業還不夠發達吧。。至於作者,怎麼說呢,感覺思維很奇怪不要老是盲目崇拜日本好不好,日本的互聯網發展地似乎並不好吧。日本人雖然有工匠精神,但是並不是有工匠精神就是No.1。日本的工匠精神對其發展也有不利,尤其是互聯網,互聯網本來就是一個變化迅速的行業。
觀點:正是國內的這種培訓體制保證了國內互聯網的高速發展。社會的分工越細,勞動效率越高。首先,不是每一個人都有能力掌控多門語言的,許多人自以為能,其實每門都是半吊子水平。然後,計算機領域的知識更新速度極快,信息量極大,如果你沒有專註點的話,很難快速掌握一個領域。不打造專才的結果只能是打造平庸。專註領域跟重要,現在每個領域的知識量大到驚人,程序員更要關注個人價值的提升,專註一個領域5-10年成為一個專家對個人來說受益最多,然而今天做前端,明天做平台,後天研究機器學習,看似一個人把公司的工作都做了,其實把自己荒廢了。我的觀點是技術可以泛,但是前提一定是要專,而且是確實有一定水平後再發散延伸。
別的不敢說,日本人的IT方面我還算有點了解
利益相關:對日外包碼農,參與過成田機場和野村證劵以及電通等廣告商的雜七雜八系統開發(可能有人都能猜出公司名字了)可能有人看過一本輕小說叫《奮鬥吧!系統工程師》,文章中提到過很多次SE非常辛苦而且工資並不高,地位也不高——當然這和男主的非專業出身基礎太薄弱也有關係,重點是日本人對碼農並不那麼看重,或者說,並不是非常重視技術人員,他們重視的不是技術水平,而是你的螺絲釘作用.對日外包的同志們肯定對需求說明(式樣書)非常熟悉,日本人極擅長寫這個,把一切東西都規定好,操作順序也要寫一份手順,寫的巨細靡遺.他們通常是把碼農作為手順的一個環節來看待,在他們看來,你會得越多,能上的地方就越多,然而指望日本人為了你多出的技術出錢大概是不怎麼現實的
程序員分工是非常有必要的,雖說經常說語言只要學通一種剩下的就會很容易,但是也僅僅是接觸之後有個底子而已,我見過不少C學的還行到公司學Java一臉蒙蔽的,說明想要把一門語言學的很靠譜不是想像的那麼簡單,尤其是性質截然不同的兩方面,那自然會有橫向發展和縱向發展的兩種情況,學得多的廣度大的普適性高什麼項目都能上,這是一種優勢,把某方面鑽研到一定境界的,他也能在這個方面找到很好的前途,這也是一種優勢.
分工明確的情況下,在求職時候也能起到很好的作用.再說這文章全篇的意思大概是日本式的做法略優於國內的JAVA工程師之類的分類?
簡直是搞笑,日本人上線的項目不知道有人了解過沒有,界面奇醜無比不談了(國內現在新項目都會用bootstrap了,再次一點至少會用easyui,日本人堅持使用手動畫畫面的方式),畫起來還很繁瑣(我就不說swing定坐標畫畫面寫起來多蛋疼改起來真要命的問題了,真是訴起苦來黃河都要幹了),底層的東西非常陳舊,就是不願意用新的,SSH這種現在可能逐漸有被SSM取代趨勢的框架日本人用的津津有味,struts還經常是1.3的版本,上次項目好點用了2.1.日本的IT業如此坑爹,中國的IT卻逐漸步入正軌逐漸發展起來(可能有些走偏了也說不定,中國特色it說不上是好是壞),怎麼還會有人覺得日式的制度比國內的分得清清楚楚的要好?看一看原文怎麼寫的:客戶交付一項工作,只要是能夠盈利的,那麼你不應該有任何理由去拒絕它,除非它觸犯法律和道德。
如果僅僅因為一項任務需要用 Python,而你只會 Java,便說 " 幹不了 ",那真是荒唐可笑。
正確的做法是:無論事先是否具備這項能力,先接下任務,然後再尋找解決方案,以最好的服務態度、堅韌不拔的毅力和專研的精神,不惜一切代價也要完成它。
這不就是大包大攬的拿項目最後逼死開發人員的PM(聽說過以前公司有過這種PM,後來還是把客戶說服了降低了需求標準才把項目搞定,我沒經手不太清楚情況)或者產品的嘴臉嗎
怎麼說來著,完成不了的需求,就要當場提出來,和客戶搞一個折中的方案,要不然接下來完不成,比當時就拒絕還麻煩.文章有些寫的還行,至少對行業的現狀寫的還算比較到位的,這點沒胡扯.媽的 程序員學一門語言已經不容易了 還全棧 只有外行才特么以為學什麼語言都一樣好吧 比如說每個語言的this指向問題 對象問題 指針問題 多的很 區別天方夜譚 我是js程序員 第一次寫PHP的時候神奇的發現PHP居然自帶排序 看得我真特么羨慕 國內老一輩的外包公司的程序員也是什麼語言都會啊 就是拿模板來套 什麼原理也不管 如何改進也不管 優化也不管 這就是你們想要的么?撇開這些不說 給三哥的程序員洗地可以理解 給特么日本程序員洗地就不能理解咯 國內的程序員什麼時候把日本程序員當過同行?? 世界上的程序員厲害的也就中美俄 印度也只能說還勉強 其他國家的程序員也就呵呵了
謝邀。
其實我覺得中國程序員群體的最大特點就是「多樣化」。 並不存在「中國的程序員培訓」,每個企業都有自己的培訓目標和培訓方式,有高大上到趕英超美的,也有low到不能看的。 但是不管看上去再怎麼「有問題」,一定是彼時彼刻適合該企業的做法,不一定是最好的,也一定不是最差的。
另外,在編程這件事上,大家可能還是參考美歐比較多,不太關注日本。日本的IT落後於中國,中國的IT發達,分工很細。你聽過哪家著名的日本互聯網公司么? 人的精力和時間是有限的,一個人精通一門語言,已經很難了。
前端能幹的事
嵌入式,桌面應用,手機應用,伺服器,網頁/網頁應用java能幹的事
嵌入式,桌面應用,android應用,伺服器,數據挖掘,網頁c++能幹的事
創造世界作者還說什麼了?嗯?這是標準的外行編寫或者在做對日外包的程序寫的文章,何必在意呢。說點實情吧,對日開發軟體工程師,基本上就是文中所寫的那樣,啥都會,啥都干,但這都是再外行眼中的樣子,也有可能是領導眼中的樣子,但實際上,在同行眼中,他們是啥也不會的一群人,寫代碼全是坑,每一種語言的水平,連入門都沒達到,工作十年約等於別人工作2年,工作15年約等於別人4年的水平(純技術水平,不包括勾心鬥角的水平),而且還自我感覺良好。有一些趣事當對日開發軟體工程師寫代碼不規範的時候,他會理直氣壯的說,詳細設計不夠詳細,框架不好,可是實際上明明是他最基本的if else之類的,用的不合理。對日軟體工程師寫代碼時從來不考慮可維護性,可擴展性就好像代碼為他而生為他而死,別人不用去碰一樣。對日軟體工程師不懂性能是什麼,因為外包一直都是簡單重複的搬磚勞動。反正呢,大家都是出來掙錢的,也不好當面說,反正網上也不認識就隨便說說,而且當面說人家也不會認,打工仔何苦為難打工仔。但如果你是一個準備創業的人,記住我的忠告,只要你不是洗錢,不要僱傭對日開發的軟體工程師,那裡面10人9坑,一個小團隊有一個,會讓你在維護時付出慘痛的代價,一個團隊全是的話,那你準備為你的項目收屍吧。當然如果你是做政府項目,你做成什麼樣政府都接受,請無視我的話。
作者是外行。
也許是我見識少,但是從來沒見過有比日本IT業更奇葩的國家,也沒見過日本哪個行業比日本IT業更奇葩的行業。
你見過哪個國家的IT業招大量文科生做工程師么,而不是做行政,人力之類的工作,是做開發工程師。
你見過哪個國家的IT工程師對於office用的非常熟練,但是不會寫代碼。你見過哪個國家IT業,項目是一級一級往下面轉包?你見過哪個國家IT業,完全按照外行客戶的需求做產品,所以一個公司一個產品有多少客戶就有多少個不同版本?無力吐槽更多了本人不才,在日本一共工作過7年,都是一線大企業,自己東京創業過兩年,有家公司現在還在經營。目前在北京又創了一家公司。就這篇文章來看,不奇怪作者有這種想法,但是脫離環境來討論這個問題沒意義。中國遍地是人,速成班3個月造一批碼農出來。日本本來人才就緊缺,所以大家對人才的螺絲化需求是不一樣的。然而作為一個開發人員,你至少要在某一門語言上有長期的積累,才能觸類旁通,有所建樹。這不管是在哪裡都是一樣的。否則你的工資也就是平均水平了。30多萬日幣一個月,家都養不起。呵呵呵。
本來想回復培訓班出來的程序員有問題很正常啊 看了文章發現居然是對比日本程序員……那還是日本程序員問題比較大 嗯
推薦閱讀:
※Servlet程序中foward的實現原理是怎樣的?
※電腦是如何知道1+1=2的?
※互聯網行業哪個職位比較有前途?
※IT達人都是自己組電腦嗎?大家自己都用什麼樣配置的