学C语言不知道从哪儿下手?学习框架都帮你列好了!
在未来计算机专业讲又要迎来一批新生小鲜肉!C语言入门到入土,从长发飘飘到秃顶的老铁也越来越多,其中,想自学成才的也占了不少数;想笨鸟先飞的也占有不少数。
没有基础的人也可以直接学习,速度会慢一点
C语言上手可能不是很容易,首先你的花费一周时间掌握最基本的内容。(PS:没有基础的人也可以直接学习,速度会慢一点)
- 常用的基本数据类型(int,float,double,char)的使用,必然包含常用的输入和输出函数。
- 程序的三大结构学习:顺序结构,选择结构,循环结构。
- 模块化程序设计的函数了解下
你再花2周学习些:
- 指针
- 结构体
- 文件
此时,有些人就在简历中得意的自称"会"C语言了。
但是学到如此程度,在实际编程中会经常遇到挫折,主要源自理解不够深入,仅仅体验了一下C语言语法而已。
随意列举一些新手普遍存在的问题:
- 不了解C语言模块化设计,变量名, 指针概念含混。
- 更换编译器,程序出现怪异的结果。
- 怎样定义和声明C语言全局变量和函数最好?
- 在C语言中,一个结构不能包含指向自己的指针吗?
- 什么是C语言最好的代码布局风格?
- 为什么不能向接受const char **的函数传入char **?
- 用缩写“if(p)”检查空指针是否可靠?
- char *指针指向一些int变量,如何跳过?
- 怎样建立和理解非常复杂的声明?
拥有某项技能的程序员的价值,可以用学习技能所需的成本来衡量。你用2周学习达到的这种程度,对于企业就是没有价值的,因为老板可以让一个公司里任意其他语言的程序员经过2-3周的学习就能达到你现在的程度。
C语言的 简洁紧凑、灵活方便。快速开发对项目有价值,但这不是你的价值,是C语言的价值。所以提高自身价值,也就是不让别人轻易追上你。以极低的成本替代你。
你只能快跑,进一步学习,C语言语言层面还需要学习下面一些内容:
- 1.C语言运行机制,编译过程。
- 2.C语言模块化思想。
- 3.深入理解C语言面向过程的设计思路。
- 4.C语言编程思维。
- 5.C语言文件同步操作
上述都是语言层面的,属于内功。实战中当然也需要一些更为具体的外功,训练外功可以从熟悉C语言标准库开始,这些模块能进入标准库说明他们足够好并且在实际项目中足够常用,列举一些极为常用的:
- 1.正则表达式
- 2.Socket网络编程
- 3.读取PE文件操作
- 4.进程内存查询与修改
- 5.常用的数据结构与算法
无论练习内功或外功,结合实战都是最好的训练方式和检验手段,可以根据个人情况以及喜好选择,如:
- 网络编程借用第三方网站为跳板做实时信息查询.(例如身份证查询)
- 使用第三方库开发小游戏案列,例如推箱子,扫雷,连连看,消消乐
- 编写小应用,个人词典啊
- 使用C语言做算法题,ACM,还有各种地方的什么杯(飞机杯,罩杯)
- 使用C语言做数学建模或者数学计算
- 使用第三方库做终端模式的播放器
- OpenGL做图形处理
个人建议选择小项目进行实训,有些新手上来就想定一个大目标,做的时候很挫折,往往半途而废。把小东西先实现,然后优化。接下来添加新功能,慢慢迭代把小东西做大。这样在做的时候,每实现一个小功能你都会有成就感,激励继续前进。
可能经过比较漫长的一段时间,你成为了一个熟练的C语言小瘪三,还有些高级话题可以继续学习:
- windows编程
- Linux编程
- Qt框架编程
这些高级话题在开发中经常使用, 它们可以帮你更便利实现功能。
通常自称一个月光速学了会C语言的人基本都不是天才,只是浮躁,目标定的比较低而已,认知局限而已。不要太过急功近利,慢慢玩,精进。
当然啦,自学C语言想拔高精进大多都是困难的
- 没有良师讲解,有些知识点和技术没法消化
- 自身理解力不够,稍微高深一些的就看不懂了
- 还有的……
- 时间不够,自制力也不够
尾言
如果你基础比较差,不妨关注视频教程专栏教程《C语言51课视频教程合集片》: