首页 >> 新闻资讯 >>技术分享 >> 研发人员的职业规划
详细内容

研发人员的职业规划

时间:2020-11-01     作者:谢圣伟【原创】

   最近经常看到三四十岁的程序员被裁员、找工作处处碰壁,每次看到类似的新闻都不由的想到,大龄程序员是真心喜欢写代码还是只是为了一个工作,如果是真心喜欢,那到无可厚非,但我相信大多数的程序员对自己的职业生涯是有期待的,如果能够认真做好自己的职业规划,按照规划的路径不断成长也不会如此窘迫。

   开发人员如果没有一个良好的职业规划,随着时间的流逝,年龄的增大,体力、精力都将大不如前;当你某天突然发现原来和你同一起跑线的同窗好友,落下你的差距大到让人惊讶时,就真的很难逆转这种局面了。

   职业规划总是在不停的指引我们向前发展,因为我们有目标、有规划、有方向,不会感到彷徨、困惑,这就是职业规划的力量!不要因为你现在的微不足道而放弃对自己的规划,只要做好切实可行适合你的规划,并且一步一步的按着规划来做,达到目标只是时间问题!

   那我们应该如何做好职业规划呢?每位技术人员的实际情况不同,但是大部分技术人员的职业可以分为三个阶段。

   第一阶段为起步期,一般是毕业后的三年内。不论何种背景,这一阶段的主要工作是打牢技术基础,编写代码、功能测试和系统维护;主要目标是学习和掌握公司产品/项目的基本技术、工具和流程。本阶段也是软件行业所有职业的起点和立身之本,不论将来担任何种职位,都必须依赖于这一阶段打下的基础。大家在这个阶段更多的是忙着做一些基本的日常工作,对职业规划的方向感比较模糊。当然,确实也有些同学在这个阶段就可以充分的认识自己,有明确的职业规划。

   第二阶段为成长期,一般为毕业后三到十年。这一阶段我们已经掌握了基本的技术技能和经验,能够独立工作、指导或带领他人工作。

   这一阶段要认真思考自己的能力、特长以及行业方向,有哪些适合。自我认知和环境认知是很关键的一个环节,需要对自己和企业内外部环境有全面且清晰的了解,结合自己的兴趣、性格、价值观、能力,确定职业发展目标并制定职业规划。当然,知易行难,有了计划是第一步,关键在于执行,如何按照设定的目标去行动才是决定因素。对开发人员来说,一般是走技术路线或者管理路线,当然也有少数人转行去做市场、销售、质量管理的,这里只讨论技术和管理两个方向的职业规划。

   技术发展路线是这样的,软件开发工程师--->高级软件工程师--->软件架构师--->高级架构师--->技术专家--->资深技术专家--->CTO;如何采取行动逐步实现这个目标呢,职业规划的本质是设定职业目标,然后拆解目标,分阶段全力实现。

   如果将终极目标定为CTO,需要先制定阶段目标,第一个阶段就是成为架构师。假如要在三年后成为架构师,从现在开始要制定一个分阶段的规划,比如前两年达到高级开发的水平,可以做一些小型项目的架构设计工作,后一年要对各个技术的优缺点、适用业务场景都有自己的分析,从更高的维度对架构进行设计,保持技术的先进性、可扩展性。在此基础上,把规划再细化一些,每年的每个季度、每月完成哪些内容,目标进一步细化,最后的目标要设定为自己可以完成的粒度,每个细粒度的任务完成后,日积月累,大目标会越来越近,起码不会感觉很遥远。假如执行过程中有偏差也可以根据实际情况进行调整,但是大方向不会变化,执行过程中会逐步建立自信心,执行顺利的话可能会提前实现目标。

   对于一些开发人员暂时没有明确的职业规划,但是也想进步、想学习、想在公司展现自己的能力,可以根据实际情况制定小目标,比如这周我要精通某个技术,下月我要学习一门新的技术,多个小目标达成后,你会发现你比身边人已经进步很多了,但前提是要坚持去做。坚持做一件事永远比想象中要困难,因为现在快节奏的生活中,诱惑太多,时间不经意就浪费了,需要有坚定的决心和毅力去执行计划。执行过程中会对自己要求越来越高,逐渐发现自己的优势,对自己有更深刻的认知,逐渐就有了更清晰的职业规划,也就有了前进的动力。

这里说一下Java相关的技术知识体系,如果要走技术路线,可以参考以下内容进行规划提升。

   Java知识体系主要包括基础知识、工具、并发编程、数据结构与算法、数据库、JVM、架构设计、应用框架、中间件、微服务架构,可以按时间线从这些方面进行技术的提升。

   基础知识包括基础语法面向对象集合框架IO流网络编程常用API常用工具类库单元测试异常日志,这些在我们发展的第一阶段应该掌握,没有掌握的知识点可以针对性地巩固一下,这是走向架构师的必备基础。

   工具主要包括开发工具、持续集成工具,如IDEA、Navicat、Maven、Sonar、Git、GitLab这些开发工具是日常开发必须要掌握的,像Jenkins、Docker、Kubernetes这些持续集成工具在前期只需要了解熟悉,后期微服务需要集群部署、水平扩展时就需要更深入的学习使用了。

   就像升级打怪一样,掌握基础知识和开发工具后,只是可以满足日常的开发工作,要想进一步提升解决问题的能力,需要学习Java高级特性相关知识,这些也是我们走向高级开发要掌握的内容。

并发编程,包括并发的基础知识、并发理论、并发关键字、Lock体系、并发容器、线程池、原子操作类、并发工具,最后需要并发实践,生产者-消费者模式是一个十分经典的多线程并发协作模式,可以按照这个业务模式写代码进行实战,观察线程执行情况。

   数据结构与算法,数据结构包括数组、栈、队列、链表、树, 树包括二叉树、完全二叉树、平衡二叉树、二叉查找树(BST)、 红黑树、B树、B+树;算法也分很多种类,排序算法:快速排序、归并排序、计数排序 ;搜索算法:回溯、递归、剪枝 ;动态规划:背包问题、最长子序列、计数问题 ;基础技巧:分治、倍增、二分法、贪心算法;所有的后台系统的代码逻辑,都是由这些数据结构和算法组成的,这些数据结构和算法也是进入大厂的必要条件。

   数据库,说一下应用最广泛的MySQL、Redis、MongoDB。MySQL主要包括数据库基础知识、数据类型、存储引擎、索引、三大范式、常用SQL语句、存储过程与函数、视图、MySQL优化、事务、数据备份与还原;Redis主要包括Redis支持的数据类型、发布订阅、事务、管道、持久化、主从复制、LRU淘汰策略、集群部署;MongoDB主要是数据结构、命令操作、索引、优化、高可用。这些不能只停留在会用的阶段,必须要掌握原理、性能优化;

   JVM,包括内存模型、堆栈、GC、类加载系统、反编译、基本指令、字节码文件、JVM优化等。

   架构设计,包括高可用架构、高并发架构、可伸缩架构、集群,使用的设计模式按类型主要分三类;创建型:单例模式、工厂模式、抽象工厂模式;结构型:适配器模式、外观模式、代理模式、装饰器模式;行为型:观察者模式、策略模式、模板模式,掌握了这些设计模式可以让你做架构设计时游刃有余。

   应用框架,首先要了解框架的优缺点、解决了什么问题,官网的技术文档是快速了解框架的最好方式。其次就是搞清楚框架原理、工作流程、工作原理,再详细一些就是源码分析、核心类、核心方法、设计模式;应用框架类型主要包括Java服务器、负载均衡、web层框架、服务层框架、持久层框架、私服、消息组件、日志框架、缓存框架、RPC框架、规则引擎、工作流、批处理、通用查询框架、Java安全框架、Linux操作系统。

   中间件,消息中间件主要有RabbitMQ、Kafka、RocketMQ、ActiveMQ;远程过程调用中间件:Dubbo;还有数据访问中间件、Web应用服务器、Tomcat、Nginx、缓存等。

   微服务和分布式,微服务相关的生态主要有Spring Cloud服务注册发现、服务配置负载均衡服务调用服务限流熔断降级网关路由服务权限链路追踪分布式事务分布式缓存分布式会话日志收集服务监控消息驱动数据处理流自动化测试与部署分布式协调服务Zookeeper

   大家可以根据上面的内容进行递进的规划学习,只要坚持去执行,始终持之以恒的坚持,那目标就不远了。

   管理发展路线是这样的,高级软件工程师--->开发经理/项目经理/产品经理--->项目总监--->技术管理总监--->部门经理--->总经理;技术发展路线最后的职位是资深技术专家或者CTO,而管理路线的发展空间更为广阔,发展成为CEO也不无可能。

   如果没有发自内心的热爱编程,又或者你有管理方面的特质,可以尝试走管理路线。管理路线是可以预见未来的,是可以看到结果的,是相对可靠的,走管理路线需要做很多功课提前储备这方面的能力,从开发转到管理,首先要十分熟悉产品和技术,还要具备良好的协调沟通能力;掌握软件工程的流程、进度控制、质量控制、资源的有效使用等;掌握项目管理的知识、技术、技巧与方法,具备一定的行业知识。同时也需要机遇,日常工作中要善于表现自己,主动承担项目的一些协调、管理的工作,可以从开发组长做起,逐渐锻炼自己的管理能力,有合适的机会让领导看到并表达自己的意愿,通过这样一个过程来实现目标。

   第三阶段为发展期,一般为工作十年以后。这一阶段的人员已经成为组织内的技术或管理骨干,可以向更高层次的综合管理和企业战略方向发展。如果说第一阶段比较容易实现,第二阶段通过一定程度的努力可以实现,而第三阶段则主要靠机遇和个人奋斗了。

   目前我们开发小伙伴大多数都是在第二个阶段,大家可以结合自己的实际情况思考一下,如果没有明确的职业规划,在没有工作安排或者周末休息的时候,是不是都不知道做什么了?是不是找一些视频、电视剧来消磨时间?长期下来,你会发现自己在一年中并没有什么成长,最多只是多了一些工作经验。当你的技术能力没法跟上发展的时候,很可能被市场淘汰掉。

   公司一直在成长进步中,如你不能跟着公司一起快速成长,那自己就是在倒退。尽早制定一个可行的职业规划,让自己空闲的时候忙起来,哪怕这个规划是短期的,起码让自己有一个目标,有一个前进的动力,这样才能够让自己不断进步、当面临选择时让自己拥有更多主动权。


联系我们

关注公众号

地址:北京市海淀区上地东路9号得实大厦二层中区

邮编:100085

电话:010-82755006      

邮箱:service@yinhechuangxiang.com  

网址:www.yinhechuangxiang.com

关于我们

北京银河创想信息技术有限公司(以下简称:银河创想)成立于2015年, 是一家具有创新能力的综合性软件与信息化研发服务供应商。银河创想是国家高新技术企业、专精特新企业、中关村高新技术企业、具有CMMI5、ISO9001、ISO27001、ISO20000、ISO14001、ISO45001、ISO50001等相关资质认证,在多个行业领域具有软件著作权。

本站已支持IPv6
seo seo