Java程序员应该加以重视:

  1. 吃透基础技术

  2. 养成良好的阅读源码的习惯

  3. 有长期的技术学习规划

下面,我们来一起逐条看看,特别是第 3 个方法。

想要做到年薪50万,首先你自己必须是高水平的程序员!

能年薪50万的程序员至少自身有以下特征:

工作年限长,经验丰富

他们的共同特点是:10 年以上的工作经验,在大公司当过螺丝钉,也在创业公司做过技术 leader,有过一两段不算成功的创业经历。

这样的程序员无论是去 BAT 还是去创业公司,都能拿到 50 万年薪以上的 offer。

虽然前面说技术水平不是决定薪水的唯一因素,但如果技术牛到一定程度,高薪 offer 也是探囊取物!

另外,光你自己厉害,技术牛也不行

程序员,在中国又被戏称为“程序猿”、“码农”,是一群有鲜明标签特色的人物。很多文章在描述程序员的时候,常常会给其画一幅肖像:一副黑框眼镜,身上格子衬衫,背后一个黑色双肩包,耳边戴着一副耳机。这就是典型的IT男,或者程序员在大众心目中的形象。

为何同样是程序员有些猿的工资那么高,他们的技术栈是什么样的呢、或者说他们又拥有什么样几技术能力和学习规划?

一、Spring、MyBits源码

  • IOC容器设计原理及高级特性

  • AOP设计原理

  • FactoryBean与BeanFactory

  • Spring事务处理机制

  • 基于SpringJDBC手写ORM框架

  • SpringMVC九大组件

  • 手写实现SpringMVC框架

  • SpringMVC与Struts2对比分析

  • Spring5新特性

  • MyBatis关联查询、嵌套查询

  • 缓存使用场景及选择策略

  • Spring集成下的SqlSession与Mapper

  • MyBatis的事务

  • 分析MyBatis的动态代理的真正实现

  • 手写实现Mini版的MyBatis

二、分布式

1、分布式架构原理

  • 如何把应用从单机扩展到分布式

  • CDN加速静态文件访问

  • 系统监控、容灾、存储动态扩容

  • 架构设计及业务驱动划分

  • CAP、Base理论以及其应用

2、分布式架构策略

  • 分布式架构网络通信原理剖析

  • 通信协议中的序列化和反序列化

  • 基于框架的RPC技术Webservice/RMI/Hessian

  • 深入分析Zookeeper在disconf配置中心的应用

  • 基于Zookeeper实现分布式服务器动态上下线感知

  • 深入分析Zookeeper Zab协议及选举机制源码解读

  • Dubbo管理中心及监控平台安装部署

  • 基于Dubbo的分布式系统架构实战

  • Dubbo容错机制及高扩展性分析

2、分布式中间件

  • 分布式消息通信ActiveMQ/Kafka/RabbitMQ

  • Redis主从复制原理及无磁盘复制分析

  • Redis中AOF和RDB持久化策略的原理

  • MongoDB企业级集群解决方案

  • MongoDB数据分片、转存及恢复策略

  • 基于OpenResty部署应用层Nginx以及Nginx+lua实践

  • Nginx反向代理服务器及负载均衡服务配置实战

  • 基于Netty实现高性能IM聊天

  • 基于Netty实现Dubbo多协议通信支持

  • Netty无锁化串行设计及高并发处理机制

3、分布式架构整合经验

  • 分布式全局ID生成方案

  • Session跨域共享及企业级单点登录解决方案实战

  • 分布式事务解决方案实战

  • 高并发下的服务降级、限流实战

  • 基于分布式架构下分布式锁的解决方案实战

  • 分布式架构下实现分布式定时调度

三、微服务架构

1、Spring Cloud

  • Eureka注册中心

  • Ribbon集成REST实现负载均衡

  • Fegion声明式服务调用

  • Hystrix服务熔断降级方式

  • Zuul实现微服务网关

  • Config分布式统一配置中心

  • Sleuth调用链路跟踪

  • BUS消息总线

  • 基于Hystrix实现接口降级实战

  • 集成Spring Cloud实现统一整合方案

2、Spring Boot

  • Spring Boot热部署实战

  • Spring Boot核心组件Starter、Actuator、AutoConfiguration、Cli

  • Spring Boot集成Mybatis实现多数据源路由实战

  • Spring Boot集成Dubbo 实战

  • Spring Boot集成Redis缓存实战

  • Spring Boot集成Swagger2构建API管理及测试体系

  • Spring Boot实现多环境配置动态解析

3、Docker虚拟化

  • Docker的镜像、仓库、容器

  • Docker File构建LNMP环境部署个人博客Wordpress

  • Docker Compose构建LNMP环境部署个人博客Wordpress

  • Docker网络组成、路由互联、Openvswitch

  • 基于Swarn构建Docker集群实战

  • Kubernetes

四、性能优化

1、JVM调优

  • 各垃圾回收器使用场景(ThroughputCMS)

  • JVM内存模型 JMM

  • JVM运行时数据区

  • 各垃圾回收器使用场景(ThroughputCMS)

  • 理解GC日志,从日志看端倪

  • MAT分析dump文件

2、TomCat调优

  • Tomcat的运行机制及框架

  • Tomcat线程模型

  • Tomcat系统参数认识及调优

  • Tomcat基准测试

3、MySql调优

  • MySQL底层B+ Tree机制

  • SQL执行计划

  • MySQL索引优化

  • SQL语句优化

五、提升团队协作效率的开发工具

1、Maven

  • 生成可执行jar、理解Scope生成最精确的jar

  • 类冲突、包依赖 NoClassDefFoundError问题定位及解决

  • Maven生成Archetype

  • Maven流行插件实战、手写自己的插件

2、Jenkins

  • 搭建Jenkins自动部署环境

  • Jenkins集成maven、git实现自动部署

  • testpreproduction 多环境发布

  • Jenkins多环境配置、权限管理及插件使用

3、Sonar

  • 使用Sonar进行代码质量管理

  • 关于代码检查工具FindBugs/PMD的运用

  • SonarQube代码质量管理平台安装及使用

  • 使用Jenkins与Sonar集成对代码进行持续检测

  • Idea与Sonar集合的使用

4、Git

  • Git以及Git的工作原理

  • Git常用命令Best practise

  • Git冲突怎么引起的,如何解决

  • Git flow规范团队git使用规程

  • 案例分享

Java架构技术知识点梳理的更多相关文章

  1. Java架构技术进阶之:从分布式到微服务,深挖Service Mesh

    自从几十年前第一次引入分布式系统这个概念以来,出现了很多原来根本想象不到的分布式系统使用案例,但同时也引入了各种各样的新问题. 当这些系统还是比较少比较简单的时候,工程师可以通过减少远程交互的次数来解 ...

  2. 揭秘Java架构技术体系

    Web应用,最常见的研发语言是Java和PHP. 后端服务,最常见的研发语言是Java和C/C++. 大数据,最常见的研发语言是Java和Python. 可以说,Java是现阶段中国互联网公司中,覆盖 ...

  3. Java并发相关知识点梳理和研究

    1. 知识点思维导图 (图比较大,可以右键在新窗口打开) 2. 经典的wait()/notify()/notifyAll()实现生产者/消费者编程范式深入分析 & synchronized 注 ...

  4. Java多线程入门知识点梳理

    前言 在多核时代,高并发时代,对系统并行处理能力有很高要求.多线程就是这个时代最好的产物.通过使用多线程可以增强系统并行处理能力,提高CPU资源的有效利用:从而提高系统的处理能力.常见应用场景如:多窗 ...

  5. Java架构笔记:用JWT对SpringCloud进行认证和鉴权

    写在前面 喜欢的朋友可以关注下专栏:Java架构技术进阶.里面有大量batj面试题集锦,还有各种技术分享,如有好文章也欢迎投稿哦. image.png JWT(JSON WEB TOKEN)是基于RF ...

  6. 阿里Java架构师分享自己的成长经历,教你如何快速成长为架构师

    架构师是公司的“金领”,很少需要考虑生存的问题,从而有更多的精力思考关键技术,形成“强者愈强”的良性循环.当然,冰冻三尺非一日之寒,成为一名合格的架构师是一个漫长的积累过程.对于大部分的软件开发人员来 ...

  7. Java架构师必看,超详细的架构师知识点分享!

    在Java程序员行业中,有不少Java开发人员的理想是成为一名优秀的Java架构师,Java架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作.他必须对开发技术非常了解,并且 ...

  8. Java分布式应用技术架构介绍

    分布式架构的演进 系统架构演化历程-初始阶段架构

  9. Java分布式应用技术架构

    分布式架构的演进 系统架构演化历程-初始阶段架构初始阶段 的小型系统 应用程序.数据库.文件等所有的资源都在一台服务器上通俗称为LAMP特征:应用程序.数据库.文件等所有的资源都在一台服务器上.描述: ...

随机推荐

  1. memsql 基本完全免费了

    一个很好的消息是memesql 从6.7 版本开始,对于用户来说已经可以免费使用了(ha 以及安全功能),只是目前有一个 限制是集群内存最大可以使用的是128G,但是一般来说已经够用. 参考资料 ht ...

  2. vulcanjs 简单package 编写

    vulcanjs 功能是以包进行管理,包里面包含了运行依赖的组件以及对于路由的注册 参考项目 项目结构 ├── README.md ├── license.md ├── package-lock.js ...

  3. sql server merge into 与update 批量更新1 百万测试数据的性能比较

    1. 1百万的测试数据的生成 declare @index int;  begin  set @index=0;  while @index<1000000  begin  insert int ...

  4. dup and dup2的剖析

    转:http://www.cnblogs.com/sdphome/archive/2011/04/30/2033381.html dup和dup2都可用来复制一个现存的文件描写叙述符,使两个文件描写叙 ...

  5. xml时间配置

    这些星号由左到右按顺序代表 : * * * * * * * 秒 分 时 日 月 周 年 序号 说明 是否必填 允许填写的值 允许的通配符 秒 是 0-59 , - * / 分 是 0-59 , - * ...

  6. ipconfig出现window IP configuration 。。

    我的电脑  右击 -->属性 ---->硬件---->设备管理器 安装以太网网卡 1.自动  电脑重新开机会自动提示安装 2.手动  下载以太网网卡驱动 ,选中合适类型(一般为int ...

  7. CMSIS DSP Lib:RFFT函数的bug

    调用arm_rfft_fast_init_f32之后,还有两个成员需要初始化: arm_rfft_fast_instance_f32::pTwiddleRFFT = twiddleCoef_rfft_ ...

  8. 术语-服务:IaaS

    ylbtech-术语-服务:IaaS IaaS(Infrastructure as a Service),即基础设施即服务.消费者通过Internet 可以从完善的计算机基础设施获得服务.这类服务称为 ...

  9. Linux下查看某个进程占用的CPU、内存

    1.用top命令指定固定的PID top -p 10997 查询指定进程的PID ps -ef | grep zookeeper jim 10997 1959 0 12月14 pts/2 00:00: ...

  10. 1035 Password (20 分)

    1035 Password (20 分) To prepare for PAT, the judge sometimes has to generate random passwords for th ...