0%

重新开始学习计算机

思考

年初离开美图公司,进入了一段比较自由的工作时期。
略微松弛之后,反而有了慌张的感觉,开始有空思考之前担忧的两个职业问题:

  • 35岁之后竞争力何在?
  • 作为 iOS 开发者,苹果不行了,该怎么办?

其实之前,我有一些自以为是的应对之道:

  • 35岁就该有35岁开发者该具备的技能,35岁还是25岁的水平,活该被淘汰。
  • 苹果的平台就算被淘汰,也应该是被一个全新的平台淘汰,那我们就是转型新平台最容易的一批人。

仔细想想,以上应对都建立在一个核心能力上:拥有扎实的基础知识。
基础知识可以帮助我解决深度问题,也就是初级开发者解决不了的问题。
基础知识可以让我在不同平台开发中轻松切换,不局限于开发语言,或者平台特性。

基础知识

基础知识其实是一个很宽泛的概念,该怎么定义呢?
我的答案是,尽量不考虑具体平台特性,从代码到机器运行的每个过程:

  • 设计模式
  • 从高级语言编写,到编译、汇编、链接成为机器码的过程
  • 数据结构与算法
  • 操作系统
  • 计算机组成原理
  • 基础硬件知识
  • 简单的数字电路知识

还有很多我没罗列到的,比如网络知识。但是,我想暂时只考虑我感兴趣的。

接下来是我今年学习的课程:

Crash Course Computer Science - 概览计算机科学

  • 难度:⭐
  • 耗时:20天左右
  • 获取方式:油管原版 B站中文版
  • 概述:该课程非常适合快速预览计算机基础知识,可以从中选取感兴趣的方面,再做深入了解。也可以快速帮我回顾计算机的发展史。
  • 学习情况:很轻松地学完了整个课程。

清华的操作系统原理 - 了解操作系统

  • 难度:⭐⭐
  • 耗时:40天左右
  • 获取方式:B站
  • 概述:该课程非常细致的讲述了操作系统的方方面面,内容总体较为浅显易懂,很适合普通开发者作为入门。
  • 学习情况:较为正常地学完了整个课程,其中有一些逻辑推演需要反复学习,特别是多线程相关。

操作系统实战45讲 - 深入操作系统

  • 难度:⭐⭐⭐⭐⭐
  • 耗时:???(还没学完)
  • 获取方式:极客时间
  • 概述:该课程非常深入地介绍了怎么开发一个操作系统,难度很高。
  • 学习情况:目前还没学完。为了学习该课程,我不得不去补充很多相关知识,比如操作系统基础知识,部分硬件基础知识。

数据结构与算法之美 - 重拾数据结构与算法

  • 难度:⭐⭐⭐
  • 耗时:40天左右
  • 获取方式:极客时间
  • 概述:该课程非常详细地介绍了常用的数据结构与算法。理论结合例子,再匹配上课程中非常好的逻辑分析,让我觉得算法也没那么难了。最难得的是,将数据结构和算法的关联性反复推演,让我理解了为什么两者是密不可分的,是很好的数据结构与算法入门课程。
  • 学习情况:有一定难度,其中有一些算法推演需要反复学习,有部分不常用且难懂的算法只做了解没有完全掌握。只写了一个课后作业,课后作业基本上靠自己思考,再对答案。

设计模式之美 - 重拾设计模式

  • 难度:⭐⭐⭐⭐
  • 耗时:40天左右
  • 获取方式:极客时间
  • 概述:该课程不像市面上流通的设计模式介绍课程,不仅仅是介绍,还是通过实战演练,层层深入设计模式的内核。结合了一些源码作为例子,深入剖析了常用的设计模式。比之于招式,该课程更像内功。
  • 学习情况:有一定难度,许多章节需要反复学习。课后作业基本上靠自己思考,再对答案。

编程前你最好了解的基本硬件和计算机基础知识第一季 - 了解模拟电路

  • 难度:⭐⭐⭐
  • 耗时:10天左右
  • 获取方式:B站
  • 概述:该课程以非常生动有趣的方式讲了模拟电路,非常适合作为入门课程。
  • 学习情况:内容本身有一定难度,但是课程非常好,把学习曲线打平了。

编程前你最好了解的基本硬件和计算机基础知识第二季 - 了解数字电路

  • 难度:⭐⭐⭐
  • 耗时:10天左右
  • 获取方式:B站
  • 概述:该课程以非常生动有趣的方式讲了数字电路,非常适合作为入门课程。
  • 学习情况:内容本身有一定难度,但是课程非常好,把学习曲线打平了。

从0到1设计一台计算机 - 概述计算机组成原理

  • 难度:⭐⭐⭐
  • 耗时:10天左右
  • 获取方式:B站
  • 概述:该课程以非常生动有趣的方式讲了怎么做一台计算机,也可以算组成原理的入门。
  • 学习情况:内容本身有一定难度,但是课程非常好,把学习曲线打平了。

小码哥教育周末汇编班 - 入门汇编

  • 难度:⭐⭐⭐
  • 耗时:40天左右
  • 获取方式:B站 (不是完全版本,完全版请自行搜索)
  • 概述:该课程非常非常细致,有时候略显啰嗦地讲了汇编基础内容。从 x86 汇编讲起,扩展到了多个架构的汇编特性。
  • 学习情况:作者靠极其细致的讲解,强行打平了汇编学习的陡峭曲线,是很好的汇编入门课程。

总结

内容方面。以上课程,都是我认为很好的,好在几个方面:

  • 内容言之有物。
  • 结合了实际生产环境。
  • 概念推理的时候,往往会先抛出一个粗浅但简单的方案,再逐步去完善。

平台方面:

  • B站真是一个好平台,提供了大量优质且免费的内容。
  • 极客时间的大部分课程内容不错,但是有部分课程注水了,最好认真试读完再购买。
  • 小码哥教育有许多围绕 iOS 开发相关的课程,可以挑选部分课程作为内容补充,方便 iOS 开发入门基础课程,比如汇编。

时间方面:
二娃之后,我没有多少业余时间,基本上靠着每天遛娃的时间听音频完成学习,需要看图或者看代码的地方,就掏出手机看一眼。一开始还很不习惯,后面慢慢渐入佳境,竟然也习惯了这种学习模式,每到遛娃的时候,竟然也有点兴奋。当然,很多需要敲代码的地方就没办法跟着操作了,自然效果是打折扣的。不过,再怎么样也算是在慢慢进步。

希望新的一年,也可以持续进步💪🏻