---
category:
  - 联系作者
tag:
  - 心路历程
---


# 我的第一个，10 万(B站视频播放)

恭喜这个 B。。。。。。站上的 UP，上一期视频播放量突破了 10 万！这也是二哥人生当中的第一次，凭借单条视频突破 10 万播放，必须得纪念下。


![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/szjy/bzhan-10wan-4f27a848-7dba-4cd3-a705-a6ef02162338.png)



从众多的宫斗剧中我得出了一条宝贵的人生经验：“母凭子贵”。这条经验同样适用于二哥本人，可能会因为这一期视频，吹这辈子最多的牛逼：这不，荣获哔哩哔哩第 3 周【校园优秀奖&校园新星奖】。

![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/szjy/bzhan-10wan-340f1fe4-49f1-48c6-a972-c5da7de8ddd0.png)

我已经按捺不住激动的心情，在两万人的朋友圈大肆炫耀了。十万播放，对于百大 UP 来说，可能就是分分钟的事，可对于我这个（未来的） B站百大来说，苦苦等了 149 天！！！！！！！

这真是一个漫长的日子，鬼知道这些天我经历了什么。

我一度怀疑自己到底适不适合拍视频，表情的僵硬，普通话的塑料，甚至连自己一项引以为荣的台本，都觉得拉胯。

可就因为这个视频，让我重获新生，亢奋的心情一直在持续。我知道，一条视频的播放突破 10 万，并不意味着下一个视频也会有 10 万的播放，但好歹能让我感到幸福会，至少可以“厚颜无耻”地再吹一次牛皮吧！

昨天的文章里，承诺新的一年 2022 年把肝重新交给大家，我就会说到做到：这年头，职场就流行这个“沙雕”文化，**你有没有能力不重要，重要的是领导交代你的有没有去执行**。

二哥打算豁出去了！

新一期视频也上传到 B 站了，希望能借英雄哥的吉言，再爆一次。链接我放这里了：

>https://www.bilibili.com/video/BV1za411q79U/

三不三连没关系，有关系的是不三连可能会对不起二哥的肝，所以还是三连吧，哈哈哈哈，瞧瞧我们这该死的生物钟，起这么早。。。

![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/szjy/bzhan-10wan-5a1d423e-8827-4a66-9197-4641ef0ecbaf.png)

接下来，上干货，我把这期 10万+ 播放的视频台本重新整理了一下，本来不想发的，很多小伙伴私信说二哥偏爱 B 站，同步都懒得同步了吗？

这不，赶紧发到公众号上来，希望学生党们现在立刻马上收藏起来，这个寒假你会过得非常充实；至于工作党嘛，像二哥这样的，既要工作，又要读书写作照顾家庭的，忙都忙死了，就算了吧！

![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/szjy/bzhan-10wan-99073995-10b0-42ee-81e5-cc4abc26aa71.png)

啊，不，还是要稍微卷一卷吧，免得被那群还有半年就毕业的家伙们拍死在沙滩上。。。。

------

二哥的读者当中有不少大学生，所以当知乎上刷到这个题目时：

>“学校课程规划的比较奇怪，大一上学期学c++，下学期学python，在寒假我是应该复习或预习课内内容（python，c++），还是自己对外拓展呢（c，数据结构）？”

立马就冲上去答了一波。

**就冲这份爱学习的决心，三年后绝对互联网公司的 offer 拿到手软**！

讲真，小伙伴学校安排的课程和我当年非常相似，也是大一上来就搞 Java，隔壁班上来就搞 C++，完全没有安排 C语言来过渡下。

所以我的建议是，**趁寒假打打王者上上分吧**！

![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/szjy/bzhan-10wan-63412a28-7315-4ac4-a04b-a049b338c0d8.gif)

啊，不！**趁寒假刷一波清华在 GitHub 上 20k+ star 的开源课程吧**！

## 一、清华大学在 GitHub 上的开源课程



>地址：https://github.com/PKUanonym/REKCARC-TSC-UHT

![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/szjy/bzhan-10wan-c309fdb8-084c-44b1-bd8e-86a4b39cbb7b.png)

我来带小伙伴们过一下清华的课程安排哈，主要是针对计算机专业的。

大一上的计算机基础课程有：计算机科学导论、程序设计基础

大一下有：面向对象程序设计基础

大二上有：数据结构

大二下有：人工智能导论、计算机图形学基础、高性能计算导论

大三上有：计算机组成原理、计算机网络原理、编译原理、软件工程、数据库系统概论、人工神经网络、计算机网络安全技术、人机交互理论与技术

大三下有：操作系统、计算机系统结构、机器学习概论、数据挖掘、搜索引擎技术基础、存储技术基础、数据库专题训练、计算机网络专题训练。

大四主要是实践、实习、毕设等，剩下的计算机课程主要有网络安全工程与实践、嵌入式系统。

可以看得出，大一大二基本上是在摸鱼状态，大三突然开始发力，各种计算机基础课程，非常疯狂！

不过：

有志者事竟成，破釜沉舟，百二秦关终属楚；<br>
苦心人天不负，卧薪尝胆，三千越甲可吞吴！

## 二、学习 C语言

**推荐一本书，两门视频课**。

书是电子书，书名叫《阮一峰的 C语言入门课》，我第一时间就拜读了一遍，受益匪浅！可以说目前我见到的最好的 C语言入门教程了，没有之一！国内的绝大多数高校，大一都会安排 C 语言这门课，阮一峰了老师的这份《C语言入门教程》，绝对是福音。

视频课是浙江大学翁恺教授的，一门《C语言程序设计入门》，一门《C语言程序设计进阶》。

学完这些，大家至少能学会下面这幅思维导图中列出来的内容。

![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/szjy/bzhan-10wan-03e4f5b4-c756-401c-aada-695b9cfaf00d.png)

更多 C 语言的学习内容，可以戳下面这个链接，之前在公众号上发过了，这里就不再复制粘贴了：

[大一新生应该如何学习C语言，书上代码看不懂理解不了怎么办？](https://mp.weixin.qq.com/s/cZq24FJto2gJYWVhbhNBnQ)

## 三、学习数据结构

什么是数据结构？

>数据结构是一种具有一定逻辑关系，在计算机中应用某种存储结构，并且封装了相应操作的数据元素集合。它包含三方面的内容，逻辑关系、存储关系及操作。不同种类的数据结构适合于不同种类的应用，而部分甚至专门用于特定的作业任务。例如，计算机网络依赖于路由表运作，B 树高度适用于数据库的封装。

菜鸟教程上对数据结构的定义我觉得还是蛮正式（官方）的，说人话就是，**数据结构就是把一堆数据，按照某种格式揉成一坨**。

大家喜欢吃宫保鸡丁吗？

反正我挺喜欢这道菜的。我就以宫保鸡丁为例，来讲一讲数据结构吧。维基百科上是这样定义的。


>宫保鸡丁（英语：Kung Pao chicken或Kung-Pao Chicken），又称宫爆鸡丁，呈糊辣荔枝味，源于黔菜、流传至鲁而后成于川菜的一道川味名菜。贵州、山东和四川三地对这道菜的做法不完全一样，称呼也有差异。贵州称为糊辣子鸡丁，山东则名为酱爆鸡丁，而四川是以宫保鸡丁为名的。


来，抽象下宫保鸡丁。

```c
struct KungPaoChicken {
  鸡肉 = []
  花生 = []
  葱段 = []
  花椒 = []
  辣椒 = []
}
```

这个结构体（struct 是 C 语言中的一个概念）就是一个自定义的数据结构，将很多不同的配料融合在了一起。对于计算机的数据结构来说，只不过是把这些配料换成了基本数据类型。

拿 Java 来举例，基本的数据类型有 int、char、double 这些，复杂点的有 String（引用数据类型），底层是 char 型的数组，而那些自定义的类型不过是对基本数据类型和引用类型的封装。

抽象完宫保鸡丁再来抽象一下二哥吧。

```java
class 二哥 {
  int age = 18;
  double 体重 =  65kg;
  
  void eat(宫保鸡丁) {
    体重 += 1kg;
  }
}
```

伪代码不是很严谨哈，大家理解这个意思就行了。

说到底，数据结构不过是一种抽象后的封装。像 Java，它之所以流行的一个很重要的原因，就是它提供了多种多样的、方便开发者调用的数据结构，比如说对数组的封装 ArrayList、对链表的封装 LinkedList、对哈希表的封装 HashMap、ConcurrentHashMap 等等。C 语言就没有这些，想用的话，就得自己封装。但 Java 和 C 语言的基本数据类型是一致的，int、float 这些都是相通的。

对于初学者来说，平常敲代码都是直接去调用数据结构的，是很少去想这些数据结构是怎么实现的。

当一个初学者向高级程序员迈进的时候，就必须得静下心来，去搞清楚 ArrayList 和 LinkedList 的内部实现，搞清楚之后就会明白，之所以它们在增删改查的时候性能上有差异，就是因为它们的内部使用了不同的数据结构所导致的。

有一说一，我在 2008 年刚学 Java 的那会，真的是不理解，为什么明明有了 ArrayList，Java 还要设计 LinkedList，不都是集合嘛！

害！

**数据结构为什么这么重要？**

我直接放大招吧，甩一段清华大学计算机系教授邓俊辉老师话吧。

> 数据结构是计算机科学的关键内容，也是构建高效算法的必要基础。其中涉及的知识，在相关专业的课程系统中始终处于核心位置。以 ACM/IEEE
> Computing
> Curricula（计算机教学大纲）为例，其中对于几个相关专业（计算机科学、计算机工程、信息系统、信息技术、软件工程）的共同要求中，数据结构与算法作为程序设计概念与技能的核心，紧随在数学之后，排在第二位。

数据结构说复杂也不复杂，说简单也不简单，这不重要，重要的是必须得学！

有小伙伴可能会问，“我数学学的不好，学数据结构能学会吗？”

说句实在话，数据结构和数学之间没有必然的关系。**我上小学的时候，参加过洛阳市的奥林匹克数学竞赛，还得了三等奖**（偷偷地加个粗）；初中的时候，数学成绩也一直保持得不错，但上了高中之后，由于贪玩，数学成绩一落千丈，成了瘸腿课。大学的时候对离散数学、微积分这些更是头大。

但这并不妨碍我学习数据结构，真的。数据结构中，树算是最难的一块了，像数组、链表、栈、哈希表这些相对来说，计算机专业的，只要稍微下点功夫，都是能掌握的。

说了这么多，**数据结构到底该怎么学呢？**

如果你有 C/C++ 的底子，我给推荐两本书。

第一本，《趣学数据结构》

![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/szjy/bzhan-10wan-bd02be2f-ae71-413f-b0c0-0050fee0e2b5.png)

说到这，多说一嘴。2018 年的时候，人民邮电出版社的张老师邀请我出一本 Java 方面的书，我当时想命名为《趣学 Java》。张老师说，刚好之前和陈小玉老师合作出了一本《趣学算法》的书，要不发一本你看看吧。

你别说，这本书还挺适合拿来作为算法的入门书呢。后来，陈小玉老师又出了一本新书，叫《趣学数据结构》，我看了，虽然离“趣”字有点距离，但很适合作为一门数据结构方面的入门书。

第二本，《数据结构（C++语言版）》

![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/szjy/bzhan-10wan-de28bb8a-ddb6-4b73-b132-ebf5e507fdbe.png)

对，清华大学邓俊辉教授编著的，豆瓣评分也蛮高的。这本书还配套了视频课程，是免费的，可以在学堂在线上看，我之前也有推荐过。

![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/szjy/bzhan-10wan-15de0615-3d9c-4bdc-bedb-4165ac6f4802.png)


课程质量木得说，算是国家级精品课了。大家有时间的话，一定要刷一遍。

>视频地址：https://www.xuetangx.com/course/THU08091000384/7755489

对了，还有浙江大学陈越姥姥的视频课：

>视频地址：https://www.bilibili.com/video/BV1JW411i731

如果你有 Java 的底子，我也给推荐两本书。

第一本，《数据结构与算法分析（Java 语言描述）》

![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/szjy/bzhan-10wan-1672e79d-a576-4a24-bc60-ced47b692a0f.png)

虽然翻译得不怎么样，但内容很全面，适合拿来作为一本数据结构的入门书。

第二本，《算法（第 4 版）》

![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/szjy/bzhan-10wan-9e260fc8-69fa-4dfa-82c6-9d6b1d7027e5.png)

虽然名为算法，但大家都知道，算法是基于数据结构的，数组、队列、栈、堆、二叉树、哈希表等等，这些数据结构都讲到了。

如果时间比较紧的话，C/C++ 程序员只看《数据结构（C++语言版）》就行了，Java 程序员只看《算法（第 4 版）》就行了。如果一遍没看懂的话，再看一遍就好了。

有网友“三色院堇子的老公”说得好。

> 数据结构就是你已经写了几百万行，然后数据结构减到 90 万行，性能还翻倍，嗯，终于学会了！

## 四、走心总结

2022 年 1 月份，很有必要开个好头。

那么趁寒假刷一波清华在 GitHub 上的开源课程，还有 C语言和数据结构，寒假过后，绝壁是卷王中的卷王。

悄悄地告诉大家一声，很多说放假了一定要打打游戏，一定要放松下，这些人都在悄悄地卷。

所以说，如果你是正在放松的那个，可要小心了！

不要一个寒假就被甩开了差距。

工作党其实也一样，适当放松，时刻警惕，该学的时候还是要能支棱起来。
