• 源于众多朋友、同学和学弟(对没有学妹)请教过 Java 学习路线的相关问题
  • 在这篇博客中对曾经使用到或者收集的教程和优秀博客进行一个汇总
  • 主要从各大编程语言入门的角度,同时也更新各个方向的相关技术栈
  • 持续更新ing

编程语言导向篇

  • 对于绝大部分未曾深入了解计算机和软件行业的各领域的人而言,往往可能都是以编程语言为导向开始的;以及在面对众多的招聘广告时,往往也是以 C++/Java/Python/PHP 工程师等字眼来进行岗位的总结,在相关技能描述中往往也会涉及到具体的编程语言;所以很多时候可能大家都是以我要学会“某种或者某几种编程语言”为导向来开始学习的,故在此以编程语言分类的方式来进行展开。
  • BTW,在对相关领域以及各类语言都有了一定的了解之后,很容易地就会发现其实编程语言永远都只是一项工具,比起国内很多程序员每天喋喋不休地争论哪种语言是最xxx的,还不如多花时间去了解每门语言自己所对应的独特的魅力。

Java

  • 个人路线推荐:Java 面向对象基础篇 -> 设计模式和常用库 -> Spring全家桶 -> 中间件(消息队列/缓存)-> 微服务/分布式组件 -> JVM 性能调优
  • 可以多利用 Github,阅读优秀开源项目的源码实现,如有机会可积极参加相关开源项目的实现。

学习路线和教程

  1. 可参考 Github 上的优秀 Java 学习手册 [Snailclimb/JavaGuide],其中涉及到了方方面面(从 Java 基础到计算机领域相关基础知识,再到实际的框架和中间件等,均有狩猎),甚至是面试相关,且长期维护,值得参考。
  2. 可参考知乎问题 [Java 学习线路图是怎样的?]Hollis具体回答 <-Click,该答案详细介绍了各个阶段对应的知识点,十分详细,但也无须全盘照搬,更多的需要结合实际项目中的需要再进行针对性的学习,但在开始阶段对各个知识点也要有一定的概念;
  3. 针对日常开发中最常使用到的 Java 开发框架 Spring,也有优秀的教程。可参考 Github [wuyouzhuguli/SpringAll]。主要涉及了 Spring 系列全家桶的某些具体应用,可供参考。
  4. 知乎上有很多 Java 相关的专栏,可以根据需求进行具体的检索。

入门方式

  1. 对于无太多相关领域基础的童鞋,建议视频入门或者博客入门的方式;
  2. 对于有一定基础以及习惯阅读英文文档的同学,建议从相关工具和框架的官方教程以及手册入手进行深入学习。
视频篇:
  • [1] 慕课网:Java/Spring篇。该类教程更适合于相关方向的入门,便于了解各个知识点的概念以及应用,教程也相对简单,但在深度方面会有所欠缺。
  • [2] 尚硅谷:Java 学习路线篇。该类教程是培训机构设置的相关课程,其视频资源可通过百度网盘等方式找到。该类视频类似于手把手教学,适合入门,不适合长远的学习,需要自己进行总结和探索。
  • 视频方式,最重要的一点是需要跟随视频,自己动手实现相关示例,才能保证学有所得。
博客篇
  • [1] 程序猿DD。博主翟永超出版过Java和Spring相关的书籍,同时也常常发布系列教程。
  • [2] 纯洁的微笑。博主比较结合前沿,主要针对现在行业内使用到的相关技术(如微服务框架等)做系列教程。
  • [3] Baeldung。国外优秀的Java教程博主,更接近原生的方式进行教学,具有一定的特色,同时可以订阅。
  • 博客的方式,往往更接近实际的操作,所以需要自己动手实现,而不是简单的ctrl+c/v。出现问题时,针对具体问题具体分析,不断归纳总结。

深入学习

  • Github:互联网 Java 工程师进阶知识完全扫盲:内容涵盖高并发、分布式、高可用、微服务等领域知识,做了一个系统的整理,也可以在 issue 区查看面试相关的讨论。
  • Github:《后端架构师技术图谱》 :内容涵盖计算机科学的方方面面,但住要是以 后端工程师 作为职业导向,从基本的数据结构与算法到实际的应用层面的开发,再到相关基础架构设计和其他除后端以外的系统层面的领域知识。
  • 深入学习主要参考相关技术的官方文档或者手册。一般都可通过搜索引擎获得。如 [Spring IO]。工具或者框架的新版本特性往往通过官方手册和文档进行发布,国内外优秀的教程也往往都是参考了官方手册并实践进行撰写的。
  • 针对某些工具的具体模块的实现,往往需要自己去看相关源码实现,可以结合他人博客中对于该模块的理解进行思考。可借助搜索引擎实现。

Python 篇

  • Python 其实不用太多编程语言的基础,只需掌握的基本的数学逻辑相关思想即可。当然有一定的其他的编程语言基础,对Python的上手应该更加有利。由于本人非Python作为主力语言,所以只能根据自己的一些学习路线和实际需求来大致介绍相关流程。
  • 路线:Python3 基础教程 -> Python 相关库(爬虫、Web等)

入门教程

  • 基础教程可以参考 廖雪峰:Python 3 教程,廖老师的教程其实已经涉及到了一部分相对高级的语法和操作,例如连接数据库和简单的 Web 开发等,可以一步步动手按照教程的顺序进行学习。
  • Github Python - 100天从新手到大师 该教程除了讲解 Python 的相关知识以外,更多是的以一个 Python 工程师为职业导向的学习路线,如果有志于未来从事 Python 相关的工作可以参考该教程,除了编程语言以外,也涉及到了计算机科学领域其他方方面面的教程。

高级教程

  • 主要是针对现如今 Python 在人工智能领域内不可或缺的地位,很多同学都有志于在算法方向上有长足的发展,故可能需要学习 Python,其实此时更多的是针对 Python 的一些自然语言处理、大数据处理等第三方库的学习和使用,此类教程也不胜枚举。例如 Github:莫烦 PythonGithub ApacheCN:AILearning