俗话说,人红是非多。语言也是一样。
毕竟一直以来Java都是主流的开发语言,出现二十多年以来,Java依然拥有世界上数量最多的程序员,在编程语言的鄙视链条上也一直处于顶端
这一点在大厂面试中同样体现的淋漓尽致,很多人在面试谷歌、亚麻等大厂的时候,都会被要求Java优先。点开谷歌亚麻等大厂软件工程师岗位的招聘,Java的出现频率高达90%。


确实,根据最新统计的编程语言岗位数量及薪资对比Java的职位空缺数量始终排行第一

就业市场上对Java的招聘需求,达到了总需求量的60%到70%,平均薪资也是位列前列是最容易找到高薪工作的编程语言之一。

为什么大厂都偏爱Java?
作为一种面向对象的编程语言,Java的可移植性比较高,最初设计时就是本着一次编写到处执行设计的,可以用来开发各种应用程序和游戏。
而且,经过了长达24年的积淀,这一个语言已经有了很多的使用实例可供参考,并且能够跨平台使用,这让它在变得越来越难以取代,这也是Java能受到各家大厂青睐的原因。
刷题的天选语言
当然,对求职者来说,Java的确是刷题的“天选语言”。就拿三种最常被用来刷题面试的语言对比:
- C++:主要应用于无人驾驶方面,和一些底层方面,还有金融等;
- Python:主要侧重于Data Science,所以如果往这方面方向发展,选择python比较好;
除了这些特定领域外,剩下就全是Java的天下了,毕竟,市面上Java 和上面两门语言的比例大概为 6:2:2 左右。所以,如果要把刷题和工作联系起来,那还是选择Java吧。
论学习成本,C++ > Java > Python,用C++刷题会遇到很多语言坑,考虑的东西比其他两个多太多,面试一紧张指针引用地址搞错了崩了就惨了;Python刷题简单,但不能不承认在以后工作中适用范围比较窄,所以可以用作入门,但不能作为全部。
Java入门方法
推荐一个国外大佬的Java学习路线:



有条件的可以看看完整视频:油管链接
Then,Java相关学习资源,请收好~
Java学习网课资源
CodeGym :一个在线Java编程课程,80%的内容是练习,适合一窍不通的入门者。

Wibit Online Java Courses :一个非常有趣的编程学习网站,各种生动的动画形象能让人忘记学习的枯燥。在线视频学习,非常适合零基础。

stanford CS106A: Programming Methodology :斯坦福经典课程系列,完全没有编程经验,想学Java语言的,可以看看这个课程。

Bloombenc :一个在线交互式学习平台,老师可以根据你的学习能力和节奏修改他们的教学方法,还可以在平台上编码。

CodeAcademy :比较实用的Java在线课程,注重的是在找工作时非常有用的技术能力。

PLURALSIGHT:整合了很多Java的视频课程,部分免费,部分付费,可以根据自己的需要挑选。

Lynda Online Java Training Videos:Java进阶课程,包括如何使用JDBC来集成MySQL数据库,Reflection API,管理文件和目录等。

九章基础算法班(Java):中文在线互动课,随时开始学习。是Java和算法的结合课程,由硅谷资深Java工程师讲授,非常适合从零开始学习Java、算法与数据结构,或有转专业找工作需求的小伙伴们。

Java学习相关网站
BeginnersBook:Java初学者免费教程,有稍微一些编程基础之后,可以跟着文档里的代码练习。

docs.oracle.com/javase/tuto…:官方Java指南,对了解几乎所有的java技术特性都非常有帮助。

JournalDev:Java相关教程及问答

JavaWorld:最早的一个Java站点,每周更新Java技术文章。

developer.com/java :由Gamelan.com 维护的Java技术文章网站。

IBM Developerworks技术网站:IBM的Develperworks技术网站,这是其中的Java技术主页

Java书籍推荐
Java语言本身:
入门

真正的入门书籍,轻松搞笑,可以通过玩游戏、拼图、解谜题以及一些意想不到的方式与Java交互,再也不怕“从入门到放弃”。
如果你没有学过其他语言亦或是转行到计算机行业,可以先看看这本书。这本书图文并茂条理清晰,非常容易理解,练习也足够,可以让你一口气读很久而不会觉得有什么地方遗漏或者根本没记住。而且这本书可以让你从语言基础开始一直学习到包括线程、网络与分布式程序等项目,最重要的是,你将学会如何像个面向对象开发者一样去思考。
《疯狂Java讲义》

可以算是国人原创必读经典了,同样非常适合初学者。讲解内容细致全面,系统通俗,目录划分和查找非常方便,就算完全没有基础也可以学的没有什么压力。同时这本书还考虑了Java的版本升级,非常贴心。
进阶
《Java编程思想》

这是一本所有的Java学习者都无法避开的经典之作,被誉为全球最好的Java书籍。不同水平的人读这本书也会有不同的感觉,初学Java的时候也许会觉得学的非常慢,当你编程了一段时间之后再看这本书,你就会发现,你编程中遇到的问题在这本书中有很多的体现,这时候大概就是你进阶的时候了,你读这本书也会变得比从前轻松和愉快了。编程几年之后再看这本又会是怎样的感觉呢?不妨拭目以待。
《Java核心技术》

作为与《Java编程思想》齐名的大全式图书,这本书的内容更加细致,偏重与讲解Java计数,举例说明了大量API,内容翔实、客观准确,不拖泥带水,所以相比于《Java编程思想》,更注重于实用性。而且这本书全面而且易懂,放在案旁用到的时候查一查、看一看,也是Java初学者和Java程序员的必备参考书。

谷歌首席架构师的大作,也是一本经典。介绍了在Java编程中78条极具实用价值的经验规则,揭示了应该做什么,不应该做什么才能产生清晰、健壮和高效的代码,并通过例子代码加以进一步说明,这些经验规则涵盖了大多数开发人员每天所面临的问题的解决方案。
初学者读这本书可能没有太深的体会,当你有那么一两个项目的经验,再读这本书,就会发现书中提到的某个规则就是你在很多次工作经验后总结出来的最准确的描述方式
不过,这本书的中文版翻译不太好,有能力的话可以看原版。

Java性能方面可能最好的一本书。深入介绍了JIT编译器、垃圾收集算法、线程同步等复杂问题,讲解了很多应用性能分析以及优化的方法,详尽讲解了Java性能调优的相关知识,帮助读者深入理解Java平台性能的各个方面,适合所有想了解性能优化的Java程序员。
以上是一些基于Java语言本身的书籍推荐,然而,作为一名工程师,从编写可读的代码,到重构现有的代码,再到设计模式,是编码的必备法则。
重构与设计模式:

HeadFirst 系列的另一本书《HeadFirst 设计模式》,同样是一本非常适合入门设计模式的书籍,没有之一。这本书介绍 了23 个设计模式,同样采用场景对话、打比方的方式来讲解,巧妙地让设计模式的理论在实际应用中体现出来,淡化了抽象性。
《设计模式》

设计模式领域的开山鼻祖,必读,并且值得多读几遍。虽然其中的例子是C++写的,但也很适合Java学习者读。
《设计模式解析》

如果你觉得《设计模式》太晦涩难懂,《Head First Design Pattern》又太不技术书籍了,那么这本《设计模式解析》就非常适合你。本书每章结束时都有小结和启发性复习题,可以帮助你更好地了解自学得如何了。而且这本书只介绍了几种比较常用简单的设计模式,因而在学习过程中会很有成就感。

好的代码是重构出来的,而不是一开始就写出来的,除非你的代码不用于任何业务。本书从一个重构实例开始,用代码和实例配合讲解了各种耳熟能详的重构方法,非常到位,总之,是一本程序员必读书目,书中的示例代码都是java写的。
《代码整洁之道》

篇幅不大,但却能让人受益匪浅。书中给了很多方法与规范,遵循它们可以写出整洁的代码。如何为函数,变量,类型准确的命名,如何减少注释做到代码即文档,如何通过良好的编程规范减少错误的代码等等,这些都需要在工作学习中总结经验形成习惯。
最后,献上一张Java技能图谱:

最后,给大家送一波算法课福利~
《线段树与树状数组》这门原价$199的课程,现在免费即可获得!
参与方式:
- 戳我免费试听后,添加九章Sunny微信jiuzhang15
- 回复【掘金线段树】+试听报名截图