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