做為一個過來人(裝裝腔壯壯土氣,其實再過一個月我也才30歲,只是17歲就入行),電腦應該是怎么學的,我對時下的肓從跟風有非常大的意見。。
所謂的專業技術其實際是業務模型的實現,而業務模型是市場需求總結出來的。。
所以技術的本質在于利益。。怎么做學什么符合目標(業務模型)就那么做,這是不可抵抗的原則,如果違反了,就會傷心,罵某人不識貨,其原因是因為違反了這個不可抵抗的原則。
因為除去利益,技術什么也不是,它可以推動火箭上天,但若沒有喝彩,汗水唯有黃土識。。
電腦就是這么學的。。
但是有幾個誤區一定不要掉進去。。
關鍵問題,值錢的技術是什么?
某些人,自以為自己很歷害,VC、GCC都很牛(比喻了解和有能力生產core),但他始終只能拿工資,聽不懂業務模型。。更笑談項目設計及所謂的構架。。
其實值錢的是標準、協議,精之那他是CTO,如果再加上業務邏輯,那他就是副總(搞技術的去當老總就不算技術人員了,所以不在此列,因為馬上要變質了,就象門口賣蘋果的,專業知識只會用來吹牛),如果只擁有實現機理及構架能力的,那他是項目經理,如果只是會編程,那他只是程序員,如果編程還只是入門,那他就是打字員。。Microsoft Office 是由打字員+程序員搞出來的,對吧?然而金字塔的精妙會有人說是奴隸的功勞嗎?
某天,我老婆叫我幫她刷投票,我的notebook上沒有Windows 我執長的一些語言無從發揮,只有linux,為求簡便不打算用gcc、java,想試用簡便的shell腳本,可是我對shell 一無所知,咋辦呢?于是我從網上下了一臺參考手冊,實際上我只要查一下 if 和 while的語法結構,不用一會,我就搞定這件事。。當不少朋友時刻在背那些命令、語法時,我正躺在床上看鄭少秋的VCD。。(這也只是一個比喻,形容編譯語言并不重要,最科學的完全任務是首要的)
首先我們分析一下,if while 在多如牛毛的編程語言里都是存在的,因為所謂的語言就只有這些東西和一些類庫擴展函數(就象VBS 和 ASP,就象.Net Framework和API)。。這就是一種變相的潛標準,正如我要寫數據庫應用程序了,我知道,它肯定是由 “動作 目標 條件” 來組成,我無須去牢記那些不同數據庫各自的命令,它一文不值,因為那是人家定的,人家想怎么說就怎么說,不如用的時候去check 就行了。。當然這只是一種形容,一種對交集的對待,并不是說不應該去學習各種不同特色,至少我面試MS SQL數據庫人員時,不明白聚焦列的立即中止,命令記得再多再熟也是空談。。因為它是一種基本機理,機理不明白,就只是打字員。。
所以學技術必須先學標準,要學標準必須先學習機理,考慮它如何做,為什么這么做,就可以了。背書完全沒必要。。正如我看電視,我看的是藝人們怎么去回避那些尖銳問題,領導們是怎么博彩表現,演講的人怎么去制造浮華噪影,考慮他每一句話的必要性、目的性和它的機理,故曰:三人行,皆有我師也。。就連蘋果怎么賣也有很大的學問要讓我們去學習,其根本原因是我們求知的方向和方法不同,導致的層次不同。。如果小板凳坐膩了,也考慮改變一下方式,將視野拉長一些,想的更復雜一些,雖然要少活了幾年。。
換個角度,學網絡開發必須學TCP而不是背sock,搞移動應用必須學GSM而不是背AT指令。。這就是標準和協議,我的大腦里裝的僅僅是這些。。在掌握這些標準時,再去探索物理實現,廣習機理可以幫助改善開發出來的成品的質量。
共享原則
03 年底,我初到北京入行從未涉足的SP行業,經過半年的奮斗,我的系統運作的很成功,另一個老總跟我說,拷貝一份給我吧,省得我們再勞動。。當時我始終不理解也不贊成。。因為我顧及的是影響競爭力的關鍵技術(我們用最便宜的機器跟著最快最穩定的MMS聯盟平臺,及后來的利用移動信道SMS成本發MMS)。。直到去年底,我才真正理解這個共享意義,我提供了一些無損競爭力的核心代碼和機理給別人,人家借以加速了開發進度,縮減了開發成本并提早產生了利潤并占領市場。而我,也從他們那里得到了更多(比如 codeproject,sf.net),我后面的團隊進度比之前提升了整整一倍。。
軟件無用論
很多非專業朋友在報怨Linux 平臺的不是,Windows 的宏偉,亦或反之,實際上,完全忽略了,軟件與OS是二回事,好,不爭跨平臺,就算各自組合成個體,正好我在回復一個朋友的貼子說為什么要用linux要用ubuntu 呢,我的回貼是:
能創造利潤是我們出發點,不管是什么平臺,對我們而言是劃算的,那就可行的,不管是linux眾多的發行版還是Windows、MAC都只是我們賺錢的工具而已,哪個好用容易達到目的就用哪個,它們只是抽像一些的工具。。對某些人,它可能是VCD是視頻電話,但除此之外,啥也不見,當我按下power 鍵,一切都還是原來那樣,而此刻才是真實的。。
那么用linux 之所以選擇ubuntu,因為它是linux 里的一個最輕松快捷的系統,有很多的東西,不需要我們操心,一個快捷的apt-get 完全解決了我關鍵的時間問題,當我們用上gentoo 時,就會明白,我必須分秒必爭,就算坐在馬桶上也得事先安排一些代碼讓它去編譯。。。如果我們面臨的是一個集體,我們得有多少倍的時間花費在編譯以及解決依賴問題上面?(這也是一個比喻,盡管我用的就是gentoo)
某一天,我們的國民象美國象日本那樣的工作量和壓力,我們就完全理解這些道理,可惜的是我們的人民太閑了,閑到象彌衡一樣到處溜達。。。
上市的不少產品,盡管有不少是使用Visual Studio 開發的(多數團隊選擇使用它是因為開發人員的上陣成本較低且人才充足),然而這一切成績,與Microsoft 一點關系也沒有,沒有人認為網易和新浪的成功與Apache有任何關聯,它只是我們的一個工具,這也是為什么我們要付錢買它們的原因。。所以不要為它投入任何情緒,我們才是主要實體,想怎么用它就怎么用它。。
所謂的軟件性能、特色,更加無謂的系統優化,什么也不是。。那完全是因為我們實在太閑了。。成天瞅那些所謂的高人學會這一些,也只能證明你了解原作者的意圖或者對某作者的作品比較有共鳴了。。但是千萬不要忘了,軟件是人家寫的,語言是人家撰的,我們除了報怨什么也做不了,很多年前,那時bill 還剛從IBM出來沒多久,我習慣的是int xx mov ah 這樣的寫程序,現在卻連VC的 printf 語法都已經不記得了,記得只是C#的 Console.Wrtile,這是微軟安排的,不是你我能改變的,所以牢記它沒有任何價值,只需要了解就已經足夠(碰上豬頭面試官就只好投其所好了,韓信碰上項羽都只能站崗,何況是我們呢)。。
標準和協議才是屬于大家的。。就拿華為搞的無線運營商工程(盡管寫的非常野蠻和漏洞100 出),沒有強硬的國際標準協議的深度研習,靠1000個c高手也只是游通散兵,等同于1000個張飛,只能落草為寇,勇是必要的,但保命即可(形容程序只是次要的,因為有路由協議才有openwrt而不是因為有linux才有路由),關鍵的時候還可以共享前輩們的成果,這就是Linux 的開源、Microsoft 的 MSDN 的好處。。
總結:實踐是不難的,但要建立在了解機理的基礎上,OS和編程語言都是次要的,科學的組合利用實現業務目標才是首要的。堅持這個原則,有一天,會發現技術使用和應用的發展是有終點的(甚至在更高層次的見識下看到的都是冷菜熱炒)只有領域是無極限的,因為“創新”一個領域是計算機事業的利潤的基礎,它永遠不會停息。
之所以稱此為“繆”論,是因為它還需要咀嚼,有高見可以來反駁,我很高興有人來開導我。。
from:http://blog.163.com/scofield_cnh/blog/static/518753922007929104921607/