教育改变生活
标题:
Java 程序员该学习哪些东西
[打印本页]
作者:
李玮
时间:
2020-4-17 10:49
标题:
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软件设计原则,相关阅读:
《写了这么多年代码,你真的了解SOLID吗?》
框架能力
:不只是使用那么简单,更要搞懂原理和机制!搞懂原理和机制的基础是要学会看源码。
分布式系统开发能力
:缓存、消息队列等等都要掌握,关键是还要能使用这些技术解决实际问题而不是纸上谈兵。
不错的sense
:喜欢和尝试新技术、追求编写优雅的代码等等。
再从应届生的角度来看:
我们还是看阿里巴巴的官网相关应届生 Java 工程师招聘岗位的相关要求。
结合阿里、腾讯等大厂招聘官网对于 Java 后端方向/后端方向的应届实习生的要求下面几点也提升你的个人竞争力:
参加过竞赛( 含金量超高的是 ACM );
对数据结构与算法非常熟练;
参与过实际项目(比如学校网站)
熟悉 Python、Shell、Perl 其中一门脚本语言;
熟悉如何优化 Java 代码、有写出质量更高的代码的意识;
熟悉 SOA 分布式相关的知识尤其是理论知识;
熟悉自己所用框架的底层知识比如 Spring;
有高并发开发经验;
有大数据开发经验等等。
从来到大学之后,我的好多阅历非常深的老师经常就会告诫我们:“ 一定要有一门自己的特长,不管是技术还好还是其他能力 ” 。我觉得这句话真的非常有道理!
刚刚也提到了要有一门特长,所以在这里再强调一点:公司不需要你什么都会,但是在某一方面你一定要有过于常人的优点。换言之就是我们不需要去掌握每一门技术(你也没精力去掌握这么多技术),而是需要去深入研究某一门技术,对于其他技术我们可以简单了解一下。
欢迎光临 教育改变生活 (http://bbs.goldoar.com/)
Powered by Discuz! X3.2