![image.png](https://static.studygolang.com/181016/0fcc81e2ad27b7d88089d99b1f1f939f.png) 前言 很多人以为技术人员可以做一直做下去,但是最近我发现这个观点不完全正确,因为能一直做下去的技术人员非常稀少,因为不同的年龄段,公司对技术人员的要求会不一样,如最近传言华为计划裁掉40岁以上的程序员,首先我认为肯定不会裁掉所有40岁以上的技术人员,如CTO或高级技术专家不会被开,因为他们达到了40岁技术人员应该达到的能力,而那些没有达到该年龄段能力的技术人员会被淘汰。 为什么现在各大公司招技术人员这么难还会有公司裁员呢? 因为公司需要换血和降低成本。换血意味着希望进入一些新鲜或者优质血液,让团队能正向发展,新鲜的血液积极性高,潜力好,如刚毕业的学生或工作几年的技术人员。优质的血液,意味着技术能力强,能影响团队技术方向,如某个领域的技术专家,能影响团队事倍功半。 如果你是公司老板,一个工作三年的技术人员和一个工作10年的技术人员能力差不多,而三年的更有技术激情,十年的还要照顾家庭,工资还比三年的多几倍,你会选择留下哪一个呢?是不是会开掉10年的技术人员,再招聘几个三年的呢?这就是现实的残酷。那个十几年工作经验的技术人员离职后开始找工作,但是找到合适的工作会非常困难,首先你的工资基数很大,你期望下家公司能给你更高的薪水,新公司也会考虑招聘你的投入产出比。 所以技术人员需要居安思危,不要被眼前的高薪冲昏了头脑,小富则安是短暂的,逆水行舟才是技术人员走的路,所以我认为技术人员需要以五年为一个技术周期,每个技术周期上都要上升一个技术层级,否则随时可能会被淘汰掉,各层级建议和要求如下: 应届生 - 扎实的技术基础,有技术热情。应届生技术人员我建议进入BAT这样的大型互联网公司,虽然辛苦点,但是工作几年后,技术能力和视野会大于很多工作10年的技术人员。 注意点:系统化的学习技术,研究技术而不是使用技术。 工作5年 - 在技术上做到知其然知其所以然,对用过的技术框架都能知道技术原理和优缺点,多实战少纸上谈兵,学会总结。具备独立分析和解决技术问题的能力。 注意点:很多候选人用过N年JDK,就认为自己精通JAVA,但是面试的时候发现JDK的源码都没看过。我面试阿里的时候,也不明白为啥要问JDK源码或垃圾回收机制,但是当我去解决复杂的线上问题时,我才发现对源码或原理不熟,很难查到问题所在。如果你在小公司或非互联网公司没有这样的技术场景,可以尝试提高下业务架构能力或者利用业余时间实战并钻研技术。 工作十年 - 有大型系统架构经验和技术亮点。架构经验需要在大公司有实战经验。技术亮点就是在某个技术上达到专家级别,当同事遇到某个技术问题会来咨询你,比如遇到Redis问题解决不了时会来找你。短短几句话要求非常高,招聘的时候很多技术人员都卡在这个阶段,需要有很好的技术积累和背景。 注意点:很多技术人员开始转向管理,结果技术和管理都是半桶水,技术首先要达到一定的深度再考虑管理方向。小公司技术总监,技术停留在用,很多技术原理都不知道,如何做技术规划呢? 工作十五年 - 要有很强的业务和技术规划能力,在公司内有影响力,可以影响团队和公司的技术发展方向。也可以尝试换下工作,去成长性好的公司做技术总监,扩展下技术视野。 十五年以上 - 这个我说不好,欢迎通过评论提建议。 如何进入BAT 达到以上要求就可以进入BAT,但是我分析了下最简单进入BAT的方式是工作5年以内的技术人员,因为应届生要求TOP院校的TOP学生,工作八年以上的要求又非常高。 主要用到的技术栈 面试大公司基本都会问的技术,也是大公司经常用到的一些技术 性能调优 性能优化如何理解 性能基准 什么是性能优化 衡量标准 JVM调优 jvm虚拟机的内存解析 垃圾收集器 实战调优案例与解决方案 JVM运行时区 Java程序员性能优化 优雅的创建对象 注意对象的通用方法 类的设计陷阱 泛型需要注意的问题 java方法的那些坑 程序设计的通用规则 Tomcat 线程模型分析 生产环境配置及调优 运行机制及框架 Mysql 探析BTree机制 执行计划深入分析 Mysql索引优化详解 慢查询分析与SQL优化 应用框架源码解读 Spring IOC Spring Aop Spring MVC Spring5的新特性 Mybatis Spring IOC SpringFrammework体系结构 源码分析 BeanFactory源码分析 BeanDefiniton源码分析 Bean生命同期 依赖实现 Spring Aop Aop源码分析 transaction事物分析 Springcache框架源码分析 Spring MVC MCV简介与设计思想 SpringMVC组成 源码解读DispatchServlet Spring5新特性 容器增加 函数式编程 webFlux模块介绍 kotlin介绍 Testing改进 兼容性问题 Mybatis mybatis组成 核心源码分析 手写Mybatis 分布式架构 互联网分布式架构是非常重要的一个技术,基本上所有的大公司都会用分布式 分布式架构思维 大型互联网架构演进过程 架构师应具备的分布式知识 主流分布式架构设计详解 架构开发基础 多线程开发 高性能NIO框架 架构核心服务层技术 服务的前世今生 深入理解通讯协议 基于 分布式RPC解决方案 dubbo全解析 架构关键基础设施 分布式环境指挥官zookeeper 分布式消息通讯异步与MQ 分布式缓存 数据存储SQL&NoSQL 高并发分流技术Nginx 分布式解决方案 分布式解决方案 Session跨域共享实战 分布式事物解决方案实战 分布式锁解决方案实战 分布式单点登录实战SSO 分布式调度任务系统 分布式配置中心 微服务架构技术 微服务这块应该不用多说了,知道微服务技术的至少能多加5k薪资 SpringBoot SpringCloud Docker虚拟化技术 SpringBoot 与微服务的区别于联系 快速构建SpringBoot工程 SpringBoot核心组件剖析 快速集成mybatis实战 快速集成Dubbo及案例实战 构建集成 redis及案例实战 构建Swagger插件实现API 管理及接口测试体系 SpringCloud Zuul路由网关详解源码探析 Ribbon客户端负载均衡原理 Feign声明式服务调用方式 Eureka注册中心构件 Config配置服务中心 svn、git快速集成 Sleuth调用链路跟踪 BUS消息总线技术 Docker虚拟化技术 介绍、安装与使用 compose部署脚本 service服务编排 redis分布式集群部署 docker file构建 通过maven插件打包镜像 部署及运行应用程序kubernetes编配 构建Mysql集群实战 高可用SpringCloud微服务与docker集成实现动态扩容实战 团队协作开发 这个是常用的开发工具类的,提升团队效率 Git Maven Jenkins Sonar 加群:795632998,即可获取往期Java高级架构资料、源码、笔记、视频 Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、 高并发等架构技术,获取以上资料 架构师视频资料 ![image.png](https://static.studygolang.com/181016/8026197623a3e4d9cafc4d08084b32a7.png) ![image.png](https://static.studygolang.com/181016/8e69b456658298865118cf34e8b3c191.png) ![image.png](https://static.studygolang.com/181016/aae53ac5132d0f6e158222a7182048c9.png)
原文 https://studygolang.com/articles/15527