瑞思拜!不愧是github上最励志的计算机自学教程!(代码片段)

CodeSheep程序羊 CodeSheep程序羊     2022-12-13     300

关键词:

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

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

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

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

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

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

  • 开发环境和开发工具学习
  • 必备计算机基础知识
  • 编程语言的选择
  • 各种数据结构
  • 常用算法和算法复杂度分析
  • 设计模式
  • 操作系统基础
  • 计算机网络基础
  • 软件测试
  • 系统设计问题
  • 书单推荐
  • 面试注意事项和面试准备相关
  • 学习方法和心得
  • ...

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


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

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

什么意思呢?

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

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

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

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

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

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

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

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

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

  • 做好留痕,步步为营

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

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

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

  • 总结、输出、回顾

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

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

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

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


后 记

另最近花了大把力气,把自用的编程学习资源做了个大整理。

都是纯肝货,目录如下。

该内容 GitHub https://github.com/rd2coding/Road2Coding 已经收录,里面还有我整理的6大编程方向的自学路线+知识点大梳理我的简历面试考点几本硬核pdf笔记,以及我的程序员人生,欢迎star。

整理不易,欢迎支持,下期见!

我把github上最牛b的java教程和实战项目整合成了一个pdf文档

 写在前面大家都知道Github是一个程序员福地,这里有各种厉害的开源框架、软件或者教程。这些东西对于我们学习和进步有着莫大的进步,所以我有了这个将Github上非常棒的Java开源项目整理下来的想法。觉得不错的话,欢... 查看详情

史上最详细github使用教程(英文烂的血泪史)

前言: 最近在学习github,  英文不好的我看着头疼。网上的教程也不够详细。 仅以此文献给没过四级的丸子们。。。没有排版将就着看。。。 使用github 目的:托管项目代码 基本概念:仓库(Repository... 查看详情

不愧是github上标星130k的手册,内容不多,只讲重点

今天日常摸鱼的时候在GitHub上发现了这份标星130K的软件测试手册内容涉及:测试理论、Linux基础、MySQL基础、Web测试、接口测试、App测试、管理工具、Python基础、Selenium相关、性能测试、LordRunner相关等内容不多,只讲重点... 查看详情

移动计算入门教程_编程入门自学教程_菜鸟教程-免费教程分享

教程简介移动计算入门教程,包括什么是移动计算、移动通信、移动硬件、移动软件、固定与无线网络、历史和演变等。教程目录移动计算教程移动计算的历史与演化移动计算中的固定网络与无线网络移动计算中的多路复用移动... 查看详情

史上最简单的intellijidea教程

...代码自动提示、重构、J2EE支持、各类版本工具(Git、SVN、GitHub等)、JUnit、CVS整合、代码分析和创新的GUI设计等方面的功能都值得称道。至于Eclipse博主接触的不多,因此也无法比较,但殊途同归,无论选择什么集合开发环境,都是 查看详情

盘点9月份yyds的开源项目

.... 图解React源码5. DevOps面试题6.日程管理工具7. 最励志的计算机教程01开源项目NO.1FreeCodeCamp 是GitHub排名第一的开源项目,竟然有332K的Star!目前覆盖 查看详情

4个高质量自学网站每天只要5分钟,受益一生!

...站,提供我要自学网教程:自学CAD、自学pro/e、自学C语言等计算机辅助设计、图形图像、计算机编程、计算机基础等的自学知识点,应有尽有。2.办公资源一个专业的office教程网站。现在走到哪都要熟练掌握office技能,办公资 查看详情

不愧是github上标星120k的手册,内容不多,只讲重点

今天日常摸鱼的时候在GitHub上发现了这份标星120K的Java手册(现已标星129k),里面涵盖了Java所有的知识点,包括基础知识、Java集合、JVM、多线程并发、spring原理、微服务、Netty与RPC、Kafka、日记、设计模式、Java算... 查看详情

nacos安装教程(史上最详细保姆级教程)(代码片段)

...官方网址:https://nacos.io/zh-cn/1、下载安装包在Nacos的GitHub页面,提供有下载链接,可以下载编译好的Nacos服务端或者源代码:GitHub主页:https://github.com/alibaba/nacosGitHub的Release下载页:https://github.com/alibaba/nacos... 查看详情

史上最简洁kotlin版eventbus的使用教程(代码片段)

EventBus简介EventBus是一种用于Android的事件发布-订阅总线。他简化了应用程序内各个组件之间进行通信的复杂度。GitHub-greenrobot/EventBus:EventbusforAndroidandJavathatsimplifiescommunicationbetweenActivities,Fragments,Threads,Services,etc.Lesscod 查看详情

用http.get()简单实现网络验证防止客户不给尾款_电脑计算机编程入门教程自学

...发于:用http.get()简单实现网络验证防止客户不给尾款_电脑计算机编程入门教程自学http://jianma123.com/viewthread.aardio?threadid=428给软件加上网络验证是经常需要用到的实用功能,下面简单示范下怎么用http.get()简单实现网络验证,用来防止... 查看详情

龙叔拿了20几个offer,原因竟有些泪目...

...hub.com/midou-tech/articles点关注,不迷路!!!龙叔本人是非计算机专业毕业的,学的电子信息工程专业,对专业兴趣不大,到是对互联网技术兴趣很大(难道是三百六十行,行行转IT?[Smirk])。旁系搞技术,只能靠自学了。自学搞技... 查看详情

我是怎么自学git/github的?(代码片段)

大家好我是鱼皮,Git和GitHub是如今团队协作开发必不可少的技能,且不说程序员,就连很多产品也在学习它们。今天分享一下我自学Git和GitHub的经验,希望起到一个导学的作用,帮助大家抓住重点,节省时... 查看详情

你不可能知道的骨架屏玩法!

...大佬别进来了????,不、不,求吐槽、拍砖,瑞思拜。感谢昊神赐题????,不要怪ssh&# 查看详情

如何自学objectivec语言?

...。书看到后来还需要补充一些关于面向对象的知识,一般计算机专业的学生都是在学C++的时候接触这类思想的。我推荐的那本参考书里也会有一些讲解,进阶的学习需要以后再去看资料,没有特定教材,因为面向对象是一种编程... 查看详情

这恐怕是史上最简单的上传aar教程(代码片段)

在做项目的时候,抽出来一些工具方法,然后做其他项目的时候需要使用,只是后就有将这些工具方法抽出来单独形成一个库的需求了。在AndroidStudio里就是AAR。因为我是个人开发,想到方便的方法就是把AAR上传到本地maven库,用... 查看详情

史上最通俗易懂的理解云计算

“云计算”这三个字相信你一定听过无数遍了,那么我想问问你,“云计算”到底是什么?你能回答出来吗?首先我们听到云计算三个字时,感觉非常高大上,高不可测的,新技术等等,如果你没有接触过的,感觉离我们很远,... 查看详情

史上最通俗易懂的理解云计算

“云计算”这三个字相信你一定听过无数遍了,那么我想问问你,“云计算”到底是什么?你能回答出来吗?首先我们听到云计算三个字时,感觉非常高大上,高不可测的,新技术等等,如果你没有接触过的,感觉离我们很远,... 查看详情