这篇文章实际上是我自己入门过程的总结,一个尽量少废话的C++入门指南。总结完忽然发现像个读书清单😄。
具体总结前,想先回答一个问题——要不要先学C,再学C++?
我作为小白时疑惑过这个问题,在此给后来的小白和当年的自己一个答案。
个人看法是,单就学习C++而言,直接学习C++就可以了,不用先学C。在知乎看到轮子哥在微软维护STL的Stephen Thomas Lavavej都说他当年学C++之前学C语言浪费了大量的时间,早知道就直接从C++开始。
很多老的项目是C语言写的,之后的编程生涯多半还是绕不开学C语言,不过那时候你已有C++功底,构不成啥大问题。
因此,这篇文章基本不提C的学习,直接硬刚C++。不赞同的看客勿喷,右上叉叉就是了。赞同的同学可以往下看。
入门
《Accelerated C++》,《Essential C++》二选一精读。《A Tour of C++》选读。
- 《Accelerated C++》很适合新手,因为她只有短短不到300页,在普遍砖一样的入门书籍里面是一股清流。容易通读完,减少挫败感。就这样的篇幅,还能涉及一些标准库的使用,真的很适合入门。
- 《Essential C++》比较适合有其他编程经验的中手迅速学习C++。内容会比《Accelerated C++》深一些。
- 《A Tour of C++》,C++ creator扛鼎之作,适合刚学完、还有学完很长时间以后看,快速复习 C++知识。
我当初主看的是 Accelerated C++,在上下班通勤等零碎时间就在手机上看辅助部分的资料,看看跟读书的理解一不一样。甚至有时能意识到资料中某些概念的表述不太准确,此刻会发觉自己真的理解了。
这种交叉印证的阅读法,有人问我有什么必要?(看了几个内容可能重叠的资料)。好处有两个,一是能使自己入门时对基础理解的自信更足些;二是,我没见过哪本书或哪篇文章,可以从头到尾完全清晰、毫无歧义的。交叉着看可以让很多理解尽早明晰无误。
完成这一步后,就可以开始上GitHub看点别人的代码,尝试写点代码。
入门这一步是最关键的,你初步了解了各种基本概念,并