【文章福利】: 小编推荐一个C语言/C++交流群:836880131!整理了一些个人觉得比较好的学习书籍、视频资料共享在群文件里面,有需要的可以自行添加~
C++ 是一门编程语言,请注意它仅仅是一门编程语言。这句话的意思就是一旦有人在做语言好坏之争的时候,一笑而过即可。特定的语言只是用来在特定的领域解决特定的问题,仅此而已,尤其是现在众多语言纷飞的年代,这句话的正确性不容置疑。
在编程领域里,每个人都会有他/她的入门语言,各持己见。我个人认为 C 语言是一个很不错的选择,语法简单,深度可深可浅,高级语言的鼻祖。很重要的一点是现今的各种编程语言,或多或少都是 C 语言的衍生品,或者是衍生品的衍生品。语言相通,只要 C 语言学好了,上手其他语言问题不大。C 语言的灵魂在于指针,指针可以帮助你更好的理解内存,理解操作系统的工作机理。
C++ 是一门争议性语言,喜欢研究的人很多,吐槽的(包括一些大神级的人物)的人也很多。在 C/C++ 的时代(C/C++刚出道的时候),语言的可选性较少,所以 C++ 干了许多事情,现在时代不一样了,正如我前面所谓语言纷飞,针对性语言众多,程序员的选择性也就多了(有很多的优秀的语言可以去学,C#,java,php,python,ruby……),所以 C++ 不再是必须品。
在你开始学习之前,请慎重考虑一下,为什么要学?如果考虑好了,请继续阅读。
选择一本好书
如果你发现以“数字”命名的书籍,请扔掉!(21天学通C++?)
如果你发现以“通”字样命名的书籍,请扔掉!(零起点学通C++?C++从入门到精通?)
如果你发现把“Visual” 和 “C++” 联系起来的 C++ 教程,请扔掉!(太多了,不举例了)
如果你发现“void main”作为实例的书籍,请扔掉!
如果你发现“”作为实例的书籍,请扔掉!
……
有几本书可以供你选择:《C++ Primer Plus》,《C++ Primer》,《C++程序设计语言》
小编入门用的是《C++入门经典》,继而读的是《C++ Primer》。其实好书和差书很容易区分,厚度和价位是一个很关键的点,通常薄薄的,又便宜,书名却非常霸气的告诉你如何精通,那你果断扔了,想都不要想。
选择一个好的IDE
请注意我强调的是IDE(集成开发环境),而不是套餐(GCC+VIM/EMACS+GDB+[linux]),对于一个初学者来说,一定要抓住重点。
初学者一定要相信这一点,网上太多人吹嘘学 C++ 不应该用 IDE ,就应该直接 文本编辑器+GCC 用 GDB 调试,进而言语鄙视 IDE 。我不知道你抱着什么心态,我只想说你入门是那样入门的吗?当时有没有 IDE ?你了解 IDE 吗?你公司用什么开发?
对于一个入门新手,一个人性化的调试环境是必须的。当然,作为一个 C++ 程序员的话,GCC/GDB 是必须要去了解的,linux 也是必须要会的。
参考标准:熟练掌握 C++ 语法结构,了解 C++ 主要模块,技术难点。大部分书上可以找到的知识点。
学习 C++ 要不要学习 C ?
作为这样的一篇文章,这个探讨几乎是必须要做的。
我的观点很明确,要学!
因为我先学 C 语言,后学的 C++ 的,而且学习使用过程中无数次穿插的相互学习。我的程序中从来没有刻意的区分这是 C 还是 C++,我把握的标准是怎么样方便怎么来。
就好像文件读写我从来都不用 C++ 的文件流,因为我习惯了 C 语言的 fread、fwrite、 fopen、 fseek、 ftell 等等。
我是站在语言的语法和库的角度来说“要学”的。如果你要学面向对象的话,那就没必要学 C 了,好像也没有学 C++ 的必要了,你可以选择一个纯面向对象的语言去学面向对象岂不更好。
总结,以我的个人经历来说,学 C++ 可以先学习 C 语言(观点已明确,探讨结束!)。
要了解哪些东西呢?总结是两点:语法和库。所有的语言几乎都是一样的。
语法熟练的是必须的;熟练使用 STL 编程,面向对象思想不是一天两天就可以有的,需要不断的历练和实战才能培养出来的;面向对象在C++中的实现方式一定要熟(继承,派生,虚函数等);模板的实参演绎要搞清楚。
怎么学习C语言
希望我整理的 C语言的学习路线,能对你有帮助!
数据类型、变量、内存布局、指针基础;
字符串、一维数组、二维数组;
一级指针,二级指针,三级指针,N级指针概念,指针数组和数组指针;
结构体、文件的使用;
动态库的封装和设计;
函数指针回调函数。
配套书籍:
如何实现入门?
参考标准:内部机理,奇淫技巧
如何实现进阶?
最后给大家几个忠告来结束本文吧:
多交流:不管你的技术多么硬,你都不可能一个人做完所有的事情,你要学会与别人合作,与别人交流。交流过程中,要注意交流技巧。学会尊重别人,但要不亢不卑。
多动手:熟能生巧,这是万能之理。我们干的是技术活,最能证明自己能力的就是干!不是扯淡!
多思考:不要做编码机器。
多总结:相同的问题不可能只出现一次,尤其是在我们这个行业。总结是为了你在以后更快的解决类似的问题,提高工作效率。
能说的还有很多,让博客待续……
对于自己找不到视频、书籍资源的读者,可以加小编的**C语言/C++交流群:836880131!**整理了一些个人觉得比较好的学习书籍、视频资料共享在群文件里面,需要的可以自行添加下载即可~