以下一些别人的博客内容。强推最后一个指南
学一门动态语言、一门静态语言。
Python(动态)
作者自己写的Python学习步骤,还推荐一本书《Python Crash Course》
硬件层面
《The Elements of Computing Systems》 by Noam Nisan and Shimon Schocken:硬件、编译器、链接器和操作系统
算法、数据结构
大公司面试注重考查数据结构问题,推荐一本书《Introduction to Algorithms》。不限定语言的书籍,如果一定要限制使用语言的话,这有一部分推荐use JAVA或者use Python
网络知识
《Computer Networking: A Top-Down Approach》by Kurose和Ross,书籍包含网络基础知识。
操作系统Operating System
最好的项目之一:Operating Systems Conceptsby Abraham Silberschatz,需要一点C语言基础。如果不想成为kernel开发,就忽视遇到的难题,理解全部内容很花时间,理解主要的基础内容就够了。
OSDev Wiki:学习怎样创建自己的kernel,但很难
分布式系统Distributed Sysytems
这个blog是最推荐的学习,或者是书by Martin Kleppmann,学习理论,也通过研究分布式系统项目来加深学习。
机器学习
程序语言:JAVA或者Python
Bootd.dev’s Basic Intro to Coding Courses
Edabit JavaScript Challenges
A Byte of Python
The Python Tutorial
Python for Everybody
计算机架构和硬件
eBook: Computer Organization and Design
Binary and Hexadecimal (Kahn Academy)
Azeria Labs Writing Arm Assembly
算法和数据结构
Boot.dev’s Big-O Algorithms course
Boot.dev’s Big-O Data Structures course
Boot.dev’s Advanced Algorithms course
Data-Structures & Algorithms with JavaScript
Steven Skiena’s Video Lectures
“Algorithms” book by Dasgupta
CS中的数学
Kahn Academy’s Linear Algebra
Concrete Mathematics Book
Discrete Mathematics - On Open Introduction
Statistics 110: Probability (Stanford)
数据库
W3 Schools SQL Tutorials
ElasticSearch (NoSQL) Tutorials
eBook: Database Design and Relational Theory
Relational databases and SQL: edX
Web开发
建议使用没有框架的GO编程语言学习后端API。我还建议使用Vanilla JS以及另一个使用Vue.js或React.js建立前端。这种做法是值得的,不要跳过Vanilla JavaScript!
Go Mastery - For Backend
The Odin Project - Comprehensive Web Tutorials
图形学编程
入门级:OpenGL;进阶级:Unity,Unreal Engine。基于浏览器的工具:WebGL。
gltut - OpenGL tutorials on Github
Book: 3D Math Primer for Graphics and Game Development
Book: Real-Time Rendering, Fourth Edition
Book: Ray Tracing in One Weekend by Peter Shirly
函数编程
Boot.dev’s Intro to Functional Programming course
eBook: Common Lisp: A Gentle Introduction to Symbolic Computation
计算机理论
eBook: Sipser’s Introduction to the Theory of Computation
Dan Gusfield’s Lectures on YouTube
Online LaTeX Editor: Overleaf
ADUni.org lectures and resources
额外学习:
密码学:有价值的工程师不仅需要了解最佳的安全实践,而且还需要了解这些最佳实践的工作方式和原因。
Boot.dev’s Practical Cryptography course
Christof Paar’s Youtube Lectures
网络
Lectures on YouTube, Kurose and Ross 5th Edition
FreeCodeCamp’s 9-Hour Course
编译器
eBook: Compilers: Principles, Techniques and Tools
Let’s Build a Compiler Tutorial
分布式系统
项目代表:Kubernetes, ElasticSearch, Kafka
Boot.dev’s Go Mastery course
Dixie State’s Chord Assignment
Google’s BigTable Research Paper - Read and take notes!
Understanding Paxos
操作系统
Dixie State’s Sharks and Divers Exercise
eBook: Operating System Concepts
Learn a systems language like Rust: Tour of Rust
机器学习
Artificial Intelligence, a Modern Approach
Keras Tutorials
CS61A:使用Python讲Structure and Interpretation of Computer Programs (SICP)