人人都能学会的编程入门课 / 每天 10 分钟,轻松学编程
胡光
原百度高级算法研发工程师
 
  • 课程目录
  • 课程介绍
  • 开篇词 | 别闹了,学编程 ≠ 学语言

    过去你对编程学习的方法和认知可能是错的,我要告诉你的是“学编程不等于学语言”!

  • 01 | 学习编程,我到底该选择哪门语言?

    之所以选择 C 语言作为入门学习编程的载体,是因为它最能节省我们的学习时间。

  • 02 | 第一个程序:教你输出彩色的文字

    简单的几个字母和符号,就可以让你和计算机对话,也可以让你的程序五彩缤纷起来!

  • 03 | 判断与循环:给你的程序加上处理逻辑

    掌握和理解了程序的执行顺序,才是迈出了分析程序,理解程序的第一步。

  • 04 | 随机函数:随机实验真的可以算 π 值嘛?

    今天这节课,我们一起学习C 语言中的随机函数,以及计算机中随机函数的基本原理。

  • 05 | 数组:一秒钟,定义 1000 个变量

    掌握数组,是掌握批量化数据处理的第一步。数组的使用,会成为你日后学习中的一个重点,今天我们先热个身。

  • 06 | 字符串:彻底被你忽略的 printf 的高级用法

    今天,我会带你学习字符串,明确“值”和“变量”的概念:“值”和“变量”是两个概念,“变量”是存储“值”的地方。

  • 做好闭环(一):不看答案可能就白学了

    前几节课的思考题答案,都在这里了。快来看看这些“标准答案”,和你的思考结果,有没有什么不同吧。

  • 07 | 指针系列(一):记住,指针变量也是变量

    今天这节课,我们只会围绕着一句话学习,一定要记住,那就是 “指针变量也是变量”。

  • 08 | 指针系列(二):记住,指针变量也是变量

    今天,我会继续围绕“指针变量也是变量”这句话,和你一起学习指针的三个重点知识。

  • 09 | 函数:自己动手实现低配版 scanf 函数

    今天,我会带你一起学习函数,看看它的真正作用,以及传入参数和传出参数在功能上的差别。

  • 10 | 预处理命令(上):必须掌握的“黑魔法”,让编译器帮你写代码

    今天,我会带你认识下 C 语言的程序编译过程,理解预处理命令的强大之处。

  • 11 | 预处理命令(下):必须掌握的“黑魔法”,让编译器帮你写代码

    今天,我会带你认识预处理命令家族,全方位了解宏及条件编译的相关内容。

  • 做好闭环(二):函数是压缩的数组,数组是展开的函数

    今天,我会和你分享函数和数组、没有Bug的MAX宏这两道思考题的答案,让你对这两个知识点有更深入的理解。

  • 期中测试 | 给语言基础篇交一份满分答卷,去迎接新的挑战!

    语言基础篇已经讲完了,咱们做个测试题,看看自己的学习成果。

  • 12 | 数学归纳法:搞定循环与递归的钥匙

    程序设计最重要的是正确性,递归函数的正确性可以利用数学归纳法来保证。

  • 13 | 程序设计原则:把计算过程交给计算机

    设计程序的时候,应该把计算过程交给计算机。而用不同算法设计出来的程序,其效率也不同。

  • 14 | 框架思维(上):将素数筛算法写成框架算法

    照猫画虎,让我们通过具体算法,学到算法思维。

  • 15 | 框架思维(下):用筛法求解其他积性函数

    在具体示例中深入了解框架思维,代码框架的精髓就在于活学活用。

  • 16 | 数据结构(上):突破基本类型的限制,存储更大的整数

    在大整数的表示法中,数字是从右到左,倒着存放在数组中的,并且它体现的是数据结构对于程序设计的作用。

  • 17 | 数据结构(下):大整数实战,提升 Shift-And 算法能力

    提升 Shift-And 算法能力,让你认识到等价信息表示对于解决问题的重要性。

  • 做好闭环(三):编码能力训练篇的思考题答案都在这里啦!

    把大整数操作的相关过程,封装成了函数的方法,有太多好处。你不来看看?

  • 18 | 重新认识数据结构(上):初识链表结构

    带你认识单向链表数据结构,其实它很简单。

  • 19 | 重新认识数据结构(下):有趣的“链表思维”

    用有趣的链表思维去解决看似难以解决的问题,你会发现数据结构原来这么有魅力!

  • 20 | 二分查找:提升程序的查找效率

    数组和函数,在本质上是没有什么差别的,这也是二分查找实现提高查找效率的重要原因。

  • 21 | 队列与单调队列:滑动区间最大值

    单调队列,就是维护队列处理顺序中的区间最大值!

  • 22 | 栈与单调栈:最大矩形面积

    理解了单调队列,就很容易搞定什么是单调栈了。一句话:单调栈是用来维护最近大于或小于关系的数据结构。

  • 23 | 深入理解:容斥原理与递推算法

    只需要三步,就可以解决递推算法,你不过来看看吗?

  • 24 | 动态规划(上):只需四步,搞定动态规划算法设计

    动态规划算法的完整解题步骤,可以拆分为四步:状态定义,状态转移方程,正确性证明,以及程序设计与实现。

  • 25 | 动态规划(下):背包问题与动态规划算法优化

    多重背包问题可以转换成 0/1背包问题进行求解,转换过程用二进制拆分法,会让你的算法运行效率更高。

  • 做好闭环(四):二分答案算法的代码统一结构

    其实对于二分答案的算法实现,代码真的不是什么难点,难点在于发现问题可以采用二分算法的过程。

  • 26 | 牛刀小试(上):实现测试框架前的基础准备

    正式进入综合项目篇,让我们以 Google 的单元测试框架为例,来看看实现一个自己的测试框架,需要进行哪些准备工作。

  • 27 | 牛刀小试(下):实现一个自己的测试框架

    介绍完了gtest 框架后,让我们通过推导它的功能实现,初步实现一个自己的测试框架。

  • 28 | 尝试升级(上):完善测试框架的功能与提示

    工程开发中的一个基本原则:功能迭代,数据先行。也就是说,无论我们做什么样的功能开发,首先要考虑的是与数据相关的部分。

  • 29 | 尝试升级(下):“链表”知识在测试框架中的应用

    解开困扰你三节课的EXPECT_EQ 宏究竟是如何实现的答案。同时也希望你明白,测试框架的优化是一个不断追求极致的过程。

  • 30 | 毕业设计:实现你自己的计算器程序

    通过对二叉树基本知识的学习,你就可以掌握了表达式与其对应的表达式树的对应关系,作出这份计算器程序的毕业设计。

  • 结束语 | 设立目标,有的放矢

    专栏结束了,说点其他心里话。希望每个编程学习者坚定学习目标,让每次学习都有所收获。

  • 结课测试 | 这些编程知识,你都掌握了吗?

    还等什么,快来测测你的编程知识水平吧!

【仅限 100 个名额 | 立省 ¥30】

拼团+口令「maimaimai」到手仅 ¥69,立省 ¥30,仅限 100 个名额

你将获得

  • 敲出人生第一段代码
  • 30+ 有趣的编码项目体验
  • 3000 行代码夯实编程基础
  • 系统提高编程思维能力

讲师介绍

胡光,原百度高级算法研发工程师,写了 13 年程序,拿过 ACM 亚洲区金牌,进过两次全球总决赛,百度就职期间还开发了部门内部的第一版推理引擎,并顺利在人物关系推理等应用场景中落地实施。

后自己创业,建立海贼科技有限公司,致力于弥补二三线城市与一线城市之间教育资源的差距,目前在帮助众多学生从零开始学编程,从而让他们进入互联网公司从事相关职业。他教导的学生中,双非院校中的本科生最高毕业薪资包 59.5 万,211 类院校学生毕业平均薪资达到 35 万。

课程介绍

互联网技术飞跃发展的背后,是无数工程师们利用编程算法,敲出一个个实现我们想法的程序。可以说,我们现在的生活,是被无数的编程包围着。再加上互联网行业的繁荣以及较高的福利薪酬,让很多人开始对编程感兴趣,并有意愿学习和转行。

然而很多初学者在学习编程的过程中遇到各种各样的困难。比如说:

  • 语言学不透,表层的语言特性能学会,可稍微深一点儿的思考就举步维艰,还有一些语言特性甚至彻底学不明白。
  • 程序写不出,很多计算机专业学生学了语言、算法数据结构,相关知识点掌握的也都挺明白,可一到要自己写程序了,总感觉被什么东西卡住,写不出来。
  • 算法学不会,算法与数据结构的学习,是编程学习的灵魂所在,可也是最难的一部分。很多初学者就是因为打开方式不正确,产生畏难情绪,最终学不会。

那么,到底该怎么学习编程呢?有没有人能够带领初学者跃过种种障碍,战胜一个个困难,让我们顺利成为一名合格的程序员呢?

《人人都能学会的编程入门课》专栏,就是为迷茫的你量身打造的。

胡光,力求结合自己13年的从业经验,为你开辟一条真正有效的编程学习之路,让你顺利学会编程,不再畏惧编程,进而为将来深入学习编程打下坚实基础。

本专栏摒弃知识点的填鸭式教育,而是用一个个小实验,引导初学者理解语言特性背后的逻辑,让你在完成小实验的同时,锻炼自己的编程思维能力。作者还独立打造了“编码能力训练”环节,帮你打通语言学习与程序设计之间的鸿沟。最后,他还通过几个看似不简单的具体算法例子,帮助你掌握算法学习方式,打消畏难情绪,建立算法学习的信心。

独特的课程结构

针对编程初学者的痛点问题,文章内设计独特的学习结构,帮你解决枯燥乏味、不懂、难学的种种问题。

专栏模块

  • 语言基础篇:基于C具有良好迁移性的语言特性,带你进行一场有趣的基础知识学习之旅,让你轻松入门C语言,建立对编程的初步认知。
  • 编码能力训练篇:主要是解决很多人学会了语言却依然写不出程序的尴尬,作者会挑选一些特定的题目,减少你每次面临的陌生问题,带你循序渐进地提高编码能力。
  • 算法数据结构篇:经过“编码能力训练篇”的洗礼,带你更深层次地理解算法和数据结构,并掌握关键的学习方法,为你以后自学数据结构与算法打下基础。
  • 综合项目篇:帮你检验学习效果。作者通过2个小项目,带你去深入了解程序的内部结构,去理解代码为什么这么写,巩固学到的编程知识。

课程目录

适合人群

  • 在校学生,不管你是计算机专业的学生,还是想学编程的学生。
  • 认为已经掌握了编程的基本知识,但依然写不出代码的学习者。
  • 想转行编程的职场人士。

特别放送

订阅须知