? ? 相信有非常大一部分学计算机的童鞋都是靠自学,即使本身是计算机专业的同学,也会认为只通过课堂上的学习是远远不够的,并且在上课时所用到的教材也不够好。然而自学的时候有个非常大的问题就是找不到合适的方向和学习路线,我在刚開始的时候也吃过这种亏,总是纠结于语言的学习。认为编程就是学非常多语言。然而单纯学习语言并不能解决这个问题。我们须要学习的是一个完整的体系,而编程语言只只是是当中一个解决这个问题的工具而已。
后来我通过不断摸索。积累学习经验,总结出了一套个人感觉非常不错的学习路线。
? ? 首先要选则一门重点的学习语言,我在学习编程期间。接触过C,C++。JAVA,Python。也自己做过小的android应用开发。终于还是选择了以C++为重点学习方向,由于我认为这门语言太强大并且足够优雅。以下就说说须要阅读并理解的经典书籍,尽管有非常多我也没有读完。可是或多或少读了一部分,认为确实经典,如今也仍在学习中。
? ? 首先必备的入门书籍就是这本《C程序设计语言》,这本书也是公认的C语言圣经。大多数人都是以谭浩强那么书入门,我也看过谭浩强版的那本书,尽管讲的非常清晰易懂,可是感觉并不能算上经典,书中错误的地方也非常多。课后题出的也非常水。所以还是向推荐这本机械工业出版社出版的《C程序设计语言》。
? ??
? ? 接下来推荐的这本书《C陷阱与缺陷》,尽管被誉为经典。可是我自己认为读完后收获不能算太大,所以说不是必需刻意去学习,只是有多的时间也能够阅读一下,书内容非常少,两到三天就能看完整本书。
? ??
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />
? ? 既然是C++的学习路线,那么《C++ Primer》这本书肯定是必学不可的,这个就不用不说了。只是书的内容相当多,印象中有800多页,我大概花了一个月左右时间才学完。
? ??
? ??
? ? 学习玩了C++的基础知识,当然就须要进行延伸了。接下来就须要看这本书《Effective C++》,非常经典,相信学习C++的人差点儿都是人手一本,书中讲了非常多C++使用条款,教你怎样更高效地使用C++。
? ??
? ? C++的C语言最大的不同当然就是C++支持面向对象的设计方法,所以,学习C++面向对象的语法和使用当然就是必须的,这里推荐经典《深度探索C++对象模型》,里面讲了虚函数的实现原理,函数重载实现原理等非常多重要知识。
? ??
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />
? ? 个人认为STL是C++的精髓。因此,学习STL是必须的。
推荐经典书籍《STL源代码剖析》。这本书主要学习前面部分内存的分配。容器的实现原理。
? ??
? ? 学完了这些之后就对C++的基础掌握的非常不错了。接下来就须要学习一下C++体系结构里面另外一些重要的基础知识了。比方操作系统。
这里推荐一本最经典的操作系统书籍《深入理解计算机系统》。
这本书我认为适合重复研读多变。由于非常难做到看一次就掌握书里的全部内容。
? ??
? ? 操作系统是必须掌握的基础知识。当然另一项必须掌握的基础知识。那就是计算机网络了。
推荐这本书《TCP/IP 具体解释 卷1:协议》。
? ??
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />
? ? 当然,我们还须要了解一些经常使用的数据结构和算法。推荐《数据结构与算法分析 C语言描写叙述》,事实上说实话用这本书入门难度有点偏大,须要耐心学习。
? ??
? ? 到这里。我们整个基础体系就学习得几乎相同了。可是C++的应用方向大多都是后台或者server开发,所以我认为必须要学会Linux系统。甚至压根不要在Windows环境下编程。多使用Linux系统。
学习Linux首先须要学习基本操作。入门首选书籍《鸟哥的linux私房菜》。
? ??
? ? 掌握了基本操作。我们就要学习在Linux环境下进行编程,推荐经典《Unix环境高级编程》。《Unix网络编程》两套系列书籍,加起来总共三本。
? ??
? ??
? ? 以上就是我总结出来的C++学习路线。个人感觉还是非常不错的。应该是适合大多数想要学好C++的人,一起学习一起进步。