作者: 李建忠
接到一位前不久C#培訓學員的來信,這位學員雖然以前功底欠缺,但學習勁頭很足,在培訓中成長很快。即便基本吃透《.NET架構(修訂版)》還嫌不夠過癮,一心要成為高手中的高手。來信的目的是希望我來指點進階方向。
說實話,我一般不想在這些有關個人發展的大是大非的問題上給人指導,因為太多親身或眼見的經曆告訴我人生實在是很難捉摸,善良、智慧、勤奮這些我們珍視的品格常常會碰到可怕的現實。我感覺我鼓勵一個人的時候,我只關注到了“程式正義”,並沒有多大的信心向他保證“結果正義”。人生不像軟體,可以在好的設計下有一個好的產出。
但我又不想讓後學失望,也就冒昧地寫下了下面一點個人淺陋的心得,摘錄一段,接受各位朋友的檢閱:
……
不談具體領域(比如搜尋,視頻,網路等),單就程式設計語言這個垂直方向,我大體上對它有一個如下的層次劃分。
1. 基本運用C#文法,在各種工具和範例程式碼的支援下,完成一些基本程式任務
2. 熟練掌握物件導向與組件構造,知其然亦知其所以然,完成一般小規模資訊管理類軟體項目開發工作單位
3. 深入理解CLR核心機制,對各種類型與.NET平台機制的優缺點、適用場合、效率有清晰把握,能夠完成技術複雜度比較高的項目。
4. 能夠遊刃有餘把握松耦合原則,精準運用各種語言構造,架構大型軟體項目。
5. 能夠站在電腦抽象、系統和曆史發展的高度來理解和把握程式設計語言
我判斷你現在大致介於2-3之間的位置,當然在這些方向上的成長,有些部分是培訓能夠大幅度協助大家的,有些部分培訓只能起輔助作用,經驗和對技術的追求態度才更為重要
……
說實話,程式設計語言本來不該這麼重要,但是現在接近兩年的培訓經驗下來,接觸的培訓學員林林總總,從最底端幾乎沒有什麼編程經驗的,到高端的在企業擔任關鍵開發工作單位的。發現在中國,程式設計語言事實上是大多數開發人員的硬傷,大部分程式員介於1-2之間——原因就不多說了,中國大學的電腦教育只有在一個人徹底理解了電腦之後才會深刻體認到它是多麼的荒謬和失敗。
可能是受早年蔡元培、梅貽琦等先賢的熏陶激情而發,兩年前開始以做教育的心態趟上了軟體培訓這渾水,兩年下來著實辛苦,然看著現實在努力下一點點改變,固然不大,卻倍感欣慰。