阿里架构师谈:工作三年的Java程序员应该达到什么水平?

2024-05-09 15:08

本文主要是介绍阿里架构师谈:工作三年的Java程序员应该达到什么水平?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近,又是跳槽换工作的黄金季节,也就是大家俗称的「金九银十」。

有的读者可能会问为什么呢?那我就来给你说道说道。

对于大公司而言,会在如下两个时间节点之前进行对员工一年的绩效考核和奖金发放。

以12月31日为财年的,1月份考核统计,2月份发奖金,3-4月份面试/跳槽。

以6月30日为财年的,7月份考核,8月份发奖金,9-10月份面试/跳槽。

因此,这两个时间段是大多数程序员跳槽的高峰期。但是,无论如何建议大家做好自己的职业规划,不要为了跳槽而跳槽,眼光要放长远一点,千万不要裸辞。。。

好了,言归正传,本文主要回答一个读者的提问。

问题:一般工作的三年的程序员应该达到什么样的水平才算合格呢?

下文的答案是我工作这些年的一点经验分享,希望对你跳槽有所帮助。

对于工作三年的 Java 程序员来说,不一定非得要你「举一反三」,你应该要达到「举一反一」的效果。

我之前就跟我的很多读者说过,大多数人干了三年还抵不上别人干一年,这也就是大多数 Java 程序员所面临的瓶颈 —— 「高不成低不就」。

我觉得要突破这个瓶颈你可以从如下三个方面来提升。

一、工具

你一定要熟练一款操作系统,一款 Java 开发工具,一款浏览器,Bug 分析工具,性能分析工具等。

对于操作系统而言,我建议你用 Mac ,因为它是类 Unix 系统,方便你熟悉 Linux 命令,因为你所开发的 Java 项目,95% 以上都是跑在 Linux 上面,这样面试的时候,也不至于面试官问你几个常见的命令而不知所云。

对于 Java 开发工具而言,我建议使用 IDEA,原因很简单,想比于其它工具而言,它会更懂你。

对于浏览器而言,毫无争议的建议你用 Chrome。

对于 bug 分析工具而言,太多了,有 Java 自带的jdb、jinfo、jps、jstack、jmap、jstat、jconsole、jvisualvm 等,也有商用 JProfiler,还有动态跟踪的btrace 等。

对于性能分析工具,我建议你掌握两款 ab 和 jmeter 足矣。

二、Java 基础

作为一名 Java 程序员,你一定要对 Java 语言掌握的非常熟悉,熟悉到常见类的用法,在什么样的环境应该用什么样的类,以及要明白为什么要这么用。

比如 Java 的数据结构,字符串、数组、List、Set、Map等。你要明白这些结构的用法,那些适合用在并发的环境,那些又不适合,如果误用了会产生什么样的后果。

并发也你必须了解的,其实并发说白了,就是 Java 用来解决内存的可见性和程序执行的可见性。即 volatile 关键字、synchronize 关键字,以及在它们基础上衍生出来的 AQS 和原子变量类,又在它们之上继续产生的 Lock、同步器、阻塞队列、Executor、并发容器,以及一些开源的调度框架 spring task、quartz。

JVM 常问,如果你经常写业务,会很少接触,但是面试官会常问,所以你需要掌握,比如它的内存模型,每个区该干什么?一个字节码类的结构是怎么样的?有哪些常见的回收器,以及那些常见的垃圾收集算法?一个类的加载过程又是怎样的?JVM做了那些编译优化?有那些语法糖?等等

最近,JDK 11 马上又要发布了,那么 JDK8 你应该要了解一下吧,它的那些新特性你用过没?

上面的这些就是所谓的基础,你可以试着反问一下自己是不是应该掌握呢?

三、熟悉一个领域

既然工作了三年,那么大大小小的项目,相信你肯定做了不少,那么你至少应该擅长一个领域。比如缓存、数据库、分布式框架、一些常见的组件。

对于缓存而言,你要理解 memchache 和 redis 中的一个,比如什么是一致性hash?redis 线上你遇到过的什么问题,你又是怎么解决的?

对于数据库而言,大多数互联网公司都是用的 MySQL,因此,你需要对它特别熟悉,面试官的一个查询需求,你能快速的转换成 SQL 语句。什么是最左原则?怎么建立索引才能提高命中率?如果出现慢查询又该怎么分析问题?每种存储引擎的数据结构又是怎么样的?什么情况下会出现死锁?事务又是怎么回事?等等

对于分布式框架而言,有的用 dubbo,有的用 spring cloud,无论你用什么,它们的最核心的东西基本一样,都有注册中心、服务端、消费端以及监控中心。因此,你要把它们理解清楚。

一些常见的组件,比如 Mybatis 、Guava、Common包等等,你得知道它的常见用法,以及这些用法的背后实现原理。

总结一下,对于三年的 Java 程序员而言,一和二必须掌握,三选择一个感兴趣的方向深入研究。

无论你工作多少年,我希望你永远记住『我是一名计算机工程师,不是打字员』。。。

 

这篇关于阿里架构师谈:工作三年的Java程序员应该达到什么水平?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/973726

相关文章

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单

《Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单》:本文主要介绍Springboot的ThreadPoolTaskScheduler线... 目录ThreadPoolTaskScheduler线程池实现15分钟不操作自动取消订单概要1,创建订单后

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

SpringCloud集成AlloyDB的示例代码

《SpringCloud集成AlloyDB的示例代码》AlloyDB是GoogleCloud提供的一种高度可扩展、强性能的关系型数据库服务,它兼容PostgreSQL,并提供了更快的查询性能... 目录1.AlloyDBjavascript是什么?AlloyDB 的工作原理2.搭建测试环境3.代码工程1.

Java调用Python代码的几种方法小结

《Java调用Python代码的几种方法小结》Python语言有丰富的系统管理、数据处理、统计类软件包,因此从java应用中调用Python代码的需求很常见、实用,本文介绍几种方法从java调用Pyt... 目录引言Java core使用ProcessBuilder使用Java脚本引擎总结引言python

SpringBoot操作spark处理hdfs文件的操作方法

《SpringBoot操作spark处理hdfs文件的操作方法》本文介绍了如何使用SpringBoot操作Spark处理HDFS文件,包括导入依赖、配置Spark信息、编写Controller和Ser... 目录SpringBoot操作spark处理hdfs文件1、导入依赖2、配置spark信息3、cont

springboot整合 xxl-job及使用步骤

《springboot整合xxl-job及使用步骤》XXL-JOB是一个分布式任务调度平台,用于解决分布式系统中的任务调度和管理问题,文章详细介绍了XXL-JOB的架构,包括调度中心、执行器和Web... 目录一、xxl-job是什么二、使用步骤1. 下载并运行管理端代码2. 访问管理页面,确认是否启动成功

Java中的密码加密方式

《Java中的密码加密方式》文章介绍了Java中使用MD5算法对密码进行加密的方法,以及如何通过加盐和多重加密来提高密码的安全性,MD5是一种不可逆的哈希算法,适合用于存储密码,因为其输出的摘要长度固... 目录Java的密码加密方式密码加密一般的应用方式是总结Java的密码加密方式密码加密【这里采用的

Java中ArrayList的8种浅拷贝方式示例代码

《Java中ArrayList的8种浅拷贝方式示例代码》:本文主要介绍Java中ArrayList的8种浅拷贝方式的相关资料,讲解了Java中ArrayList的浅拷贝概念,并详细分享了八种实现浅... 目录引言什么是浅拷贝?ArrayList 浅拷贝的重要性方法一:使用构造函数方法二:使用 addAll(

解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题

《解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题》本文主要讲述了在使用MyBatis和MyBatis-Plus时遇到的绑定异常... 目录myBATis-plus-boot-starpythonter与mybatis-spring-b