毫无疑问,学习C++是一件痛苦的事情。
我大概十年前接触C++。那是在学校里,准备考研究生,某学校要求考C++。我就开始一点一点学习,学习的过程还是比较舒服的。不得不说,就古典C++的理论,钱老讲的还是很好的。但是主要是能完成“Hello, World!”的几个版本而已,而这对于应考来说是足够啦。虽然我最后未能直接读研,但自觉C++理论我还是学得不错的。
05年毕业遇到了两个尴尬事。第一件事是我去一家公司面试开发,要求写一个1+1=2的有界面的程序,结果被鄙视啦。俺只学过C语言,没有开发过任何有界面的程序(Matlab不算的话),因为俺是数学系毕业的。第二件事是,我终于找到工作,但面临相同的问题。好的一点是,领导给我两个月学习。我经过两个月的艰苦学习,终于,败下阵来。搞了半天连MFC的main函数在哪里都不知道。总是觉得好深好深,像一个无底洞一样。找不到开始,也找不到结束,跟我理解的C语言差距太大啦。最终被领导拐骗到C#上啦。C#实在是太可爱啦,就像是Q版的C一样,一切井井有条,简简单单。
十年来,我对C++怀着极其复杂的心情。讨厌它,因为我在它面前败下阵来;恐惧它,因为它深不见底;向往它,因为它是一座高峰!
十年后的今天,因为工作需要,我*必须使用C++。我再次向C++发起了进攻!主要有四个步骤:买书、啃书、加入QQ讨论群、修改C++产品代码。
买书。买什么书是个很讲究的是,实际上这也使决定成败的一步。我的感触是——“没有学会一门技术,要么这门技术还不迫切需要,要么没有找到一本合适的书”。在迫切需要这项技术的前提下,我急需找到一本好书。翻遍各种博客论坛,我最终决定买《Visual C++ 2012 入门经典》这本书。事实证明,我得决定是明智的,除了这本书太厚以外。呵呵。
啃书。这是必经的阶段。我看书一向很慢,我一步一步,如履薄冰。一页一页看,生怕漏了啥东西,后头看不懂。关于厚书,我有一句名言“书非拆不能读也”——拆一章看,看完再拆一章下来。这样容易打消看书的恐惧感。不过还保存好看完的那些章,最后把这些再订起来。这方面我的感谢我的老婆,她最后总是把我的书订好,订得跟线装书似的,比原装的还漂亮。言归正传,看书不能光看,还要练习,就是把书上的例子一个字母一个字母的录入IDE中,编译,运行。感受这些理论和代码。这里还有一句名言——“Pratice makes perfect”,与君共勉。
加入QQ讨论群,群里不一定要有大牛,只要有热心的同行者、过来人就行。我特别感谢“C++/C#技术交流”群里的马东同学,他屡屡三更半夜回到我的问题,帮我答疑解惑。这极大地鼓舞了我的信心,让我没有像八年前那样郁闷、溃逃。
修改C++产品代码。写在最后,但这不是最后做的事情。上班就要工作,工作就要写代码。虽然还不是太熟悉,但是必须得写啦,哪怕是一天写几行。然后不断学习,不断重构,直到必须结束。
结语
好的开始是成功的一半,借发哥一句广告词“我才刚刚上路呀”!