做有中國特色的程序員

從出版業說起

網絡作品排到靠前的,都不會太難看,一般人不愛看某部作品也是因爲不喜歡這個類型,而此人也不會全不喜歡這些網絡作品。究其原因,是因爲網絡作品都是讓人先白看的,看的好了纔出了頭。而紙質作品就不一定了,排行榜靠前的,有好作品,也有垃圾。
許多大牛都是寫了博客,後來出了書。這些書也都不次,可能有人讓爲不好,是因爲技術書不像小說,小說在讀故事,技術書是在學知識或溫習知識,有些技術書讀得可能很違背某人的學習習慣,就感覺不好了。
所以說網絡是塊神奇的空間,很能造就高手,而網絡高手是絕對不能小瞧的。

建築工程

建築工程不乏豆腐雜,但比起軟件工程來說,豆腐雜的概率還是很小的。做軟件,很可能某程序員在開發階段一天沒幹一點正事,但在建築行業,除非是收尾階段,否則絕對不可能一個工人一天沒幹一點活兒。建築工人還是很較掙錢的,但絕對是血汗錢。程序員還真不一定是血汗錢,因爲軟件工程沒有建築業成熟,常常因爲分配不當,很多程序員每天在幹無用功。建築工人的門檻相對低一些,但也並非容易達到熟練水平,就算那個最低等的搬磚推灰的小工,至少想達到這個水準,你得身體力氣跟得上,一月沒有一天休息你得熬得住,想想都不容易。

中國軟件的用處

軟件不一定驗收了就是有用的,在我看來,一款軟件要想達到有用,至少實現以下功能之一:
1,爲使用者節省了時間
2,爲使用者節省了人力
3,爲使用者帶來了方便
4,爲使用者帶來了知識
5,使使用者能做到某種難以實現的事情
6,爲使用者帶來了快樂(比如遊戲)
7,爲使用者節省了資源
8,輔助使用者做出了判斷
9,爲使用者解決了某些問題
10,爲使用者提供了資源
而有很多軟件做出來以後,使用者不用吧已花了錢了,用吧什麼也沒帶來,還得爲學習這款軟件而費時費力,得不償失。
但有一個很悲觀的消息,除了網絡軟件之外(包括網站),凡有用的軟件中國人都習慣白去使用。而花了一大筆錢的軟件,往往帶來的好處不多。不是一點沒有,是性價比太差。所以現狀是:有用的軟件沒市場,有市場的軟件用處有限。多尷尬的事。
而以上的一切帶來的現狀是:除了網絡性軟件外,中國的軟件掙錢不容易。

程序員的被動

如果程序員做的東西要不掙不了錢,要不掙了錢反而讓客戶感覺不值,這樣的話,程序員的價值就降低了。這樣,建築工人灌一天的水泥往往沒白乾,而程序員開發一週的工作往往白乾,這是常事兒。
這使程序的技術定位很尷尬,在中國,說句實話,不是每個程序員都能天天用到內存管理,就連最基礎的算法也都被高級語言封裝好了,當然也有很多低層的程序員,所以大家不用跟我爭這個,最主要的是,高級語言、業務需求、工期決定了有很多編碼與操作系統、算法、內存等等越來越脫節,這樣的話,很多程序員幹了若干年,特定業務熟悉了很多,但編程最基礎的知識反而漸漸忘去。這就出現了,讓市面上很多程序員去做個基本的數據結構與算法(比如有向圖,再比如好像是老趙說的排序),反而不會。這找誰說理去?還不如建築工人呢,人家說會刷塗料真還做的不錯。
有些公司,銷售、行政、甚至實施人員都比程序員有優勢,他們眼中這羣天天如高僧般坐在那兒的人,佔公司大半人數,反而做的貢獻不多,反而讓他們辛苦開拓的客戶羣都在謾罵。
程序員,好被動。

不按套路出牌的中國人

中國到處都有不按套路出牌的現象:不用正版,不守時,造假,山寨,不排隊,地溝油,不按合同辦事,以次充好,沒服務。這是種壞氛圍,以至於每天每個人都習慣了這樣規律,反而麻木了,不認爲這是不對的,就如同我(我也不敢說你也是)每天白看人家的書白用人家的軟件,而沒有感覺自己有多少罪惡感。

中國程序員的出路

中國程序員也有做好的,雖然其最優秀的那些拿到國際上什麼也不是,但畢竟能達到不被動,能用自己的努力使生活美好起來的還是很多的。總結一下,有如下幾種:
1,教育型,主要是學知識,寫書,講課。
2,自由型,主要是爲自己打工,做好的小團隊軟件,以積累用戶而達到做有用的軟件,掙有價值的錢。
3,業務人際型,一般都走向偏管理的路子,用高級語言,對數據庫、報表、服務器和某個業務領域精通。
4,高級白領型,以進入國際大公司做核心項目爲主,因爲待遇好,屬於打工仔裏的高富帥。
5,創業型,當老闆,或許這個已不是純粹的程序員了,所以這個只能算半個。
以上幾種路都可以走,但大多數程序員都還不在這5類之中,都是在某些公司不溫不火的爲生存努力着。

讀技術書籍未必就真是無敵之出路

我常愛說,會中國常用的三千字寫不了個好文章的話,學會中國八萬漢字也未必就能寫出來。同樣,市面上的程序員如果去實現個初期的Facebook大多數還是能做到的,但你會這些知識還不能做出一個像Facebook一樣有用的軟件,那麼你再精讀了操作系統、設計模式、代碼大全、算法導論......也還是照樣做不出來。所以我很反感網上列的程序員必讀書目,一列就是五十大本, 你花十年啃完這五十本,你還能寫代碼嗎?
從環境入手,找到自己所缺少的知識與資源,突破再突破
個人感覺程序員首先應該定位目標,然後界定目標所涉及的環境圈,在環境圈的範圍內捕捉問題,界定自己的知識與資源範圍,有目標的展開學習與環境方面的突破,這樣更適合程序員。
也就是說,你要是教育型的,你在你所涉及的知識範圍裏要細到知識點;但你是自由型的話,還沒必要都細到點,否則你天天不是在開發了,而是在學習了。如果是業務人際型,可能你對操作系統、網絡什麼的不必要了解太細了,但業務得精純。
儘可能縮小範圍,持之以恆是關鍵
其實不管是技術還是人際,所涉及的學問是無邊的,如果都要學精再去做事,我想這樣的話就沒有做事的機會了。所以儘可能縮小知識領域的範圍,比如上面我分5類人才,就是縮小了一層範圍,但是這還是很粗的。假如你是教育型的,你想教會大家用設計模式,那儘可能先不要去學習WPF,先把設計模式搞到專家地步再說。此間道理,我想大家是可以理解的。

結束語

寫了這麼多,其實我並非在教育誰,我沒有這個資格。 網上高人一把一把的,怎麼能輪到我來說教。目的只有一個,想找到程序員的出路,想讓程序員不那麼民工(或碼農)。大家是拍磚也好,送花也罷,這都是對我有幫助的,畢竟我也是在摸索當中。我不喜歡那些寫類似《如何讓程序員成爲百萬富翁》而自己連十萬都沒有的作者,但我確不反對作者們拋磚引玉。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章