拜访了这位小哥的GitHub后,我失眠了!

往期热门文章:
1、还在写大量 if 来判断?试试用一个规则执行器来替代它2、腾讯最大股东收购了 Stack Overflow,以后“抄代码”都要付费了么?3、灵隐寺招聘:没有KPI,佛系上班……4、如何优雅处理重复请求/并发请求?5、不用到2038年,MySQL的TIMESTAMP就能把我们系统搞崩!



之前很早就有耳闻过一个名叫John Washam的外国小哥自学编程的励志故事,还曾一度登上GitHub热度榜。

他的故事说来也挺励志。为了让自己从一个非CS科班的自学党蜕变成Google的软件工程师,每天坚持自学8~12小时,持续了数月之后,他如愿以偿,成为了一名大厂软件开发工程师。

重点是这位小哥也乐于分享,他将自己成为一个软件工程师的学习历程整理成了一个丰富的GitHub资源仓库并开源了出来,而且一度被称为GitHub上最励志的计算机自学教程!

昨天进去又看了一眼,好家伙,截止到目前为止狂砍了171k+的Star,吓得我啪的一下当场就献上了膝盖,很快啊!

要不说开源项目的魅力大呢,有众多开源爱好者参与进来将这份学习笔记翻译成了很多语言的版本,其中就包括简体中文。

仔细看了一下这份自学主题清单你就会发现,内容涵盖的东西可真不少,比如:

  • 开发环境和开发工具学习

  • 必备计算机基础知识

  • 编程语言的选择

  • 各种数据结构

  • 常用算法和算法复杂度分析

  • 设计模式

  • 操作系统基础

  • 计算机网络基础

  • 软件测试

  • 系统设计问题

  • 书单推荐

  • 面试注意事项和面试准备相关

  • 学习方法和心得

  • ...

除了这些之外,这份自学清单甚至还涉及到有关计算机硬件基础信息论密码学计算机安全信号处理离散数学概率论计算机领域经典论文等一系列内容,可以说非常硬核了。


看完之后,除了领略到了作者这份硬核学习主题清单本身的技术内容之外,更让我产生共鸣的是他的学习态度和学习方法,这也是我体会最深的一个点。

平日里跟很多小伙伴也探讨过各种关于学习方法的问题。关于自学编程,自己也是踩着坑一步一步过来的。我个人到现在依然最坚信的一点那就是:学习不在入,而在出

什么意思呢?

很多人在自学的过程中总是会在意自己看了多少书,听了多少视频,刷了多少题目,似乎这些才是衡量自己是否真正学会某项技术点的标准。

然而必须要明确的是,其实它们只是获得知识的一种途径而已,并非最终目的。看了这么多资料,刷了这么多题目,到底有多少是自己真正融会贯通,并转化成自身能力的提高呢?

如果仅仅为了做而做,而把自己陷入一种忙碌的假象之中,这反而成了大家所说的伪勤奋了。把自己弄得很累,但却未能尝到真正提升技能的甜蜜点,这可能是你我曾经所共有的感受。

所以接下来聊聊几点小想法吧,个人在过去的时间里不断尝试和执行,感觉对自己的帮助还是挺大的。

  • 提前做好全局调研、统揽和路线规划。

动手学习之前做好学习路线的全局规划十分重要,看书、刷题不是最终目的,最终还是要关注自己知识体系的形成

不做规划,上来就一头扎进知识的海洋往往会让人迷失自我。我发现一个普遍问题(当然也包括我自己),其实大家在学习过程中的最痛点往往不在于说具体某一项技术该怎么学,这个不是最痛点。最痛点往往在于很多人对于其想学的某个技术(岗位)方向,并没有一个技术点上的宏观视角。

身处其中而不知所向,我觉得这是个人自学道路上最大的恶意!没提前做好规划一头扎进去,久而久之会很容易被各种内部或外部的因素给劝退。东一榔头西一棒子迟早会把自己的学习热情给浇灭。

实时洞察自己位于学习路径中的位置我觉得还是挺重要的,一来方便自己掌控时间和效率,另外也可以增加自己的获得感与成就感,学习有奔头也很重要不是吗?

  • 做好留痕,步步为营。

就像去一个地方旅游我们都习惯拍照留念一样,在学习过程中遇到的每一个困难,踩过的每一个坑,留下的每一点感想,获得的每一个成就,都值得被记录下来。

个人博客、电子笔记、GitHub仓库、Wiki文档,我觉得都是非常不错的方式,不可能有白走的路,凡事过往,皆为财富。

随着时间的积累,这将是一笔宝贵的资源,这也将见证着自己的学习之路,上面的这位小哥不也是这么做的吗?

  • 总结、输出、回顾。

不知道大家有没有这种感觉,有时候某些知识非得回炉重造个几次才能在后面某一时刻突然有了一种打通任督二脉的感觉,就像这位小伙伴所说的:

说实话,我也很迷恋这种感觉。

看了再多本书其实也检验不了自己是否真正学会了某项技术,而只有能从自己口中或者笔下所能清晰表达出来的知识才真正属于自己。

用自己的语言或者思维导图把所学知识整理成文、梳理成图,这样也方便自己后续的复习和回顾。

往期热门文章:

1、《历史文章分类导读列表!精选优秀博文都在这里了!》
2、为什么不建议你用a.equals(b)判断对象相等
3、为什么 Java 后端开发没有大规模采用 Kotlin?

4、为什么不推荐使用BeanUtils属性转换工具

5、Top 16 的 Java 工具类,你用过几个?
6、分享几个酷炫的 IDEA 主题
7、Intellij IDEA 这样配置注释模板,让你瞬间高出一个逼格!
8、【建议收藏】面试官会问的位运算奇淫技巧
9、到底可不可以用 kill -9 关闭程序?
10、IDEA 2021首个大版本发布,新增了这几个超实用功能!


  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值