简想碎念之C++程序员

C++、MFC学习之路

谭浩强的《C++程序设计》入门篇《C++ primer》讲述标准C++语法,是经典之作侯捷

《深入浅出MFC》,介绍VC++和MFC类库的
《VC++技术内幕第四版》不是第五版,也不是第六版,也是经典之作以上都是基础篇,可以做简单的东西

我的学习VC windows编程的基本有用的书
初级:首先学习C++语法,国内的谭浩强的《C++程序设计》或国外《c++ primer 》,两本比较,我推荐谭浩强的,讲的清楚明白,适合初学者,而《c++ primer》则是标准C++,涉及的内容更加全面。

进阶:其次学习面向对象的基本原理 熟悉再上面基础之上,进行简单的VisualC++编程,熟悉编程环境,
王育坚《VisualC++面向对象编程教程》清华大学出版社
孙鑫《VC++深入详解》

深入:接下来融汇贯通
MFC 侯捷的《深入浅出MFC》
《VC++技术内幕》MicroSoft Press
自己要想深入的话,再找一本WINDOWS API编程的书,不过我感觉没有必要,重要的还是MFC。

高级:更进一层学习windows编程,要深入理解操作系统
《Windows viaCC++》中文名《windows核心编程第五版》
COM编程、并行程序设计、ATL等  

  一路走来,磕磕碰碰,走到现在,历经了千辛万苦,可是路才刚刚开始走,未来还很长,我将会不断 的思考和探索。 我想,如果是打算走进 C++编程的同志们,请好好看完这篇文章,或许,对你的发展有所启发。 但是,不要企图在这里找到你自己发展的规划和指定好的发展航向和行程。看了这篇文章,能够收到 启发,受到鼓舞,也就是本文的一个成功的地方了。如果能够切实的给你指导发展方向,那更是荣幸 备至。但是,每个人的兴趣都不一样,所处的环境和条件也因人而异,所以,必定会有与你不完全符 合的发展方向指导。正如马克思一样,本身是好的,但是如果不中国化,就指导不好实际工作。所以, 务必自己化,根据文中的指导建议,结合自身的情况,总结一个可行适合自己发展的道路,然后坚持 走下去,只要坚持走到最后,你就会成功的。至于成功的定义,我也曾经思考过,再此就不讨论,每 个人心里都有自己的成功定义,希望每一位有志者能够达成心中的成功!
  
  C 语言和 C++语言的关系,请参考《C 语言和 C++语言的关系对比分析》。下面针对如何学习 C++ 做些分析和建议。C++的学习必须沉下心,这是我反复强调的,请务必记好,当你在犹豫时,请用这 句话提醒自己。其实做人和 C++一样,沉不下心是做不好的。 学习编程,与学历没有关系,与专业也没有关系,与性别年龄也没有关系,只要你想学,是真的 感兴趣,就能够学好。当然,为了避免少走弯路,请多借鉴他人的经验和建议,比如看到本文,也是 让自己少走弯路的一个明智的做法。还有,也有人问数学不好,编程能不能学好?这个问题其实和学 历是同一类问题。大家这么问,其实就是对于编程了解的不够。只要你是正常人,有着正常的思维逻 辑,都是可以学编程的。当然,如果是有兴趣,则会学得更好。如果再加上有人指导,那就更好了。 但是,事实并没有这么美好。但是,可以编程的最基本的条件,想必你一定满足吧,否则你也不 会在着了看这么长的文章了。同时,能够看到文章这里,说明你确实对编程感兴趣,那么我就要恭喜 你了,因为这几个条件你都满足了。我相信,你再沉下心,你一定能够成为优秀的程序员,同时,你 的生活也会变得更加精彩。 为什么说有正常的思维逻辑就能够学编程了呢?当然,编程的基本语法,只要你找到一本合适的 书,或者有一个好人指导你,这是不成问题的。当然,如果暂时都没有,网上这么多资源,这么多信 息,你绝对能够找到你要的信息。很幸运的是,你再看到本文时,你已经找到了一个合适的指导你的 有用的信息,或者是我这个指导你的人吧。我不敢谈什么编程的艺术,因为我自己还不够层次,但是 我有我自己的思考,我有我自己的想法。 所谓编程,就是编写一个按照我们思维运行的程序。所以其核心就是,我们的思维。编程的逻辑 就是我们的思维逻辑。编程不仅是要从生活中的思维中加以利用,再学习别人的经验时,你还会学到 更多的思维, 开阔自己的思维, 更好的指导自己的生活。 然后进一步优化自己的编程思维, 循环往复。如果对生活经验喜欢总结抽象的人,总是能够比较快的找到解决问题的方法,因为解决问题就是解决 生活中的问题,而这个编程逻辑也就来自于生活,所以,通过编程,有时会让我们更好的理解生活中 的一些,从而得到更多的乐趣。 当然,这只是一个最基本的条件,光有这些思维,并不能让自己真的就能成为合格的程序员。否 则,全世界的人都是程序员了。但是全世界的人都是有成为程序员的潜力,除非是植物人之类的,没 有正常思维的人。下一步,我们就是要学好编程的工具。这样我们才能真正成为程序员。这个工具就 是编程语言。至于什么语言,到了最后其实并不重要,但是为了长远的发展,我建议学习 C++,特别 适合在校学生。因为在校生可以利用充足的时间来学习基础。当然其他人只要花大量的时间来学,也 是一样的,只不过是在工作之余,更辛苦些,但是,有兴趣,其实也不是很辛苦的。真正的辛苦其实 是有一大堆疑问却无人可问的时候。如果怕辛苦,那就不要学编程了。 为什么我建议学习 C++语言呢?当然不是因为我的一味的喜好。对于编程语言本身,要在工作和 以后的发展中,你必须学会一些基本的东西。面向过程是所有语言的基础,面向对象是现在开发的必 备基础,而模板和泛型编程,又是很多语言直接或间接实现的高级工具,Java 也用容器,C++的 STL 中也有容器,其实本质就是一个,只不过,Java 可能对其进行了封装,提供了更多的特性而已,但 是思想和本质是一样的。同时,因为 Java 对其进行了封装,你要学会使用它是很容易的,但是要深 入了解就不那么容易了,因为封装了,就变得复杂了。而 C++则是直接的暴露,很原始的。只有学懂 了容器,才能真正用好,而 Java 即使不懂也能用的很好,这也是前面说的 Java 上手快深入难,而 C++则是上手难,深入简单。容器的本质都弄明白了,用法就再简单不过了,然后学其他深入的也变 得很简单了。要是再去用 Java 的容器,直接秒掉。也真是因为 C++提供了这么多的特性,作为长远 的发展,一次性把这些全部学会,融汇贯通,语言就不是阻碍你前行的绊脚石了。再学其他东西,几 乎就不费吹灰之力了。所以,对于语言,把 C++的每个部分学好,就不要在语言级别上纠缠,那就是 要发展到系统级别了。也只有在系统级别精通,那就是很优秀的程序员了。当然,在各个应用方面, 也是成为优秀的人才的,但是,系统必须很精通,否则,总会欠火候。不管什么时候,你编写的程序, 都是在系统运行的,你不可避免这个问题,当然在你脑子里运行的程序就不在此讨论范围了。 学习 C++,如果是初学者,不管是在校学生,还是毕业了的,还是低学历的,或者没有读过书的, 也不管是以前学过的,还是没学过的,或者以前学过 C 的,请都仔细学习一遍《C++ Primer Plus》 这本书,这本书是针对初学者的,讲解很详细很全面,一步一步的解释,程序实例并不做枯燥的数学 运算,而是生活的小例子,从而增加兴趣和降低难度。这本书七百多页,因为我 C 语言基础扎实,也 学过了 Java 的面向对象的思想(当初学 Java 就是去学面向对象的思想的),然后花了一个月,把这 本书仔细的学了,当然,面向过程部分就很多略过了,和 C 语言基本一样,只是参看不一样的地方。 书中每一个字都看的很仔细,包括书后的习题都基本练习了,结果也正确。不过后面的高级部分,因 为当时基础不够,所以就没有一个个做了,只是了解其思想。但是,如果没学过 C 语言,也不要紧, 那就直接学习这本书吧。这本书学完后,如果要进阶,可以学习《高效 C++》。然后你就知道语言部 分你还需要学什么了。现在不要问,学完后你自然知道还需要学什么。 当然,学的时候,动手编程是必不可少的,不动手是学不好的,书上的练习,尽量都做出来,不 要查答案,也不必对答案,你独立思考,解决问题了,符合要求,就是答案。编程中没有标准答案, 千万不要束缚自己的思维。实在做不出来可以参考答案和提示,分析好后再根据思想,重新做,而不 是默写代码,千万不要默写代码,而是根据答案中的思想去实现,这样才能真的学会动手编程,因为 这问题是有朋友问过我的,他说自己对着书写的出来,不看书就写不出来,问题就出在这里,我当时 没有仔细分析,因为没时间,希望他能看到这个吧。自己根据思想写出来了,你就真的掌握了思想的 精髓,也就可以灵活的变通了,而不是像培训班里让学员默写代码,那是一种很可笑的做法。但是, 要经常写代码,把这些思想用熟,让它成为自己的思想,这样就成功了。以后就不会没有思路了,因 为思想已经转化为自己的了。 到这里,语言方面的学习问题都解释清楚了。

  下一部分的发展方向就是操作系统。对于操作系统, 先不是编程的问题了,而是操作系统的原理问题。这是优秀的程序员必须掌握的知识。不要觉得这些 原理枯燥,也不要觉得那些思想过时了,书中的思想是没有过时的,虽然简单,但是现在的系统都是 基于这些基本思想的。如果这些基本思想都不了解,更别说去学习现在的系统了,那简直就是噩梦。 理解了书中的理论还不够,必须同时转变自己的思维,以操作系统的运行逻辑来看操作系统,而不是 依你的思维来看,因为它是已经存在的东西,即使不合理,它也存在,你必须接受,而不是你觉得应 该怎么样,除非你自己去写一个操作系统,来制定它的规则。至于学习的书,

  然后就是各种应用级别的,比如图形方面的,网络通信方面的,等等。但是系统是它们的基础, 所以必须先学好,才能更好的学习它们,当然这是建议,可以根据自己的情况做调整。 文中列出的书,除基础理论的书《计算机操作系统》外的其他编程书籍,在我们网站都可以直接免 费下载电子版本阅读。都是经典书籍,如果喜欢,可以支持作者,可以买正版书籍平时参考,而不是 记住书中的所有东西。 然后就是最现实的问题。学完了首先是要找工作。当然,我们学习的目的不是找工作,千万也不 要是找工作,如果只是为了找工作而学 C++,那我请你三思。不是找不到工作的问题,也不是工资的 问题,而是,C++是一门比较难的语言,不是一下子就能学好的,急于求成只会欲速则不达。但是, 愿意花时间学好,当然也是能够找到工资不错的工作的。C++方面的工作不是没有,是公司找不到水 平高的 C++的人才。半桶水是搞不好 C++的,所以要学好,工作是没问题的,不学好,也不要说 C++ 没前途,只能说自己学的还不够。至于工资的高低,是跟技术水平成正比的,技术含量高的,工资自 然高,需要投入的时间和精力就自然多,这个毋庸置疑。所以,不要怀疑 C++找不到工作的问题,只 要怀疑自己学好了没有的问题。同样也不要怀疑工资高低的问题,只要怀疑自己水平高低的问题。 当然,C++基础学好了,还是不够的。它只是一门语言而已,仅此而已,不要把它想得太神圣了。 真正能够发挥最好的作用的,还是要与平台结合, 还有学会其他的开发工具, 比如框架,类库什么的

  STL 就说这么多,然后就是具体的领域的学习,数 据库开发的学习,计算机图形(GDI)开发、网络开发(Socket 编程)等等,这些就根据公司需要做 什么就学什么。但是最好之前就有些基本的,而不是什么也不知道,这样对于自己在公司的发展是很 不利的,至于为什么,大家以后自然会明白。 这些的学习,首先要学习基本的理论,比如,网络开发,TCP/IP 协议都不知道,肯定不能开发一 个好的程序的,知道了基础理论后,再学习相应的编程开发知识,用到什么学什么。此部分说的各个 领域的可以先了解基础,然后再用到再学,但是,前面说的基础,必须是工作之前就要掌握,否则, 工作中就有得你受了。不要简单的听信别人说什么不要等什么都学好的再去工作,但是我要告诉你, 不要一点基础都没有就去工作,这是我的坎坷的经历告诉我的真理。请相信我这一句忠告吧。 至于 C++程序员更远点发展方向, 则不是初学者需要考虑的问题了。 先把这些该学的东西学到了, 以后自然也会明白自己想往哪方面走的。如果我有幸能够思考清楚这些问题,我会再给大家分享我的 经验,那时不是指导,只是分享心得了,因为大家那时也都是高手了,大家彼此彼此。我会一直陪着 大家,坚持走到最后,我希望,大家都有一个好的发展方向和成果。 最后,务必提醒一句,学习 C++是长期的,必须沉下心,不浮躁,急功近利是学不好的,浮躁了 请停下脚步,回归本真,然后重整灵魂,继续前进。祝愿大家每一个都会成为大神,也使国家贡献自 己的一份强有力的贡献。 很佩服你能坚持看完, 我想你也会有所收获, 我相信你也会成功。 如果还有疑问, 请直接评论中提出, 有不正确的或者不准确的地方,请指正,虚心求教。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值