学习路线图-施工中

"What I cannot create, I do not understand" - Richard Feynman.

制定个计划,让自己不再迷茫。

每天投点时间进去。

从找点事做,到更好的发挥有限时间的价值,是接下来要考虑的。要做的事情越来越多,可支配的时间却越来越匮乏,需要时间去思考,如何发挥时间/付出的价值。

定期的复盘也是需要提上日程的。


不去考虑现在能否抽出时间做某些事情,先开始,之后自然能挤出时间,一直等有时间了,只会一直等下去。


感觉收获很多,
一是处在管理岗位,确实应该有很多管理上的能力,得加强学习,不能两眼只盯着技术栈;
二是隔一段时间去面试下,避免坐井观天,活在自己的世界里;
最后,技术更迭变迁,但底层和原理是共通的,掌握了这些,才能走的更远。


那些赚到大钱的人,没有一个是靠时间换取收入的。他们要么通过积累资产致富,要么购买他人的时间,为自己创造财富。你应该警惕,不要落入”时间换取收入”的陷井,不要只顾着为别人生产代码,而要注意积累自己的资产,以及适时开展属于自己的业务。 —转自:阮一峰


🔗收藏:

Teach Yourself Computer Science

OSSU ( Open Source Society University )

计算机专业推荐书:https://github.com/CodingDocs/awesome-cs
面试准备及指导:https://github.com/Snailclimb/JavaGuide


计算机公开课


一、浙江大学
Github 地址:https://github.com/QSCTech/zju-icicles
二、B 站的公开课
Github 地址:https://github.com/elder-frog/OpenCourseCatalog


《计算机科学概论》finish

✨《计算机程序的构造和解释》 SICP – Structure and Interpretation of Computer Programs

  • UC Berkeley CS 61A
  • Programming by poking: why MIT stopped teaching SICP
  • 第一轮将使用汉化版,第二轮原版 + 视频
  • 持续进行中,lisp的认识、前缀表达式的认识,虽然很费时,但收获颇多
  • 前三章感觉还能看懂一些,但到第四章尤其是数据库部分,就有点看不懂了,还有些急躁,也许今年,也许明年,静下心来再看看这部分
  • 到第五章,开始讲寄存器和编译,感觉看的更急躁了,更加浮于表面,习题也几乎没做,感觉需静下心了,但初略看后,感觉这一章的收获依旧很多,还在进行,十一之后能完成。
  • 之后再看看函数式编程相关的文章
  • 编译原理也会提上日程

《数据结构与算法分析 Java语言描述》finish

  • (表、图、树 )–(AVL树、红黑树、DSL、AA树、KMP算法)
  • 这个与LeetCode上的算法相比,比较基础,且没有动态规划、位运算等部分,面向面试的算法学习还是要卷LeetCode才行。

✨《深入理解计算机系统》 CSAPP – Computer System : A Programmer’s Perspective

  • 处理器、内存、存储器、缓存、性能优化、IO、网络、汇编语言、C 语言、并发编程
  • 寄存器的各种操作指令是一个挑战,第二轮前需要看看汇编语言相关的书籍
  • 此书被各种推荐

《深入Java虚拟机》finish

  • 由于JVM在1.6、1.7、1.8都有调整,需注意下实效性
  • 只针对1.2版本,时效性不是很高,后续看看《深入理解Java虚拟机》
  • 方法执行的出/入栈,并不是Java特有,学算法的时候,将x86的指令执行也是基于栈的,方法/函数栈

《深入理解Java虚拟机》(finish)

  • 不负期待,这本的确很不错,并且基于Java 11 是学习JVM的不错的📚

《Java核心技术》(finish)

  • 略去Swing和AWT部分,与Swing类似的是JavaFX
  • Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。框架中进行了诸多的封装,为JavaWeb的开发提供了诸多的便利。
  • Java核心技术从一个偏低层的角度介绍Java,理解了这些,可以更好的理解这些框架的低层及原理

《编译原理》(龙书)

《计算机网络:自顶向下方法》finish

  • 应用层(应用层、表示层、会话层)、传输层、网络层、链路层、物理层. (七层 -> 一层)
  • 这里讲的内容,与准备面试时看的内容,会有些差集存在

《算法》(第4版)(have bought the book)

《算法导论》

《C Primer Plus》

《Think in Java》finish

《设计模式:可复用面向对象软件的基础》finish

  • 看的比较浅,后续回来再翻翻,并逐步用在项目中
  • 收获还是不少的,后续看看C++的基础语法,这样能更好的理解里面的例子

《重构:改善既有代码的设计》finish

  • 小步重构,每步进行Unit Test

《Java性能优化权威指南》finish

  • 前面讲述了性能相关的影响因素及JVM,性能监控、性能分析、性能调优

《英语》(complete round 1)

  • 词汇量、阅读、听力、口语
  • 这是一个持续的过程,期待一年能有提升,并长期持续下去(只是投入时间会少一些)
  • 耗时一年、完成round 1,收获不好说,但之后负担会轻一些

《高等数学》

《线性代数》

《概率论与数理统计》

《离散数学及其应用》

《汇编语言:基于x86处理器》

《计算机组成原理》(完成第一轮)

  • 组成原理的确如传闻,比较难
  • 如其名,主要讨论计算机各 大部件的基本组成原理 ,以及各大部件互连构成整机系统的技术,是其他课程的基础
  • 跟着课程虽然慢,但效果远比干看书好,先看书预习->再看课程->再完成课后题
  • 后续计划结合另一版的教材回顾

《操作系统导论》

《操作系统概念》(恐龙书)

  • 跟着视频过了一遍,后续有时间再看看教材,但还是先看 导论

《操作系统设计与实现》

《数据密集型应用系统设计》 Designing Data-Intensive Application – DDIA

《数据库系统概念》

  • 这本也是经典

《C程序设计》(第五版)(finish)

  • 这本是大学教材,通过这个来入门,感觉还可以
  • 库函数并不是C语言的一部分

汇编语言的学习,至少寄存器相关要了解一下

《Go 语言圣经》

《人月神话》

C

  • C只是入了门,了解了简单的语法
  • 接下来看看 《C Primer Plus》

Kotlin

  • Kotlin作为JVM Base的语言,有着许多Java很长时间内未有的Feature,从各种角度有了解的必要,并且依托Java的基础,学习曲线会平缓一些
  • 当前已了解Basic Syntax & Coroutines,更深入的会视机会继续

Go

ChatGPT

  • 如何使用,如何发挥价值,当前用来答疑还是很不错的
  • Copilot
SubjectWhy study?BookVideos
ProgrammingDon’t be the person who “never quite understood” something like recursion.Structure and Interpretation of Computer ProgramsBrian Harvey’s Berkeley CS 61A
Computer ArchitectureIf you don’t have a solid mental model of how a computer actually works, all of your higher-level abstractions will be brittle.Computer Systems: A Programmer’s PerspectiveBerkeley CS 61C
CMU 15-213/15-513
Algorithms and Data StructuresIf you don’t know how to use ubiquitous data structures like stacks, queues, trees, and graphs, you won’t be able to solve challenging problems.The Algorithm Design ManualSteven Skiena’s lectures
Math for CSCS is basically a runaway branch of applied math, so learning math will give you a competitive advantage.Mathematics for Computer ScienceTom Leighton’s MIT 6.042J
Operating SystemsMost of the code you write is run by an operating system, so you should know how those interact.Operating Systems: Three Easy PiecesBerkeley CS 162
Computer NetworkingThe Internet turned out to be a big deal: understand how it works to unlock its full potential.Computer Networking: A Top-Down ApproachStanford CS 144
DatabasesData is at the heart of most significant programs, but few understand how database systems actually work.Readings in Database SystemsJoe Hellerstein’s Berkeley CS 186
Languages and CompilersIf you understand how languages and compilers actually work, you’ll write better code and learn new languages more easily.Crafting InterpretersAlex Aiken’s course on edX
Distributed SystemsThese days, most systems are distributed systems.Designing Data-Intensive Applications by Martin KleppmannMIT 6.824

书名计划一轮二轮
《Think in Java》/《On Java 8》2020
《计算科学概论》2020
《数据结构与算法分析》2020~2021
🌟《深入理解计算机系统》/《CSAPP》20242021
《计算机网络:自顶向下方法》2021
《Java核心技术》2021
《深入Java虚拟机》/《深入理解Java虚拟机》2022/2023
《算法(第4版)》
《设计模式》2022
《Java性能优化权威指南》2022
《重构》2022
《C Primer Plus》
《408-数据结构》2023
《408-操作系统》2023
《408-计算机组成原理》2022~2023
《408-计算机网络》2023
🌟《计算机程序的构造与解释》/《SICP》2023
《数据密集型应用系统设计》/《DDIA》2023
《数据库系统概念》2024
《领域驱动设计》/《DDD》2023

Leave a Reply

Your email address will not be published. Required fields are marked *

1 comment

  1. The End of an Era

lWoHvYe 无悔,专一