半年前的軟件工程課程設計和SysClock是我C++的上一個句號。在學校的日子移情別戀于.net平臺,本來想拓寬路子方便找工作,后來找到的工作就是做WebApplication的(.net),其實關注C#和.net已經有半年了,因此上手也還好,憑借著舊有的知識繼續闖蕩,不想爭論C++還是C#好,但是因為很久沒有在C++上有動作了,因此也就生疏了,而且從來也沒有系統學習過C++,因此也就離他更遠了。
畢業設計應該是大學階段做過的最完整的software了,因為找到的工作是.net的,也就將C#熟能生巧到底了。C++的路子似乎已經被遺忘,過去還皮厚地在簡歷上寫熟悉,現在也許只能寫了解了。好在畢業設計我的重點不在于WEB本身,也不在于C#語法,而是強調設計思路,因此所有的重點從OOP開始,間或Design Pattern等知識,C#只是一個表現形式罷了。說老實話,.net下OOP確實比C++優美,更多地關注于設計細節讓我對.net更有好感,微軟確實能將簡單融入開發,讓復雜的事情簡單化確實讓人有更好的“用戶體驗”。
前陣子開始猶豫是不是要在C++方面繼續挖掘?到了公司后想過離開,但是荒廢了很多月的C++讓我不爭氣,去了一家大公司面試后發現C++的基本功降低太多,題目簡單到大二的時候都可以得心應手的地步,但是對一些底層的細節已經忘記了。不想和人爭論自己曾經有多么優秀,只怪自己基本功不扎實。事情已經過去了四五個月,也沒想太多,現在的工作雖然不是很有挑戰性,但是薪酬也能夠對得起良心,主要是它還很安逸,但是安逸給我的感覺總是有更多的不安,我習慣于充實的大腦才能夠有說話的底氣,但是我現在感覺有些力不從心了,還是想回到C++陣營上來,想過一段時間關于未來前景的問題,以前關注于社會變化,現在關心的是供需變化,.net搞壟斷估計是遲早的事,但是做.net的人似乎也多的跟米一樣,想過跑到JAVA陣營去混一片天地,但是已經逃離了語言主導的我已經不關心語言的選擇了,我會投入更多的時間和精力在設計模式、系統架構、重構等一些所謂的方法論上,只有這樣寫出來的東西才能美,才會有靈魂,關注于語言層面畢竟還是過于低級了。但是語言是問題的表達形式,沒有語言,那些方法論永遠都是空想主意。C#確實能夠滿足我在設計方面的需求,這一點不容否認,而且工作需要,我不會放棄它,而且我會繼續在上面不斷表現我設計上的學習研究成果,我想這些基于經驗的東西比基于技術的東西更加富有價值。但是整體方向的選擇還是有一定必要的,前些日子想了一下,Windows的開發人太多了,競爭壓力遠比技術壓力大,想過換平臺,也許只有Unix有更好的企業市場,似乎能夠瞄準電信行業而去,C++必然是這個方面的必需品。考慮過未來的中國市場和國際行情,嵌入式開發(更多的重點被我放在了手機平臺的開發上),一切都才剛剛起步,至少國內是個步履蹣跚的地步,這個市場會需要很多的人才,C++應該仍然有強大的市場,雖然.net已經深入手機平臺,所謂的跨平臺還是基于平臺的應用軟件,雖然這方面的需求在未來一定很大,但是入門門檻并不高,Winform的朋友很容易就轉過去,.net的跨平臺性讓大家都不失業,但是大家都沒有高薪了,現在.net的工作應該也是一個轉型的資本,我希望在底層方面有所拓展,因此C++仍然是必須。
C++與我的過去。過去還是喜歡所見即所得吧,畢竟拿底層入門有點浪費體力不討好。學了N年的C語言,仍然只能用于大學的課程,C語言的知識其實很重要,但是現在卻忘記地差不多了,很想把手頭的那本C語言看一遍,當年期末復習通讀也就兩天不到,但是總是各種各樣的原因阻礙了我的學習,或許我真的打心眼里不想看它吧。之后學習了VC++也是以MFC為核心進行展開,我用MFC又是喜歡于做一些應用軟件,比如本文第一句話提到的兩個家伙。其實現在要做應用軟件,用.net一定更好,因為確實開發起來很方便,性能上并沒有必要追求C++,不過說起來慚愧,我還是希望用我在Web上的工作經驗去主導我在Winform的開發,畢竟Web比Winform更繁瑣,業務邏輯和更底層我已經習慣于用類庫來描述,因此Web和Win對我的差異就更小,我可以直接放棄表現層而仍然能夠有所作為,至少我認為可以這么做。MFC是C++的經典,我想挖掘它更底層的東西,畢竟C++所能做的東西.net不一定能做。
昨天猶豫了很久還是決定從C++的語法開始系統的學習,用C++來表現設計我已經力不從心,我得讓自己先有表達能力,然后才能抉擇更多,以后是針對UNIX還是Embeded C++就得另作打算了,但是所有的核心不會變,更多地體現設計的理念,雖然將應用軟件思想來對付底層開發或許不太可取,我想面向底層總不能沒有設計吧?這些細節再做討論。以后的日子無論C#還是C++一個都不能少一個也不會少,時間要充分地利用起來,付出才會有收獲,我不想做只說不做的人。
昨晚到當當訂購了兩本書,一本是C++ Primer中文版(第4版)、重構-改善既有代碼的設計,這兩本書也是我現在最想品味的,曾幾何時發現自己不是不愛看書,而是沒有找到喜歡看的書,第一本將為我復習補充我曾經非系統地學習C++的知識,后一本將繼續為我的設計創造新的動力。加油,不放棄,永不言敗!