SchelleyYuki

Java学习资源精选

不同的学习目标,对应的学习路线也不同。接下来,我将为各种学习目标,推荐最适合的学习资源。

This post contains my affiliated links. I may receive compensation if you make a qualifying purchase through my link. 

想系统性地学习Java

如果你想系统性地学习Java,通过做高质量的实战项目把Java基础打扎实,可以订阅Udacity的 《Become a Java Programmer》 课程。课程链接 http://schelley.co/java  。如果感兴趣购买此课程,别忘了先去 Udacity折扣码 这个页面领取Udacity折扣码,最高可拿到二五折优惠

《Become a Java Programmer》这门课的视频讲解带中文字幕,课程分为三大模块, 分别是Java基础,高级Java技术, 以及大厂们常用的Java开发工具。每个模块都会带你做一个实战项目, 确保你把知识点融会贯通。

一开始Java基础这个模块的实战项目是开发一个酒店预订系统, 训练你使用Object-Oriented的方式来设计实现一个复杂软件。

接着, 高级Java技术这个模块的实战项目是给你一个单线程网页爬虫的代码, 让你把它改造成一个多线程爬虫来提升它的性能, 并让你写一个Profiler来测量新爬虫带来了多少倍的性能提升。这个项目会给你带来多重的价值, 它既让你明白了一个网页爬虫的工作原理和实现细节, 又让你掌握了Java并发编程这个高级工程师必备的技能, 还让你实践了在项目中使用Maven, Guice, JUnit这些在Java岗位常用的开源技术。把这样的项目经历放到你的简历上, 是非常加分的。

课程最后一个模块的实战项目, 是给你一个有bug的项目代码, 让你通过多种技术手段, 比如增加unit test覆盖率, 引入static analysis, 来修复这些bug, 并使得未来新bug的产生变得更困难。这个项目高度模拟了一个高级工程师的部分职责, 通过自动化工具降低出bug的几率, 保障你整个团队的输出质量。

另外, 你在课程里做的每个项目都会有专人审阅, 并以很高的标准对你的代码提出改进意见。你可以无限次提交, 不断获得新反馈,这种无限良性循环带来的提升, 会远远超过你在学校上课时获得的提升, 因为学校的作业和项目只能提交一次。这个project reviews服务不是这门Java课独有的。Udacity所有nanodegree课程都有project reviews, 这也是Udacity课程最厉害的地方。

《Become a Java Programmer》的折扣链接是 http://schelley.co/java 。

想用Java练习刷题

如果你已经有不错的Java基础了,用练习使用Java刷题,那么,取决于你的算法功底,有对应的最适合你的学习资源。

详情见 算法面试学习资源和折扣码 一文。

我的编程相关影片(YouTube)