GitHubGitHub上最励志的计算机自学教程:8个月,成百万年薪软件工程师


十三 贾浩楠 发自 凹非寺
量子位 报道 | 公众号 QbitAI
谷歌工程师条件:名校出身、CS专业背景、博士学位加持 , 技术过硬?
国外一个叫John Washam的小哥告诉你:不用 , 自学8个月也可以!
John Washam励志要成为一名谷歌软件工程师 , 但没有CS专业背景的他 , 只能通过自己的努力来达成理想 。
于是 , 8个月的时间里 , 小哥花了数千小时阅读书籍、编写代码、观看CS技术讲座 , 一路披荆斩棘、打怪升级 。
最终 , 虽然没有去谷歌 , 但他人到中年 , 还顺利成为了一名亚马逊AWS的技术专家 , 年薪百万 。
更加难能可贵的是 , 小哥还将自学经验编写成了一份教程 , 在GitHub上线以来 , 已收获近10万星的好评 。
GitHubGitHub上最励志的计算机自学教程:8个月,成百万年薪软件工程师
本文插图
正如他所说:
即便没有面上(?)梦寐以求的谷歌 , 但是教程 , 也可以用来好好充实一下自己 。
PS:教程有中文版哦~~
GitHub超10万星自学宝典
是什么样的编程教程 , 能如此火爆?
小哥最初的目的是“考上”谷歌 , 于是每天自学8-12个小时 , 坚持了8月有余 。 边学还顺手整理出了这份自学项目 。
不过在完成这项学习计划后 , 他最终被亚马逊录取 , 成为一名软件工程师 。
Washam表示:
无论你要面试哪家软件公司 , 这里的项目可以让你做好充分的准备 , 包括像亚马逊、Facebook、谷歌和微软这样的科技巨头 。
接下来 , 我们就跟着Washam的脚步去了解一下这份面试宝典 。
选择语言、必备知识资源
首先要做的就是选择一门语言 , 在Google一般是C++、Java、Python , 有时也会用到JavaScript、Ruby 。 背后还有一些如SQL、HTML等技术没有列出 。
接着开始学习计算机硬件知识:
GitHubGitHub上最励志的计算机自学教程:8个月,成百万年薪软件工程师
本文插图
然后补充计算机专业的基础数学知识 , 如算法复杂度 / Big-O / 渐进分析法、数据结构、树、排序、图论 。
GitHubGitHub上最励志的计算机自学教程:8个月,成百万年薪软件工程师
本文插图
此外还有递归、动态规划、组合与概率、NP&NP-完全和近似算法、缓存、线程与进程、系统设计、可伸缩性、数据处理 。
看到这么多知识点 , 你会不会觉得有点懵呢?Washam告诉你一点小技巧 。
因为你不可能一遍就记住所有知识点 。 所以需要把要回顾的知识点做成抽认卡 (flashcard):正常的及带有代码的 , 类似于背单词 。
GitHubGitHub上最励志的计算机自学教程:8个月,成百万年薪软件工程师
本文插图
每种卡都会有不同的格式设计 。 项目主页中就有抽认卡的源代码 , 可以根据自己的学习特点去制作 。
Washam还留有一组 ASCII 码表、OSI 堆栈、Big-O 记号及更多的小抄纸 , 以便在空余的时候可以学习 。 每编程半个小时就要休息一下 , 并去回顾你的抽认卡 。
当然 , 论文的阅读也是必不可少的 , 尤其是谷歌曾经发表的一些基础技术论文 。
GitHubGitHub上最励志的计算机自学教程:8个月,成百万年薪软件工程师
本文插图
书籍则推荐一些关于算法和C++编程之类的 。
GitHubGitHub上最励志的计算机自学教程:8个月,成百万年薪软件工程师
本文插图
Google面试注意事项
面试的第一步当然是要有一份好的简历 , 这样才能为你争取到宝贵的面试机会 。 知名科技博主Steve Yagge给出了10个贴士 , 帮你做出一份还不错的简历 。
GitHubGitHub上最励志的计算机自学教程:8个月,成百万年薪软件工程师