顶尖的技术和魔法无异------如何让自己快乐学习编程系列

在和朋友回顾各自的编程经历的过程中,发现不是所有人都会拥有感觉编程好有意思的一个,仪式感超强的一个朝圣时刻,我用一个不那么恰当的比喻形容一下,就是—— 当哈利波特知道魔法存在的那一刻,并且自己可以学习魔法的那一刻,神奇的魔法世界对他打开大门的那一刻,就是他的朝圣时刻。 于是有了下面这些记录,零散串起我的朝圣时刻。 毕竟 debug 实在是太烦了 , 没有这些激励我的东西,我岂不是要当场退学。

#0. 前言

私以为计算机导论应该是带着新手总览整个计算机学科,从最古老,到现代我们创造的一切。而不是直接去学语言,学Word ,Excel PowerPoint ... 那不是计算机导论真正的任务。 又到了我的奇奇怪怪比喻时间: 如果把计算机的整个学习过程比作盖房子,那么学了两年的我们还是没有办法创造东西,盖出一个房子。 因为你跟着老师学了两年打灰哈哈,你听老师说基础很重要,但是你对比一下不离谱吗,就好像你大学四年啊,是要学习怎么盖房子,然后你打灰打了两年,后面两年学烧砖,房梁设计,水电不知,装修,和开发商协商这些东西。能不赶嘛,甚至毕业都不一定学的完哈哈。 好的计算机导论应该是简单带你改个房子,哪怕再小再差也是个房子,然后再学习如果更好的打灰,烧砖,水电,房梁设计。 不见全貌的学习,不知道自己所学究竟有什么用的时候,很难坚持,更难觉得有趣。


关于计算机世界的开发实际情况,可以看看我写的Github 指北 小白向, 还有git的教程_给狗子的限定版


我衷心希望这篇文章能够带给读者一些新鲜的思考,让同学们能看到人生道路上不同的风景。至少在读过后,各位读者应该能够有勇气、有智慧,去发现并挑战那些比上课更为重要的追求。

以上来自一位学长的期许,他写的《上海交通大学生存手册》影响我很多,鼓励我去自己求知,去在国内僵硬的培养机制下自由探索,去解决真正的问题。 上海交通大学生存手册


#常用的工具系列

首先,这是一门出发点颇为有趣的课程:其他的CS课程往往会介绍一些更为“高级”或“理论”的内容,例如操作系统、数据库原理、机器学习深度学习等等,然而却几乎没有课程介绍一些极为“实用”的知识,即如何使用一些好用(能大大提高生产力)的工具,如terminal、编辑器editor、tmux、profiler、数据处理工具(如awk, sed, grep, perl)等等。而作为学生,大家(至少我)要么是靠同学、师长、同事推荐听说到这些工具,然后靠网上一些质量未必很高的tutorial去自学;要么是靠缘分去碰到这些工具;有的时候运气好点,会自己调研到好用的工具并学习。但总而言之,因为缺乏这方面的“系统化”的教育,我们往往需要走很多弯路才会培养出一个比较完善的武器库。更重要的是,当武器库中缺少某种武器的时候,我们甚至会认为碰到的某个任务是无法完成的,而这个任务实际上可以用针对它的“恐龙克星”轻松搞定。而6.NULL这门课的作用,就是教你一些常用且好用的武器,让它们成为你武器库中的一部分。

这个是课程官网,有讲义,还有习题,还有解答,都是中文

#1. 计算机世界的全局纵览——Crash Course Computer Science

我看过许多计算机导论的课程和书,侧重点各自不同,对于学习者的要求也不尽相同。Crash Course 系列以通俗易懂为特点,Computer Science 系列每集十分钟左右,讲解清晰,易懂,通俗性和专业性都有很好的考虑。从介绍计算机的历史,计算机的组成,计算机设计者们的思想,现代计算机的各个发展方向介绍计算机世界的全景。 总共也就8小时,每节课10分钟左右。


#2. 真正的计算机导论 —— CS50

论谈及计算机导论的第一,人们总是要在CS50 和MIT6.001 中左右徘徊。我个人更喜欢CS50 , 在不到48小时的课程里完成图形化语言Scratch , C 语言, 基本数据结构和基本算法,Python ,SQL , HTML 等前端内容 ,网页开发框架 Flask。搭建一个现代意义上的网站有前端有后端有数据库,麻雀虽小五脏俱全。

🎨 课程介绍:CS50是哈佛的一门计算机科学的导论性的课程,内容包括基本的计算机知识以及基础算法,常见的编程语言等等,还会探讨最新的计算机科学领域的成果,课程发散性思维强。CS50课程的讲课形式让人耳目一新,真正做到了“快乐学习”。

#3. 完成了入门课程的你,就需要DIY 自己的学习之旅啦

让我向你隆重介绍这个cs自学指南,一个北大老哥自己自学了三年后,想要总结下自己的学习经历,给后人一个参考,建立了这个网站,贼全,贼方便,远比我上面介绍的全面深入,毕竟本篇文章和我的个人能力不够,并无心介绍CS自学的全部,我只希望我所写的东西,带君入门,领略到计算机的快乐哈哈。

#4. 结语

学计算机最快乐的时刻,那就是创造出自己的作品的那一刻,尤其是网站,我强烈安利大家按照我写的 Github 指北 小白向 里面的内容建立一个属于自己的网站 Github Page 巨好用!!!! 再进阶可以搜索Hexo ,Jekyll , Hugo 等静态站点成器,体会自己拥有一个酷炫网站的感觉哈哈。 mkdocs 也行,也很好玩。


熟悉了GitHub之后 , 你就会知道什么是 fork 的快乐 ---------- 你的代码很好,可下一秒就是我的啦。

..... 后续再补,今天就到这里 ----2022.11.12

updatedupdated2025-02-032025-02-03