Let's Roll - 给师弟师妹的经验分享

| 原创 | 教程

学习方法启迪

兴趣爱好扩展

答师弟“计算机入门”问

Q: 计算机入门?

A:大学计算机基础的内容只是最简单的基础理论学习,为什么说最简单呢,因为这门课程考试平均分可能在九十分以上… 编程入门跟这门科目的联系没有那么大,就像你学了思修毛概和让你去教书育人一样,有点联系,看起来还似乎是必须的,但其实没那么密切。

编程开始,我建议的路线是先学廖雪峰的 Git 入门教程,百度一下就有了,虽然软件学院开始学都是从软件基础理论呀、C++呀这些开始,但是我个人认为,叩开编程世界的大门的,必须是 Git。

Git不是直接用来编程的,而是一种版本库的管理办法,举个例子,编程会涉及代码版本的修改和演进,科学有效的方式是记录每一次代码的修改历史,举个例子,某一天你给代码增加了一个新的功能,修改的地方很多,但是后来你突然发现有更好的方式去实现它,传统的做法是给老的版本做一个备份,然后再在老的版本上面改动,而 Git 作为一种强有力的工具,可以追踪你每一次的变动,并且帮助你快速回退到旧的版本。

之所以要先学 Git,理由一是它能够帮助你建立一个代码管理的知识,而更重要的在于,代码的宝库、开源社区 Github 就是基于 Git 来托管代码的,Github 上面有成千上万个项目,就像一个巨大的宝藏,而你学了 Git 之后,就可以轻松的访问到上面的资源,然后可以从前辈程序员们的项目开始,一步一步的领会编程世界的魅力。

再者,除了 Git,我推荐鸟哥的 Linux 私房菜,同样的,所有资源你都可以在 Google 上获取得到,这些都是开放的学习资源,数字化的资源(如果你可以访问 Google 的话,还可以逃离百度无止境的广告和防不胜防,科学上网请戳这儿)。Linux 是一个开源的系统内核,类似于 Windows、MacOS 等系统,但是 Linux 不同于这两者,它是服务器端(而非我们日常接触的这些图形界面操作系统)领域最热门的系统内核,Linux 稳定、优雅、理科学,用户可以拥有完全的自定义权限而不会局限于系统提供的接口,学习 Linux 就是学习一个操作系统从零到有、学习当今世界上最为热门的一个计算机开源群体、甚至是计算机网络到高效编程的一个过程。

鸟哥的 Linux 私房菜这本书讲得非常详细,从计算机基本原理到 Linux 系统的大大小小一一涵盖,甚至只需要读完一章,你就可以有一个全新的计算机认识,因此,在学完 Git 后,你可以通过阅读这本书来充分进阶计算机基本原理。

最后就是实际的编程,大多数人编程是从 C++ 开始学起,我们学院(自动化学院)也是,但没有编程经验直接开始学 C++ 容易陷入困难和难以立即实践的混沌中,会降低你的积极性。因此我更建议你从 Python 开始学起,同样的,廖雪峰的 Python3 教程也是非常好用的一个入门教程,可以帮助你一步步了解这门语言。学习编程的过程中请记住,同样的,这个道理适用于语言学习和任何其他东西的学习,即,学习初期只是一个短暂的认知过程,就像我提到的费曼技巧学习方法中的 知识面覆盖(第一个步骤) 一样,请尽可能以最快的速度刷完全部的知识,然后立马投入实践,投入练习,投入思考,否则,“看完一本书即学完”的做法永远不会让你有所收获,而只是“哦我学过这里,不过我想不起来了”

Q: 师兄的意思是先从git学习查找资源 然后再学linux系统内核 最后再学具体的编程语言吗?

A:不能说严格按照这样的学习顺序,我觉得你甚至可以齐头并进,当然,最好的方式是“在最短的时间内攻克一个领域”

Q: 那在学习的过程中有没有什么练习措施来达到反馈效果呢

A:反馈很重要,看来你有认真思考过。我上面介绍的教程在每个章节后面都有一些简单的思考,认真完成,不要跳过,打铁趁热即可。

最后刷过一遍教程就可以开始实际的编程了。比如,请写一个爬取 www.ynewtime.com 博客上所有图片的 Python 爬虫

还有,我先前提到过的林健老师主讲的信息检索与利用选修课,当你们下个学期开始选课的话强烈建议选这门,搜索方法用的好,可以避免造无数重复的轮子。

Q:有哪些计算机入门的网络课程?

A:整理如下👇

基础视频:中国大学MOOC – 大学计算机基础

  • 形式上较为传统,是最典型的课堂MOOC形式。内容涵盖面相对比较广,因此可以最快的了解到计算机的几个重要方面。

趣味视频:网易公开课 – 可汗学院计算机科学课程

  • 授课的形式是手绘的原理解析图,所以形式比较丰富,不过虽然标题是计算机科学,课程的主要内容还是围绕实际的编程,从动手编程来实践学习,相对第一个视频比较单一。

互动教程:Udacity – 计算机科学导论

  • Udacity是一家谷歌风格的在线学习网站,致力于生动的教学资源制作。这门课程也主要是以视频+简单的思考题为主,视频托管于Youtube,因此学习时请开启科学上网。

详尽阅读:鸟哥的Linux私房菜

  • 计算机学习绕不开的一本书,虽然是Linux 系统的入门知识,但是鸟哥非常贴心的在开篇就介绍了详尽的计算机概论知识,强烈推荐一读。

进阶教程:全栈增长工程师指南

  • 如题,基础入门的话暂时不需要涉及,如果感兴趣可以尝试学习。

👆计算机基础入门 – 思维导图


==========================

Steve Jobs

And most important, have the courage to follow your heart and intuition

==========================