想学C语言我们首先的了解C语言是什么?它是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译以及处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持就可以运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译
C语言是计算机体系结构的基础,向下可以操作硬件(包括ARM、DSP、单片机等各种微处理器),还可以写驱动、写OS、写编译器。向上可以进一步的学习C++、JAVA等面向对象语言,再学习一些图形用户界面框架,比如Qt、MFC,就可做出类似于计算器、QQ等Window桌面应用,再比如Android,就可以做出微信等Android应用,再比如Unity3D,就可以做出类似王者荣耀、和平精英等手游。这样来看是不是觉得成员也太神奇了!
如果你也对C语言感兴趣,那么可以领取下方的学习教程资料,资料中包含有学习路线图、学习笔记和视频教程,内容清晰详细易理解,非常适合新手小白入门学习,有需要的同学下方插件就能直接免费领取!
C/C++编程学习基地
那我们就脚踏实地,一步一步的走下去吧。先从如何学习C语言开始,学会了C语言,就进入了计算机领域的大门,对于以后学习C++、Java等面向对象语言都大有益处。
今天给大家分享一条系统高效的C语言学习路线,也算是给这段时间C语言系列的一个总结,大家按图索骥,都能够飞快的掌握C语言。
首先我想说下,C语言是非常重要的编程语言。为什么这么说呢?原因在于C语言是连接了硬件和软件的桥梁。如果你学习Java,会发现自己是在Java虚拟机上,你要是用硬件功能,除了依赖系统API之外,就没招了。
这也是为什么会有人说:你不会C语言,基本上就如同无根之草一样,因为没根基,上层建筑就是摇摇欲坠。
而在C语言这里,最为重要的一个环节是--操作系统,这个庞然大物,直接支撑了各种开发需求,调度,快速的实现功能。而C语言的学习,基本上保持一条路线,就是没问题的:
1、基础语法
2、练习,做笔记
3、数据结构与算法
4、项目,模仿
5、操作系统
6、反编译逆向
7、设计原理
没错,就是这7项阶段,但是也别小看了这些,其实里面包含的知识点对于零基础来说是比较复杂的
对于这条学习路线,那么初学者具体该如何学习呢?
1、基础语法
- 学习简单的语法,if switch while ,各种变量声明,函数定义
- 简单数据结构,链表指针操作
- 内存管理,申请释放
- 结构体使用,typedef ,#define 使用
- 常见的库,函数
- 文件操作
- 字符串操作
- 作用域
- 指针,回调函数
还有学C语言一定要记住一点:
语法永远只是基础,不是能力。如果你听见谁说它学会了哪个语法,却不会做项目,那么基本上等于白瞎,没啥用,只是刚入门而已。程序员之间的薪资差距,主要来自于一些抽象的能力,比如创造力,沟通力,解决问题的能力。
2、练习,做笔记
练习,第一个是所谓的课后题,多练习,把语法熟练的掌握,再一个就是去做笔记,把学到的知识进行归类,总结。
很多人会有一个困惑,自己学了就忘了,等于没学。这个解决方式就是做笔记,加深印象。只看不做,基本白瞎的。一定要去动手,去调试,用VS开发或者codeblocks,都是没问题的,如果你喜欢Linux,可以装个虚拟机,或者cygwin去编程。
推荐一些经典项目练习题:
文件中包含有视频讲解,也都已经打包好了,有需要的小伙伴都可以在下方找我
C/C++编程学习基地https://jq.qq/?_wv=1027&k=pE5HRGX4
3、数据结构与算法
当你学习完语法,或者是在学习的过程中,会遇到比较困惑的内容,就是不知道如何描述物体,如何设计,这个原因是语法掌握了之后,这些东西都是零散的,不成系统,你不会用。
当你用的时候,绕不过去的一个知识,就是数据结构与算法,因为这两个合起来就是写程序了。
一个物体描述出来,就是一个结构体,或者联合体,然后通过一些函数调用,操作,影响数据,最终体通过界面显示,或者终端输出,完成整个过程。
于是C语言学习语法完后,就是学数据结构与算法,一定要记得这个学完,才是入门了,才能真正的做项目了。那么这项阶段主要学习的知识就有以下这些:
- 线性表
- 栈
- 队列
- 串
- 数组
- 广义表
- 树和二叉树
- 图
- 查找
- 排序
具体的知识点内容这里就不过多讲解,上方分享的学习资料中都详细包含有,讲解的清晰透彻,有需要的小伙伴都能免费领取!
4、项目,模仿
上面的阶段学习完后,就要开始做项目了。而做项目的技巧是什么?先去找案例,教程学习,项目实战。当我们看完一个后,学会了如何去分析,开发一个新的项目。比如,如何描述一架飞机,它有哪些参数,哪些方法。
是否可以飞,是否可以发子弹,是否碰撞,宽高多少。这个在理解起来就是,内部的结构,以及外部的关联。对内属性,对外方法调用。
这个如果你理解了,那么算是学成精了,进入开悟阶段。
这块教你一个方法,直接去Github搜索,里面有大量的经典项目可以用来练手,或者是直接领取下方的实战项目资料包,省时省力了不少,也都是免费的,感兴趣的小伙伴都能领取学习。
5、操作系统
当这个阶段完成后,后面就进入所谓的操作系统阶段,这个迈过去了,就是开悟之坡的封神阶段,也会进入真正的辉煌阶段。
而关于操作系统,要学习哪些知识呢?
- 操作系统的概念
- 进程,线程的存在
- 通信机制
- 互斥锁,消息
- 死锁,如何避免竞争
- 虚拟内存,进程间不可直接访问
- 分页,分段,缓存的意义
- 文件系统
- 驱动加载
这边推荐几本书,《现代操作系统》、《自己动手写一个操作系统》,我自己当时是看着一本叫做《操作系统》的书,看了很久。还有建议看下《Linux操作系统设计》,然后就去看下小型操作系统,代码少,易学习,这块可以使ucos2、freertos,去学习中断上下文,所谓的现场保护。
如果这块学的不错了,在进阶一下,进入微指令,计算机组成原理,深入到计算机硬件这块,会给你带来质的飞跃。
6、反编译逆向
完成了操作系统,就结束了?非也。下来会进入到世界颠倒的地方。反编译。有谁会写完代码后,进行反编译看看的?如果你这么做了,你一定是高手了。因为你进入了自我探索阶段,在开悟之后,就变成了所向披靡,而反编译就是最好的切口。
这里推荐几本书:《C++反编译》、《加密与解密》,加密与解密解决所谓的PE结构这些,说到这里又想起来了,《程序员的自我修养》、《链接器与加载器》,一定要去读,太经典了。
这块我当时使用的是OD破解器,现在IDa,做一些分析学习(现在不输出这类内容了,自己探索乐趣无穷,不想被烦扰)
当你看到代码,能够看到的是它的流动,就像侠客行里面,最后石中玉看到蝌蚪文的那个感觉,各个经络活跃起来,感受到代码在流淌,而不是静态的,这时候你才是真的热爱编程。这也是我喜欢的一个状态,一个在代码世界的屠龙少年。
当完成了这些,会到所谓的大神阶段,就是会游刃有余的解决问题,但是还处在孙悟空的阶段,没有大彻大悟。最后一个,我们来说下终极思维。
7、设计原理
虚实结合,创造系统,这个才是最终跳出束缚,完成所谓的天眼过程。所谓你永远看不到真相,因为你一直在真相里面。
要想真正打通,最终完成的是所谓的设计,比如操作系统架构设计,模型,物联网模型,协议,这些是在制定规则。制定规则,是在创造过程。制定规则,是具有了主导的权力,一切皆在股掌之中。
到这里整条C语言学习路线才算真正结束,最重要的还是项目练习这一块,编程其实是工程学,懂得原理思路和写出可以运行的程序是两回事,动手写示例代码,才能积累经验!
在练习代码过程中必须注意每一个细节,连一个标点符号也不允许错误,因此,只有亲自敲入每段代码,才能掌握编程。
还要学会创造自己的示例程序,解决自己心中的疑惑。写的每一行代码,都是自己编程能力的积累,编程的经验值等于代码行数。整理自己写的代码和错误保存,这些都是未来用的上的。
万事开头难,切不可只走马观花地看书、看教程,应敲入每一行示例代码,动手做一遍,方能学会编程,掌握C语言。
如果你想要获取更多C语言知识,可进入下方的C语言学习交流群,还有大量编程学习资料文件(源码、笔记、电子书籍、项目实战教学视频以及小白专用的零基础教程),欢迎初学者和正在进阶中的小伙伴们加入!
C/C++编程学习基地https://jq.qq/?_wv=1027&k=pE5HRGX4好了,今天的系列总结就讲这么多,看大家理解了多少,学习C语言也不能只看效率,每项阶段学习都应该稳扎稳打,只有牢固的基础才能建起高楼大厦,才能成为一名合格的C语言开发者!
更多推荐
初学者怎么高效率学习c语言?
发布评论