目录
前言
来自小编的建议
JAVA 该学习的哪些技术?
初中级 Java 程序员必须掌握的知识
Java 程序员必备书单
基础
并发
JVM
推荐的视频教程
前言
我听说编程语言,经常使用的是其中20%的技术。在Java这门语言中,这20%包括哪些内容?参加培训两个月了,还有两个月的时间,要想在两个月后,找到一份Java初级程序员的工作,有哪些是必须掌握的,有哪些是可以现学现卖的?一个完整的Javaweb项目,有哪些具体模块,每个模块用到的技术是哪些?
来自小编的建议
建议不要管那个常不常用的这些问题!技术一直在不断更新,学习是永不止境的,每个技术阶段虽然都有对应的常用技术需要学习,但是单单学习几个单个的技术是远远不够的。如果你想找工作就要老老实实的学,
操作系统、计算机网络这些基础知识,工作之后基本都忘的差不多了。但是,我个人觉得也还是要学的。很多人都说数据结构和算法就像一个程序员的内功,前期可能你看不出来,等到后面你再和那些算法和数据结构厉害的人比可能就会相形见绌。所以,我觉得除了应付找工作之外。搞好基础知识。如果非要学那些常用,我个人觉得:Spring、Hibernate、Mybatis 等框架、Dubbo、Zookeeper、常见的消息队列(比如Kafka、RocketMq)的使用、缓存Redis、MySQL等等这些东西都应该是每个Java初中级程序员必备的技能了吧!
JAVA 该学习的哪些技术?
很多初学者或者有经验的开发者都会陷入这个泥潭:“不知道自己该学什么?”。
我觉得最简单的方法就是你去招聘官网上看看公司要求什么技能,比如初级 Java 工程师的招聘要求肯定和高级 Java 工程师的招聘要求不一样,阿里的 Java 工程师的招聘要求肯定和 普通公司的Java 工程师招聘要求不一样。
初中级 Java 程序员必须掌握的知识
- 熟练掌握数据结构、算法、操作系统、计算机网络等基础知识
- 熟练掌握Java编程、熟悉Java高并发开发手段、对JVM 虚拟机(Java内存区域、虚拟机垃圾算法、虚拟垃圾收集器、JVM内存管理)有一定研究
- 熟练掌握SOA分布式系统开发,具有优化系统性能、提高系统并发量以及系统可用性的实际经验
- 熟练掌握Spring、MyBatis、SpringBoot等框架的使用,熟悉 Spring 原理比如 Spring Bean 的创建原理、IOC和AOP的原理。另外,由于现在基本公司都是直接用 Spring Boot ,所以实战建议直接上手Spring Boot。SSM就算了吧,Spring 还是可以看一下。的,《spring 实战》这本书就行。
- 熟练掌握Dubbo、Zookeeper、常见的消息队列(比如Kafka、RocketMQ)的使用
- 熟悉Linux 系统的使用,在Linux系统下具有实际的开发经验
- 熟悉MySQL数据库的使用、常见SQL语句的书写以及常见的优化手段
- 熟练掌握 Redis 了解Redis 常见的数据结构、Redis分布式缓存以及Redis分布式锁的实际应用
- 掌握 Spring Cloud +Docker+k8s
- 了解Hadoop 生态相关技术中的 HDFS、Storm、MapReduce、Hive、Hbase
我们再来看一下腾讯Java高级开发工程师的招聘要求,年薪至少40w起步了吧!从下面的招聘信息可以看出,除去Java基础/集合/多线程这些,这些能力格外重要:
- 底层知识比如jvm :不只是懂理论更会实操;
- 面向对象编程能力 :我理解这个不仅包括“面向对象编程”,还有SOLID软件设计原则。
- 框架能力 :不只是使用那么简单,更要搞懂原理和机制!搞懂原理和机制的基础是要学会看源码。
- 分布式系统开发能力 :缓存、消息队列等等都要掌握,关键是还要能使用这些技术解决实际问题而不是纸上谈兵。
- 不错的sense :喜欢和尝试新技术、追求编写优雅的代码等等。
再从应届生的角度来看: 我们还是看阿里巴巴的官网相关应届生 Java 工程师招聘岗位的相关要求。
结合阿里、腾讯等大厂招聘官网对于 Java 后端方向/后端方向的应届实习生的要求下面几点也提升你的个人竞争力:
- 参加过竞赛( 含金量超高的是 ACM );
- 对数据结构与算法非常熟练;
- 参与过实际项目(比如学校网站)
- 熟悉 Python、Shell、Perl 其中一门脚本语言;
- 熟悉如何优化 Java 代码、有写出质量更高的代码的意识;
- 熟悉 SOA 分布式相关的知识尤其是理论知识;
- 熟悉自己所用框架的底层知识比如 Spring;
- 有高并发开发经验;
- 有大数据开发经验等等。
从来到大学之后,我的好多阅历非常深的老师经常就会告诫我们:“ 一定要有一门自己的特长,不管是技术还好还是其他能力 ” 。我觉得这句话真的非常有道理!
刚刚也提到了要有一门特长,所以在这里再强调一点:公司不需要你什么都会,但是在某一方面你一定要有过于常人的优点。换言之就是我们不需要去掌握每一门技术(你也没精力去掌握这么多技术),而是需要去深入研究某一门技术,对于其他技术我们可以简单了解一下。
Java 程序员必备书单
基础
《Head First Java》可以说是学Java的启蒙书籍了,特别适合新手读当然也适合我们用来温故 Java 知识点。
《Java 核心技术卷 1+卷 2》(推荐): 很棒的两本书,建议有点 Java 基础之后再读,介绍的还是比较深入的,非常推荐。这两本书我一般也会用来巩固知识点,是两本适合放在自己身边的好书。
《JAVA 网络编程 第 4 版》可以系统的学习一下网络的一些概念以及网络编程在 Java 中的使用。
《Java 编程思想 (第 4 版)》大部分人称之为Java领域的圣经,但我不推荐初学者阅读,有点劝退的味道。稍微有点基础后阅读更好。
并发
《Java 并发编程之美》非常不错的一本书籍,对每个知识点的讲解都很棒。
《Java 并发编程的艺术》这本书不是很适合作为 Java 并发入门书籍,需要具备一定的 JVM 基础。我感觉有些东西讲的还是挺深入的,推荐阅读。
《实战 Java 高并发程序设计》书的质量没的说,推荐大家好好看一下。
《Java 高并发编程详解》内容很详细,但可能又有点过于啰嗦
JVM
《深入理解 Java 虚拟机(第 2 版)周志明》作为入门的了解 Java 虚拟机的知识还是不错的。
需要电子书的同学可以 点我 免费领取哦 !
推荐的视频教程
全网首发----Java核心技术全集
B站最全的spring全家桶技术
文章到此就结束了!
最后来自小编的福利
以下是小编整理的Java高并发必看的【Java并发编程的艺术】资料大礼包,需要领取的小伙伴可以 点我 免费领取 ,编程的世界永远向所有热爱编程的人开放,这是一个自由,平等,共享的世界,我始终是这样坚信的。
部分资料图片:
喜欢小编的分享可以点赞关注哦,小编持续为你分享最新文章 和 福利领取哦