做码农差不多十五年了,聊聊程序员十五年内职业生涯规划,共勉之
前言
很多人以为技术人员可以做一直做下去,但是最近我发现这个观点不完全正确,因为能一直做下去的技术人员非常稀少,因为不同的年龄段,公司对技术人员的要求会不一样,如最近传言华为计划裁掉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、分布式、
高并发等架构技术,获取以下资料
架构师视频资料
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
P4 玩家 KALOOM从数据中心网络市场中脱颖而出
随着软件定义网络(SDN)技术发展到新的水平,数据中心网络市场变得越来越活跃。进入该领域的最新玩家是Kaloom,一家位于蒙特利尔的创业公司,拥有约64名员工。 Kaloom宣布推出其产品,目标是可编程网络结构,可以使用P4编程语言自动发现,配置和管理白盒交换机,这是由Barefoot Networks率先推出的可编程网络交换芯片实现的新机芯。 “SDN的大前提是要有可编程网络元素,”该公司营销和战略副总裁Thomas Eklund说。“SDN尚未实现,因为需要引入可编程[硬件]。” Kaloom并不是唯一使用P4或Barefoot Networks的人。Arista Network在6月也推出一系列配备Barefoot的交换机。而且思科也在涉足Barefoot。 Kaloom的目标是大型数据中心和服务提供商运营。该公司是由首席执行官Laurent Marchand于2014年创立。Kaloom的投资者包括Fonds FTQ和Somel Investments。该公司迄今已筹集了1070万美元,预计到年底将扩大到100名员工。 根据Kaloom官员的说法,该公司的广告版面包括了对网络状...
- 下一篇
为什么分布式一定要有Redis?
考虑到绝大部分写业务的程序员,在实际开发中使用 Redis 的时候,只会 Set Value 和 Get Value 两个操作,对 Redis 整体缺乏一个认知。 所以我斗胆以 Redis 为题材,对Redis常见问题做一个总结,希望能够弥补大家的知识盲点。 本文围绕以下几点进行阐述: 为什么使用Redis 使用Redis有什么缺点 单线程的Redis为什么这么快 Redis的数据类型,以及每种数据类型的使用场景 Redis的过期策略以及内存淘汰机制 Redis和数据库双写一致性问题 如何应对缓存穿透和缓存雪崩问题 如何解决Redis的并发竞争 Key 问题 为什么使用Redis 我觉得在项目中使用 Redis,主要是从两个角度去考虑:性能和并发。 当然,Redis还具备可以做分布式锁等其他功能,但是如果只是为了分布式锁这些其他功能,完全还有其他中间件,如 ZooKpeer 等代替,并不是非要使用Redis。因此,这个问题主要从性能和并发两个角度去答。 性能 如下图所示,我们在碰到需要执行耗时特别久,且结果不频繁变动的 SQL,就特别适合将运行结果放入缓存。这样,后面的请求就去缓存中读...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS关闭SELinux安全模块
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- 设置Eclipse缩进为4个空格,增强代码规范
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7安装Docker,走上虚拟化容器引擎之路