一、职场经验分享
个人职业基本是如下曲线:
我是计算机科学与技术专业毕业,大学时期参加过ACM比赛,遗憾由于自己的水平和能力没有取得好的成绩。

2013年毕业,受益于参加过ACM集训,积累了较多的C语言编码能力,以及基本算法和数据结构掌握,通过校招面试获得了几个Offer。
职场启蒙期:因为缘分第一份工作选择了朗新科技武汉分公司,这份工作技术栈主要是JavaEE工作,这份工作最大的收获熟悉数据库的操作,但是从职业延续性角度分析,这份工作的技术经验对后续的发展没有很多帮助。这份工作就开始接触项目经理岗位,很多领导都是考取了高项,于是自己就开始考系统集成管理工程师,认为有用,但是这么多年,这个证书一直放在箱子里。这个阶段的工作虽然短暂,但是还是参与了部分项目,也从外部项目中学到了一些知识:如早期的内存数据库(自研)。最庆幸的这个时期获得了很多老大哥的指点,也坚定了专注C/C++编程之路。
职场成长期:当初毕业开始找工作的时候,就一直想寻找一份在Linux下做C/C++编程的工作,但是第一份工作无法接触这块的工作。于是通自己阅读和使用开源软件,来到第二家公司-武汉白虹软件。这个4年是自己技术上成长相对比较快的,一直战斗在第一线做编码和设计工作。利用业余时间去阅读了很多书籍和开源系统,同时有意识的构建自己的技术栈,也为后续进入一些上市安全公司打下坚实的基础。
职场稳定期:没有抓住武汉房价上涨的机遇,最终选择了逃离,回到了长沙工作。进入了上市安全公司,进入这家公司也是过五关斩六将,较为艰难。进入公司初期主要从事边角的功能的开发。半年后才出现转机,进入版本,负责一个redisu集群的的开发工作,这段时间虽然累,但是也得到一定的成长。那时也才28岁,这段时间也不觉得焦虑,对职场和生活都充满信心。
职场转折期:某一天主管找我谈话,说有一个富有挑战性的工作岗位,技术支持接口岗位(响应全国问题),问我是否考虑。刚进公司,对一些岗位的岗位职责一无所知,在没做充分调研的情况下,错误的选择了这个岗位。这个选择,直接影响自己的职业方向,以及在公司中的职级提升。可以说技术支持岗位,对程序员就是一个阻碍发展的工作岗位。基本上不分昼夜,无论上班路上,下班路上、周末、节假日,都要724小时在线。技术上也无法做系统学习,无法做设计,无法做编码,还要面对各干系人压力。可能唯一的收获,就是抗压能力(也许是麻木)。这段时间对于我职业生涯是一个灰暗的时刻。
职场进入管理:如果一个人长期干技术支持,可能真会走极端。于是公司大佬们看到后,尝试让我走管理的路线。管理又分为很多类:一类管理特殊项目项目管理、一类管理项目敏捷管理。
分享这么多,目的就一个,启示大家,如果做技术,一定要坚持初心做深做专,做一定的积累。如果过早的做管理,你可能在管理上没有很多优势。如果是技术专家转管理,你就有较大的优势,做管理也不会焦虑。
焦虑时期,因为过早的从事非核心技术的工作,导致技术上没有很深的积累。因为过早的接受管理性质的岗位,但是积累不够,导致也无法进一步提升。
当初选择管理, 很大影响是职场初期大佬们的影响,那时在心里种下了一个项目经理(技术经理)的种子,然而一直对管理认知不清晰,认为管理工作比技术工作更轻松或有更高的地位,但实际上管理工作同样具有挑战性,需要处理人际关系、项目管理等复杂问题。同时不同公司对项目经理的岗位的定义不一样。项目经理不等于管理层或领导,实际就是一个普通的岗位。通过实践经验,目前对于管理岗位已经释怀,知道如何才是管理,管理的重新。
二、为什么不能过早的转管理?
程序员过早转向管理岗位可能会面临一些问题,但这并不是绝对的,因为每个人的情况和公司的需求都不同。以下是一些原因,解释为什么程序员可能不应该过早做管理:
1)技术能力未成熟:程序员在职业生涯早期应该专注于提升自己的编程和技术解决问题的能力。过早转向管理可能会导致他们的技术能力发展不够充分。
2)管理需要不同的技能集:管理岗位需要的技能与程序员的技能有很大不同。管理工作涉及人员管理、项目管理、沟通协调等,这些技能需要时间和实践来培养。
3)缺乏经验:没有足够的技术背景和项目经验,程序员可能难以理解团队成员面临的技术挑战,也可能缺乏领导团队解决问题的能力。
4)职业发展方向选择:并不是所有程序员都希望成为管理者。有些人更喜欢专注于技术深度,成为技术专家或架构师。过早转向管理可能会限制他们在技术领域的发展。
5)团队动力学:一个技术团队通常更愿意跟随那些具有深厚技术背景和经验的领导者。如果一个程序员过早成为管理者,可能会缺乏团队的尊重和信任。
6)市场需求:技术不断进步,如果程序员过早离开技术岗位,可能会错过学习和应用新技术的机会,这可能会影响他们在未来市场上的竞争力。
7)个人成长:管理岗位可能会限制个人的技术成长,因为管理工作往往更多地涉及到非技术性的任务。
8)组织文化和结构:在某些组织中,管理岗位的晋升可能意味着与技术工作的脱节,这可能不符合某些程序员的职业规划。
从我个人复盘总结,过早做管理或边缘岗位对自身杀伤力最大的几个方面:技术能力落后,会让程序在市场上时区竞争力。
总之,程序员是否应该过早做管理取决于个人的职业规划、技能、兴趣以及所在公司的具体情况。有些程序员可能很适合早期就转向管理岗位,而有些则可能更适合在技术领域深耕。重要的是要认识到管理和技术是两条不同的职业路径,每条路径都有其独特的挑战和机遇。
三、慎重选择
大家注意观察我职业阶段的每个关键抉择点,每一个决策都对职业生涯有一定影响,影响自己的发展方向,所以大家一定提高认知,对每一个方向都要做充分的调研。
在职业过程中做出明智的选择是非常重要的,因为这些选择会影响你的职业发展、满意度和整体幸福感。以下是一些帮助你在职业生涯中做出好选择的建议,如果做选择了?
自我反思了解自己的兴趣和激情:思考你喜欢做什么,以及哪些工作能让你感到兴奋和满足。评估你的技能和优势:认识到你的专业技能和个人优势,以及如何将它们应用到不同的职业中。设定目标长期和短期目标:确定你的职业目标,并制定实现这些目标的计划。灵活性:在设定目标时保持灵活性,以适应不断变化的市场和个人情况。持续学习教育和培训:投资于教育和专业培训,以提高你的技能和知识。保持好奇心:对新技术、行业趋势和职业发展保持好奇和开放的态度。网络建设建立专业关系:与同行、导师和行业领导者建立联系,他们可以提供宝贵的指导和机会。参加行业活动:参加研讨会、会议和网络活动,以扩大你的职业网络。风险评估了解潜在的风险和回报:在做出决定之前,评估每个选择的潜在风险和回报。准备计划B:总是有一个备选计划,以防主要计划不如预期发展。寻求反馈从他人那里获取意见:向信任的同事、朋友和家人寻求意见,他们可能会提供不同的视角。职业咨询:如果需要,可以寻求职业顾问的帮助,他们可以提供专业的建议和资源。平衡工作与生活考虑生活质量:在做出职业选择时,考虑它们对你个人生活的影响。健康和福祉:确保你的职业选择不会对你的健康和整体福祉产生负面影响。勇于尝试新事物不要害怕改变:有时候,最好的机会来自于走出舒适区,尝试新的角色或行业。学习适应:适应新环境和挑战是职业成功的关键。做出决策信息收集:在做出决策之前,尽可能多地收集相关信息。倾听直觉:有时候,你的直觉可以是一个强大的指导力量。评估和调整定期评估:定期回顾你的职业选择和进展,确保它们仍然符合你的目标和价值观。灵活调整:如果情况发生变化,不要害怕调整你的计划和目标。记住,没有完美的选择,每个决定都可能带来不同的结果和学习机会。关键是保持积极主动,不断评估和调整你的职业路径。
四、做高价值的事情
如何挖掘工作中高价值的事情,避免只赚辛苦钱,享受不到团队的成果。每一个公司都有一些边缘性工作,这类工作做一些非主线的工作,虽然这类工作也能成长,但是成长速度较慢,举例说明:如一个研发团队会由架构师团队、项目团队、运营团队(技术支持)等组成,如果一个人在不同的团队,他的发展方向就不同。
如何去寻找或保持做高价值事情,这里给出如下建议:
持续学习和提升技能学习新的编程语言和技术栈。关注行业动态,了解最新的技术趋势。定期阅读技术书籍、博客、参加技术会议和研讨会。专注于解决问题专注于解决用户或业务的实际问题,而不仅仅是编写代码。了解业务逻辑,提出创新的解决方案。提高代码质量编写可读性强、可维护的代码。实践代码重构,保持代码库的整洁和可扩展性。编写单元测试,确保代码的稳定性和可靠性。优化工作流程使用自动化工具减少重复性工作。采用敏捷开发方法,快速迭代产品功能。学习使用项目管理工具,提高团队协作效率。培养良好的沟通能力与团队成员有效沟通,明确需求和预期。与非技术人员沟通时,能够用易懂的语言解释技术问题。设置职业目标为自己设定短期和长期的职业发展目标。定期评估自己的工作,确保与职业目标保持一致。参与高价值项目选择对职业发展有帮助的项目。参与开源项目,提升个人品牌和影响力。时间管理学会优先处理重要且紧急的任务。使用时间管理工具,如番茄工作法,提高工作效率。保持好奇心和创新精神对新技术保持好奇心,不断尝试和探索。鼓励创新思维,不断寻找改进现有产品或流程的方法。关注用户体验设计和开发时始终以用户为中心。收集用户反馈,不断优化产品。通过上述方法,程序员可以提高自己的专业价值,保持在职业生涯中做高价值的事情。