【如何学习编程】
自我介绍
哈喽,大家好!无论是计算机专业的同伴,还是想要学习计算机编程的朋友。相信大家都很想知道如何才能学好编程。接下来废话不多说,给大家分享一下我学习编程的经验,以及我的目标!
灵魂拷问
1.学好编程就是学好C语言/一门编程语言吗?
答案是否定的!一个合格的编程人员需要精通这些东西:1.一门计算机语言(C/C++/Java) 2.数据结构与算法 3.操作系统 4.计算机网络 5.数据库 6.脚本语言。看到这里相信很多人就开始打退堂鼓了,心里想:我就想学个编程,怎么要学这么多呀!不要害怕,循序渐进、触类旁通,一切都会纷至沓来得。
2.C语言重要吗?
答案是肯定的。正所谓基础不牢,地动山摇。C语言是比较早期的编程语言,仅次于汇编。C语言的出现,算是编程史上的一座里程碑。它主要用于底层软件的开发,很多底层的东西,像操作系统,都是C出来的。其它编程语言的学习,若想学得深入,较好的C语言基础万不可少。
编程语言的学习计划(以C为例)
·方法论
a.必须实践-敲代码
具体实施:
-
学习语法:找一本书或者找一套靠谱的课程。书的话推荐《明解C语言(入门篇)》、《C语言程序设计现代方法(第二版)》、《C与指针》。课程的话可以选择学校的,也可以去B站看看鹏哥的课程。适合自己的才是最好的。
-
动手写代码:
2.1 模仿阶段:找别人优秀的代码去模仿:A:模仿不是抄,抄袭代码是不会有任何的能力提升的。B.理解别人的代码框架和实现思路,自己画内存分布图,然后不看别人的代码,自己敲一遍。2.2 自主实现阶段:分析题目,编写代码,实现基本功能之后,再进一步优化(代码的简洁性以及时间复杂度和空间复杂度)。
b.必须画图理解内存布局
C语言是偏底层的语言,可以直接访问内存的。所以我们要清楚自己写出的代码所对应的内存布局。
需要清楚的问题:
1.局部变量创建在了哪里?
2.数组是怎么创建的,随着下标的增长,地址是怎么变化的?
3.一维数组、二维数组在内存中的布局是怎样的?
4.指针和内存的关系是啥?
5.指针和数组的关系是啥?
6.怎样通过指针访问数组?
7.怎样通过指针访问任意内存?
8.函数的调用逻辑?
9.函数是怎样传递参数的?
10.实际参数和形式参数的关系是怎样的?
11.函数调用的栈帧是怎样创建和销毁的?
12.函数递归是怎么调试的?
13.全局变量、静态变量、动态内存开辟的都是哪些区域?
14.柔性数组是怎么样的?
15.可变参数是怎么实现的?
c.调试是关键
所谓调试,就是监视代码的运行过程。它运行到了哪一行代码,它执行了到了哪一个命令,只有掌握了调试的技法!才能"人机合一“(简单的说,就是更加了解代码的执行流程,卡在那里一目了然)每个编译器的调试操作大同小异,大家根据自己的情况,自行了解学习即可。
·时间安排
1.每学一点C的知识,就进行知识的整理以及学习心得的分享,大家一起进步啊!
2.每天至少敲一个代码,争取让自己的gitte一片绿!
目标
我要进腾讯!年薪20W!