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