C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。
C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”。
C与C++的最大区别:在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”,而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,“C加上好的设计”也能写出非常好的东西。
接下来会陆续介绍各自编程语言和各个领域的学习建议,本文先讲C语言。
1、C语言适合当第一门编程语言学习
①、C语言语法相对简单,但又比较完整和严谨,包含该有的各种元素。学完C语言语法,要学习其它编程语言就很容易了。
②、C语言接近底层,可以了解内存和计算机的基本原理。
③、许多基础课程比如算法与数据结构教材都是以C语言为例子的,特别是中国版的书籍。
如果你是大一刚开始学习编程,建议选择C语言做入门。
2、C语言学习的步骤
学习语法和基础算法 ---> 了解C语言应用领域 ---> 确定是否从事C语言相关工作 ---> 深入学习基础课程 ---> 学习领域相关的课程
3、C语言语法学习
①、书籍推荐:
推荐《C程序设计语言》和 习题解答
②、学习建议
视频结合书籍,把书籍上的代码都一个个自己敲出来运行,做到每段小程序都熟悉记忆。
不要一直在那边背语法,多写代码,多演化代码,验证语法。
建议以Linux为学习环境,掌握Linux下的相关工具,比如GCC
③、验证结果
《C程序设计语言:习题解答》里面的题目不用看书可以自己敲打实现出来就差不多了。
可以用计算机等级考试二级(C语言)的历年试题验证学习结果。也可以自己报名考试看看,以95分做目标。
④、进阶学习
可以先跳过这个,看看是否从事C语言相关工作,如果是的话,再来看这个。
语法进阶书籍推荐:
逻辑思维进阶
南开大学C语言100题,自己实现代码并验证。继续进阶,可以刷OJ
4、C语言应用领域
是不是有些同学学完C语法后都不知道做什么项目。因为单纯学会C语法开发不了什么项目,你需要掌握C语言应用领域,然后学习周边相关知识。
相对于PHP、Java,C语言的开发效率较低,没有框架甚至没有库。数据结构要自己写,对操作系统底层要很熟悉,代码很容易出现内存相关的错误。
C语言主要用于驱动开发、操作系统、内核开发,嵌入式(单片机)、交换机、路由器等网络设备的开发。
如果你想要会用C语言开发项目,就需要掌握相关领域知识。
5、方向选择
学完语法和了解C语言应用领域后,就要面临着选择。三个方向:①、选择从事C语言相关的工作;②、选择继续学习C++,C++主要应用领域游戏服务端开发、图形图像、C/S客户端界面开发、中间件;③、选择其它方向的学习,比如Java
6、深入学习基础课程
选择从事C/C++语言相关的工作,就需要深入学习基础课程。因为从事C++相关工作,往往对性能有要求,需要理解操作系统和计算机组成原理。
以下课程在从事C++相关工作是应该要掌握的:
《算法与数据结构》
《计算机组织与体系结构》
《编译原理》
《操作系统原理》
有能力的可以学习《Linux内核结构》
具体每个基础课程的学习就不展开了,以后谈。学习书籍建议,可以参考清华北大计算机系相关课程指定的教程,返回上一级,搜索数字 0001 查看北京大学和清华大学 计算机专业本科完整课程表。
7、学习领域相关的课程
这个就比较广泛,根据希望从事的领域有选择性的学习。比如,你想从事嵌入式开发,那你就要学习 嵌入式操作系统等。
8、项目实践
学完理论,找项目尝试练习。
哪里找项目呢?
①、找培训教程,别人培训班的实践题目或者看网上培训教程的实践题目
②、找高年级或老师帮忙布置实践题目
③、通过Google、GitHub等程序猿社区,去找找实践题目
找到题目后,看看自己一个人或者组织几个人能不能搞定。如果搞不定,再根据所缺的知识去补充知识。
请养成良好的阅读习惯,看完如果觉得喜欢的话请关注转发评论收藏一下 感谢!
————————
对于很多初学者来说,有一群一起学习一起解答的小伙伴很重要!如果你想更好地提升你的编程核心能力(内功)不妨从现在开始!
编程学习书籍分享:
编程学习视频分享:
整理分享(多年学习的源码、项目实战视频、项目笔记,基础入门教程)
欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!
对于C/C++感兴趣可以关注小编在后台私信我:【编程交流】一起来学习哦!可以领取一些C/C++的项目学习视频资料哦!已经设置好了关键词自动回复,自动领取就好了!