做码农差不多十五年了,聊聊程序员十五年内职业生涯规划,共勉之

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介:
做码农差不多十五年了,聊聊程序员十五年内职业生涯规划,共勉之

前言

很多人以为技术人员可以做一直做下去,但是最近我发现这个观点不完全正确,因为能一直做下去的技术人员非常稀少,因为不同的年龄段,公司对技术人员的要求会不一样,如最近传言华为计划裁掉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优化

应用框架源码解读

  1. Spring IOC
  2. Spring Aop
  3. Spring MVC
  4. Spring5的新特性
  5. 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薪资

  1. SpringBoot
  2. SpringCloud
  3. 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集成实现动态扩容实战

团队协作开发

这个是常用的开发工具类的,提升团队效率

  1. Git
  2. Maven
  3. Jenkins
  4. Sonar

加群:795632998获取往期Java高级架构资料、源码、笔记、视频

Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、

高并发等架构技术,获取以下资料

架构师视频资料




相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
2月前
|
前端开发 算法 JavaScript
探索编程世界的初心与成长
【9月更文挑战第8天】在编码的世界中,每一个程序员都像是探险家,不断发现新大陆、解决问题。从初入行的迷茫到逐渐找到自己的方向,本文将通过个人经历和感悟,探讨如何在编程旅途中保持初心,不断学习与成长。
|
程序员
程序员成长第四篇:程序员的职业天花板
程序员成长第四篇:程序员的职业天花板
142 0
|
程序员 计算机视觉
事关每个程序员的职业规划与履历
今天,甚至过去,大多数人都是由自己来设计他们的职业生涯的。 无论你正要启程,还是已经奋斗多年,以下内容都会对您的职业生涯有所助益。
151 0
|
架构师 Java 程序员
IT职场生活工作感悟
本文分享了一些IT的学习网站,交流了一些职场心得,最后希望职场人都能发展顺利。
165 0
IT职场生活工作感悟
|
SQL 算法 NoSQL
编写代码最应该做好的事情是什么?(备战2022春招或暑期实习,每天进步一点点,打卡100天,Day8)
编写代码最应该做好的事情是什么?(备战2022春招或暑期实习,每天进步一点点,打卡100天,Day8)
149 0
编写代码最应该做好的事情是什么?(备战2022春招或暑期实习,每天进步一点点,打卡100天,Day8)
|
架构师 程序员
总架构师寇卫东的感悟:话说程序员的职业生涯
有一些年轻的程序员向我咨询,将来的路应该怎么走?俗话说,条条大路通罗马。不同的路都能走向成功。到底选哪条路,取决于自己的兴趣。可能有程序员会问:如果还没找到自己的兴趣怎么办?我的建议是多尝试,努力做,这是职业生涯的必经之路。
5753 0
|
架构师 大数据 Java
程序员的职业规划!
在这个节点讲讲我对职业发展路径的理解,另外就是理一理脑子里的一些思路。过段时间再看此文又可能是另一番理解。很多路从后往前看的时候总会有遗憾,要是当初怎么怎么样就会怎么怎么样。导致这样的原因的第一个原因是人在做决策的时候由于各种不全导致了决策本身并不完美,即使当时完美可能后面看来也可能是不完美的,也有可能做出完全错误的决策(PS:如果孤立的讨论决策本身没有完全错误的决策,也可以认为是没有意义的)。
1095 0
|
架构师 Java 程序员
程序员迷茫:毕业时就已26,工作4年就已大龄,码农出路在哪?
为什么很多公司不招大龄码农,这个问题最近很沸腾,初看这个问题时扎心了,终有一天,我们都会成为大龄码农,那么首先定义下大龄码农,一般认为是35岁以上。按现在推算是1983年(含1983)前出身的。有很多还在一线开发,有些已经是中高层管理人员了。
2339 0
|
Java 程序员 应用服务中间件
做码农差不多十五年了,聊聊程序员十五年内职业生涯规划,共勉之
前言 很多人以为技术人员可以做一直做下去,但是最近我发现这个观点不完全正确,因为能一直做下去的技术人员非常稀少,因为不同的年龄段,公司对技术人员的要求会不一样,如最近传言华为计划裁掉40岁以上的程序员,首先我认为肯定不会裁掉所有40岁以上的技术人员,如CTO或高级技术专家不会被开,因为他们达到了40岁技术人员应该达到的能力,而那些没有达到该年龄段能力的技术人员会被淘汰。
2372 0
|
Java 程序员 定位技术
程序员职业规划的3个锦囊
我们在面试时经常会被问到一个问题——“你未来五年的职业规划是什么?”很多小伙伴不理解HR为什么这么问,也不知道怎么回答。 实际上,即便HR不问,我们也应该多多想想这个问题。因为它指向的是我们自己的职业生涯规划。
6843 0