Java开发工程师的学习路线,三到五年.

以商汤公司的后端开发工程师岗位需求举例,我从他们官网摘取了两份要求,分别是针对五年的开发经历和三年的开发经历。

1、本科以上学历,计算机相关专业; 2、5 年以上 java 开发经验,主导过主流互联网公司的后台服务搭建, 有 AR 或 AI 后台服务搭建经验的优先; 包括但不限于: 服务注册/发现框架、容器技术、消息中间件、高可用框架、负载均衡框架、日志框架、服务监控框架等; 4、精通 MVC 设计模式,理解 Java 反射机制和常用的设计模式,熟悉使用 SpringMVC、mybatis 等主流框架,对微服务架构有一定认识; 5、熟悉应用服务器,如 Tomcat、Jetty 等,熟练使用 Linux/UNIX 等服务器,以及性能调优; 6、熟悉 MySQL、Oracle 等主流数据库, 熟悉 Redis、Memcached 等主流缓存服务,以及 Kafka、RabbitMQ 等消息中间件,同时对主流 RPC 框架有一定了解; 7、掌握Python/Golang/Javascript/Shell 等至少一种语言或脚本; 8、对高并发、高吞吐、高性能的分布式业务系统有设计、实现等实战经验; 9、对产品研发自动化流程, 持续集成等有一定经验;

1.本科及上学历,信息类专业优先(计算机,信息工程,软件,自动化,电子工程,通信等); 2、3年以上Java开发经验,JAVA基础扎实:熟悉常用的集合类、NIO、多线程编程,掌握常⽤的设计模式,熟悉常用算法; 3. 具备独立系统设计能力, 尤其是大型分布式高并发、高可用和高负载的架构经验, 熟悉JVM,包括内存模型、类加载机制,有JVM/性能优化经验优先; 4、熟练使用Spring framework, Spring boot, Spring Cloud, Mybatis,熟悉其常用组件或框架Feign、Ribbon、Gateway、Hystrix、Eureka等; 5、熟练使用Docker容器技术,熟悉MySQL、Redis、Kafka等开源框架及产品,有Kubernetes使用经验者优先考虑; 6、有移动开发经验,研究过Android客户端开发优先考虑;

我个人整理之后,要求可以分成下面几部分. 大家可以查缺补漏,看看有没有需要学习的.

1.开发经验: 3-5年 2.工作经历:主导过公司的后台服务搭建。部分要求AI或AR 后台服务搭建。云平台搭建和服务上云(k8s) 3.技术要求:服务的注册/发现(dubbo/Eureka),容器技术(k8s/docker),消息中间件(rocketMQ/rabbitMQ) 负载均衡框架(Nginx,ribbon),日志框架(log4j2),服务监控框架(脚本监听/) 项目要求:对高并发、高吞吐、高性能的分布式业务系统有设计、实现等实战经验; 具备独立系统设计能力, 尤其是大型分布式高并发、高可用和高负载的架构经验; 熟悉JVM,包括内存模型、类加载机制,有JVM/性能优化经验优先; 熟悉缓存、分布式架构; 熟悉ElasticSearch,kafka原理和开发; 熟悉Open ID Connect, OAuth2, HMAC Authentication,数据隔离 ; 有全栈开发经验者优先,有机器学习算法和实践经验者优先。

4.Java要求: mvc设计模式,反射机制,23设计模式,springmvc主流框架,微服务框架,常用的同步类、NIO、多线程编程,熟悉常用算法 5.服务器要求:熟练使用UNIX/LINUX等服务器,以及性能调优。 6.数据库要求:MYSQL/ORACLE等主流数据库,熟悉redis,memcached等主流缓存数据库,以及kafka,rabbitMQ等消息中间件;了解RPC框架 7.技术扩宽:掌握Python/Golang/shell/javascript等其他语言或脚本 8.数据结构和算法

东西很多,很难全部掌握的话,应该选择某几点要求做到很好,应该也可以.

备注: ribbon ,本地负载均衡,适用于微服务结构. (ribbon已被netflix放弃维护,2021年06月) nginx服务器负载均衡,适用于tomcat,jetty.

经验分享 程序员 微信小程序 职场和发展