做有中國(guó)特色的程序員
從出版業(yè)說(shuō)起
網(wǎng)絡(luò)作品排到靠前的,都不會(huì)太難看,一般人不愛(ài)看某部作品也是因?yàn)椴幌矚g這個(gè)類(lèi)型,而此人也不會(huì)全不喜歡這些網(wǎng)絡(luò)作品。究其原因,是因?yàn)榫W(wǎng)絡(luò)作品都是讓人先白看的,看的好了才出了頭。而紙質(zhì)作品就不一定了,排行榜靠前的,有好作品,也有垃圾。
博客園里有許多大牛都是寫(xiě)了博客,后來(lái)出了書(shū)。這些書(shū)也都不次,可能有人讓為不好,是因?yàn)榧夹g(shù)書(shū)不像小說(shuō),小說(shuō)在讀故事,技術(shù)書(shū)是在學(xué)知識(shí)或溫習(xí)知識(shí),有些技術(shù)書(shū)讀得可能很違背某人的學(xué)習(xí)習(xí)慣,就感覺(jué)不好了。
所以說(shuō)網(wǎng)絡(luò)是塊神奇的空間,很能造就高手,而網(wǎng)絡(luò)高手是絕對(duì)不能小瞧的。
建筑工程
建筑工程不乏豆腐雜,但比起軟件工程來(lái)說(shuō),豆腐雜的概率還是很小的。做軟件,很可能某程序員在開(kāi)發(fā)階段一天沒(méi)干一點(diǎn)正事,但在建筑行業(yè),除非是收尾階段,否則絕對(duì)不可能一個(gè)工人一天沒(méi)干一點(diǎn)活兒。建筑工人還是很較掙錢(qián)的,但絕對(duì)是血汗錢(qián)。程序員還真不一定是血汗錢(qián),因?yàn)檐浖こ虥](méi)有建筑業(yè)成熟,常常因?yàn)榉峙洳划?dāng),很多程序員每天在干無(wú)用功。建筑工人的門(mén)檻相對(duì)低一些,但也并非容易達(dá)到熟練水平,就算那個(gè)最低等的搬磚推灰的小工,至少想達(dá)到這個(gè)水準(zhǔn),你得身體力氣跟得上,一月沒(méi)有一天休息你得熬得住,想想都不容易。
中國(guó)軟件的用處
軟件不一定驗(yàn)收了就是有用的,在我看來(lái),一款軟件要想達(dá)到有用,至少實(shí)現(xiàn)以下功能之一:
1,為使用者節(jié)省了時(shí)間
2,為使用者節(jié)省了人力
3,為使用者帶來(lái)了方便
4,為使用者帶來(lái)了知識(shí)
5,使使用者能做到某種難以實(shí)現(xiàn)的事情
6,為使用者帶來(lái)了快樂(lè)(比如游戲)
7,為使用者節(jié)省了資源
8,輔助使用者做出了判斷
9,為使用者解決了某些問(wèn)題
10,為使用者提供了資源
而有很多軟件做出來(lái)以后,使用者不用吧已花了錢(qián)了,用吧什么也沒(méi)帶來(lái),還得為學(xué)習(xí)這款軟件而費(fèi)時(shí)費(fèi)力,得不償失。
但有一個(gè)很悲觀的消息,除了網(wǎng)絡(luò)軟件之外(包括網(wǎng)站),凡有用的軟件中國(guó)人都習(xí)慣白去使用。而花了一大筆錢(qián)的軟件,往往帶來(lái)的好處不多。不是一點(diǎn)沒(méi)有,是性價(jià)比太差。所以現(xiàn)狀是:有用的軟件沒(méi)市場(chǎng),有市場(chǎng)的軟件用處有限。多尷尬的事。
而以上的一切帶來(lái)的現(xiàn)狀是:除了網(wǎng)絡(luò)性軟件外,中國(guó)的軟件掙錢(qián)不容易。
[!--empirenews.page--]
程序員的被動(dòng)
如果程序員做的東西要不掙不了錢(qián),要不掙了錢(qián)反而讓客戶感覺(jué)不值,這樣的話,程序員的價(jià)值就降低了。這樣,建筑工人灌一天的水泥往往沒(méi)白干,而程序員開(kāi)發(fā)一周的工作往往白干,這是常事兒。
這使程序的技術(shù)定位很尷尬,在中國(guó),說(shuō)句實(shí)話,不是每個(gè)程序員都能天天用到內(nèi)存管理,就連最基礎(chǔ)的算法也都被高級(jí)語(yǔ)言封裝好了,當(dāng)然也有很多低層的程序員,所以大家不用跟我爭(zhēng)這個(gè),最主要的是,高級(jí)語(yǔ)言、業(yè)務(wù)需求、工期決定了有很多編碼與操作系統(tǒng)、算法、內(nèi)存等等越來(lái)越脫節(jié),這樣的話,很多程序員干了若干年,特定業(yè)務(wù)熟悉了很多,但編程最基礎(chǔ)的知識(shí)反而漸漸忘去。這就出現(xiàn)了,讓市面上很多程序員去做個(gè)基本的數(shù)據(jù)結(jié)構(gòu)與算法(比如有向圖,再比如好像是老趙說(shuō)的排序),反而不會(huì)。這找誰(shuí)說(shuō)理去?還不如建筑工人呢,人家說(shuō)會(huì)刷涂料真還做的不錯(cuò)。
有些公司,銷(xiāo)售、行政、甚至實(shí)施人員都比程序員有優(yōu)勢(shì),他們眼中這群天天如高僧般坐在那兒的人,占公司大半人數(shù),反而做的貢獻(xiàn)不多,反而讓他們辛苦開(kāi)拓的客戶群都在謾罵。
程序員,好被動(dòng)。
不按套路出牌的中國(guó)人
中國(guó)到處都有不按套路出牌的現(xiàn)象:不用正版,不守時(shí),造假,山寨,不排隊(duì),地溝油,不按合同辦事,以次充好,沒(méi)服務(wù)。這是種壞氛圍,以至于每天每個(gè)人都習(xí)慣了這樣規(guī)律,反而麻木了,不認(rèn)為這是不對(duì)的,就如同我(我也不敢說(shuō)你也是)每天白看人家的書(shū)白用人家的軟件,而沒(méi)有感覺(jué)自己有多少罪惡感。
中國(guó)程序員的出路
中國(guó)程序員也有做好的,雖然其最優(yōu)秀的那些拿到國(guó)際上什么也不是,但畢竟能達(dá)到不被動(dòng),能用自己的努力使生活美好起來(lái)的還是很多的??偨Y(jié)一下,有如下幾種:
1,教育型,主要是學(xué)知識(shí),寫(xiě)書(shū),講課。
2,自由型,主要是為自己打工,做好的小團(tuán)隊(duì)軟件,以積累用戶而達(dá)到做有用的軟件,掙有價(jià)值的錢(qián)。
3,業(yè)務(wù)人際型,一般都走向偏管理的路子,用高級(jí)語(yǔ)言,對(duì)數(shù)據(jù)庫(kù)、報(bào)表、服務(wù)器和某個(gè)業(yè)務(wù)領(lǐng)域精通。
4,高級(jí)白領(lǐng)型,以進(jìn)入國(guó)際大公司做核心項(xiàng)目為主,因?yàn)榇龊茫瑢儆诖蚬ぷ欣锏母吒粠洝?/p>
5,創(chuàng)業(yè)型,當(dāng)老板,或許這個(gè)已不是純粹的程序員了,所以這個(gè)只能算半個(gè)。
以上幾種路都可以走,但大多數(shù)程序員都還不在這5類(lèi)之中,都是在某些公司不溫不火的為生存努力著。
讀技術(shù)書(shū)籍未必就真是無(wú)敵之出路
我常愛(ài)說(shuō),會(huì)中國(guó)常用的三千字寫(xiě)不了個(gè)好文章的話,學(xué)會(huì)中國(guó)八萬(wàn)漢字也未必就能寫(xiě)出來(lái)。同樣,市面上的程序員如果去實(shí)現(xiàn)個(gè)初期的Facebook大多數(shù)還是能做到的,但你會(huì)這些知識(shí)還不能做出一個(gè)像Facebook一樣有用的軟件,那么你再精讀了操作系統(tǒng)、設(shè)計(jì)模式、代碼大全、算法導(dǎo)論......也還是照樣做不出來(lái)。所以我很反感網(wǎng)上列的程序員必讀書(shū)目,一列就是五十大本,你花十年啃完這五十本,你還能寫(xiě)代碼嗎?
從環(huán)境入手,找到自己所缺少的知識(shí)與資源,突破再突破
個(gè)人感覺(jué)程序員首先應(yīng)該定位目標(biāo),然后界定目標(biāo)所涉及的環(huán)境圈,在環(huán)境圈的范圍內(nèi)捕捉問(wèn)題,界定自己的知識(shí)與資源范圍,有目標(biāo)的展開(kāi)學(xué)習(xí)與環(huán)境方面的突破,這樣更適合程序員。
也就是說(shuō),你要是教育型的,你在你所涉及的知識(shí)范圍里要細(xì)到知識(shí)點(diǎn);但你是自由型的話,還沒(méi)必要都細(xì)到點(diǎn),否則你天天不是在開(kāi)發(fā)了,而是在學(xué)習(xí)了。如果是業(yè)務(wù)人際型,可能你對(duì)操作系統(tǒng)、網(wǎng)絡(luò)什么的不必要了解太細(xì)了,但業(yè)務(wù)得精純。
盡可能縮小范圍,持之以恒是關(guān)鍵
其實(shí)不管是技術(shù)還是人際,所涉及的學(xué)問(wèn)是無(wú)邊的,如果都要學(xué)精再去做事,我想這樣的話就沒(méi)有做事的機(jī)會(huì)了。所以盡可能縮小知識(shí)領(lǐng)域的范圍,比如上面我分5類(lèi)人才,就是縮小了一層范圍,但是這還是很粗的。假如你是教育型的,你想教會(huì)大家用設(shè)計(jì)模式,那盡可能先不要去學(xué)習(xí)WPF,先把設(shè)計(jì)模式搞到專(zhuān)家地步再說(shuō)。此間道理,我想大家是可以理解的。
結(jié)束語(yǔ)
寫(xiě)了這么多,其實(shí)我并非在教育誰(shuí),我沒(méi)有這個(gè)資格。博客園高人一把一把的,怎么能輪到我來(lái)說(shuō)教。目的只有一個(gè),想找到程序員的出路,想讓程序員不那么民工(或碼農(nóng))。大家是拍磚也好,送花也罷,這都是對(duì)我有幫助的,畢竟我也是在摸索當(dāng)中。我不喜歡那些寫(xiě)類(lèi)似《如何讓程序員成為百萬(wàn)富翁》而自己連十萬(wàn)都沒(méi)有的作者,但我確不反對(duì)作者們拋磚引玉。