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