C语言是面向过程的,而C++是面向对象的
C和C++的区别:
C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。
C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”
而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,“C加上好的设计”也能写出非常好的东西。
如果想读完一篇文章就能快速的掌握编程技术的话,这可能会让你失望,但是可以获得学习的方法就在好不过了。
下面是分享自学C语言编程的经历和方法。
1.决定
2012年初,一个潮湿、肮脏、背靠竹林的大学宿舍里,其中一张书桌,放着一台与环境格调不一致的纯黑色的电脑。
逍遥放纵颓废的半年大学一,大二年级生活后,总觉得要学点什么技能,赚一点钱。
所以,做了一个现在看起来对人生产生重大影响的重要决定:
用10天!系统地学习一遍C语言编程!
如今看起来可笑的狂妄自大,总觉得在将来会跟别人活得不一样。
现在回忆起来,当初的哥纯粹只是一个电脑用得比别人好的学渣而已,也不知道当年进水的脑袋哪来的自信。
2.基础
那时候,哥还不太系统的了解编程,只知道计算机软件程序,是由编程语言开发的;有很多if(如果)、 for(循环)等关键字,用这些就能做出一个软件程序来。
3. 小目标
要决定自学编程,首先要定个小目标。
这非常重要!
很多计算机系毕业的本科大学生,你让他们去做一个简单毕业设计管理系统,他们都是做不出来的。
因此,选择一个小目标,自上而下的去思考和学习,就非常重要了......
而我当时的小目标,做小项目——比如“企业管理系统,贪吃蛇,俄罗斯方块,然后自己开发一个原创小游戏”。
这个目标,足够的小。
走进图书馆的计算机相关书架,你会发现很多计算机相关的书籍,都厚得吓人,其中相当大的篇幅,是前言、理论和案例,让初学者手足无措,无从入手。
上图,随便拍一张身边的3本书,分别是700页,500页,300页!太厚了,谁那么多时间看完!别说 10天给1年都不一定够。
所以,对于想要学习编程的初学者来说,最好的学习方式是:少看,立刻动手。
4. 时间分配
那10天的时间里,我是怎样把这个技能学习进行时间分配的?
第1天:目标项目所需资料;
第2 - 3天:基础理论视频;
第4 - 7天:跟着开发原有项目;
第8 - 10天:自己改进,加入自己的思想,开发新项目;
在学习的过程中里,遵循3个原则:
快速阅读基本概念,不浪费时间,进入训练
使用提供的训练代码,快速试验,不求重头开始写,只求稍作修改也能正确运行
快速通读整个教程,回去再理解一次
当我需要用到的时候,我知道去哪里找到她,这就够了。
这就像,当我们家里水龙头坏了,首先想到的,是找专业的师傅,而不是立刻学习修水龙头,是一个道理的。
代码是一个浩瀚的世界,死记硬背毫无意义,更重要的是理解编程思维,而不是具体怎么写代码;写代码的练习,不单是让技能熟练,而且培养的,是对编程思维的理解。
5. 一理通百理明
下一步是什么?
拿当年的例子来,在这10天后,笔者开始学习,并在不久之后,开始帮学校做网站,赚一点钱。
当时的我,目的就是通过编程,尽快拥有做项目的能力,在课余赚钱。
这是一种至上而下的学习过程,更快地学习,通过动手,迅速的入门一项技能。无数计算机系的学生,在毕业的那一刻一脸懵逼的踏入职场,而有的学长大学一年级开始就开发自己的项目了。(大四的时候还帮了几位计算机系的兄台做毕业设计。)
6总结
总结心法:
先定它一个小目标!
快速过一遍教程!
尝试一个小实战!
笔者觉得,因为缺少导师,在个人技术认知成长上,也走了很多弯路,浪费了不少时间。
互联网的发展,带来了信息的爆炸,大量的信息让我们的世界变平了,信息的不对称,正在逐步被减少。如何选择,就要看你自己了
编程不要觉得很难,虽说也有难度,但是学好了对以后的帮助是非常大的。
这些是C/C++能做的
服务器开发工程师、人工智能、云计算工程师、信息安全(黑客反黑客)、大数据 、数据平台、嵌入式工程师、流媒体服务器、数据控解、图像处理、音频视频开发工程师、游戏服务器、分布式系统、游戏辅助等