半年前的软件工程课程设计和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++的知识,后一本将继续为我的设计创造新的动力。加油,不放弃,永不言败!