本文主要是介绍关于个人成长与职业规划的思考,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 1.为什么离职?
- 2.过去的成长?
- 3.关于技术的思考
- 4.个人的产出
- 5.个人职业规划
- 6.思考
1.为什么离职?
选择离开曾经努力想去的公司,主要有两点:
一是业务方面。公司发展与业务受限,看不到未来的增长。
二是技术方面。如果业务没有增长,那么对于技术的要求也就不会加深,长期来看,对个人成长也是不利的。
2.过去的成长?
- Owner 意识。
一个需求,一个模块,甚至整个系统,在推动落地的过程中,会出现一些边界不清晰的工作,如果时间允许,力所能及,要主动承担。如果涉及多个依赖方,那么要积极主动去推动,作为多方的粘合剂,打通阻塞点。日常运营维护的过程中,经常也会有一些线上的告警问题去跟进,即使不是自己的模块,也要以主人翁的心态,第一时间去暴露、推进、解决问题。
- 敬畏发布,做好代码测试与发布观察。
线上 90% 的故障都是发布带来的。即使一个非常小的改动,那么也要做好测试。
系统是一个整体,多个功能特性会相互交织。即使自己的代码没有问题,也不能保证不会影响到其他模块。有时,线上潜在的问题,可能因为新的特性变更被暴露出来。即使你发布的特性是没有问题的。
再如仅仅升级一个依赖库的版本,也会引入问题。再权威的官方,也不能保证他们的代码没有问题。
比如之前遇到 GORM 的一个升级,作者在新版本中引入 bug,并发调用 Save 保存记录会出现主键冲突。
所以需要做好验证与发布观察。
- 产品意识。
技术服务于产品,做好产品是最终的目的。当面对多种多样的需求时,我们既要从技术角度给出建议,也要多从用户的角度去思考,和产品同学一起,做出更受欢迎的产品。
3.关于技术的思考
- 没有银弹,没有最好的技术方案,只有最合适的技术方案。
在软件开发领域中的一个重要观点,即没有一种万能的解决方案,也没有绝对最好的技术方案。相反,选择的技术方案应该是最合适的,根据具体的需求、情境和约束条件来决定。
这也告诉我们,脱离业务场景谈技术方案都是耍流氓。
需求多变:软件开发项目的需求通常是多变的,可能会受到市场、用户、技术和竞争等因素的影响。因此,没有一种技术方案能够适用于所有情况。
技术发展迅速:技术领域的发展速度非常快,新技术不断涌现,旧技术也在不断演进。因此,当前最好的技术方案可能会在未来被取代或者改进。
项目约束条件:每个项目都有其独特的约束条件,包括时间、成本、人力资源、技术栈、安全性等方面。选择最合适的技术方案需要考虑这些约束条件。
团队技术栈:团队成员的技术背景和经验也会影响技术方案的选择。选择与团队熟悉的技术可以减少学习成本和风险。
因此,在选择技术方案时,需要综合考虑以上因素,权衡利弊,选择最适合当前情况的方案。最终的目标是在满足项目需求的同时,尽量减少风险、提高效率、保证质量。
- 不要过度设计。
不要执着于高大上复杂的技术,只要完成需求,解决问题的技术就是好技术。
有时,为了解决一个问题,需要引入新的组件。那么这个时候就要小心了,引入新的组件,可能会引入新的问题和维护成本。
换种思路去思考解决,是不是也可以。
假设我们在做个性化推荐服务时,需要从用户中心获取用户的个性化数据,以便代入到模型里进行打分排序。但如果用户中心服务挂掉,我们获取不到数据了,那么我们要自己保存维护一份数据吗?显然增加了系统的复杂性。比如我们可以采用降级兜底的策略,可以在本地 cache 里放置一份热门商品以便兜底。
- 技术和产品的关系?
产品驱动技术:在某些情况下,产品的需求和愿景是首要考虑的,技术则是为了实现这些需求而存在的。产品定义了技术的目标和方向,技术团队根据产品需求进行技术选型、开发和优化。
技术支持产品:另一方面,产品的实现离不开技术的支持。技术决定了产品的性能、功能、用户体验等方面,技术的选择和实现直接影响了产品的质量和竞争力。
但永远要知道:技术是手段,产品是目的。
4.个人的产出
- 思考总结方法与经验,输出分享,帮助他人。
- 团队规范制定,实施与文档总结沉淀。
- 团队组件、公司组件与外界组件的建议与贡献。
5.个人职业规划
作为一名程序员,我会从以下几个方面来考虑规划职业:
-
技术深度与广度:首先,你可以思考自己的技术深度与广度。在后台开发领域,可以选择专注于某一种技术栈或框架,深入研究其原理和实践应用,也可以尝试学习和掌握多种技术,提高自己的技术广度。根据自己的兴趣和职业目标,找到适合自己的技术发展路径。
-
项目经验积累:通过参与各种规模和类型的项目,积累丰富的项目经验。参与项目的设计、开发、测试和维护,提升自己的实战能力和问题解决能力。不断挑战自己,扩展自己的视野和技能。
-
持续学习与自我提升:后台开发领域的技术变化非常快速,持续学习是非常重要的。通过阅读书籍、参加培训课程、观看教程、参与开源项目等方式,不断提升自己的技能和知识水平。
-
跨领域合作与沟通能力:除了技术能力外,跨领域合作和沟通能力也非常重要。与产品经理、设计师、测试工程师等其他团队成员合作,学会有效沟通和协作,共同推动项目的进展和成功。
-
个人品牌建设:在技术社区、博客、GitHub等平台上分享自己的技术见解、项目经验和成果,建立个人品牌和影响力,吸引更多的关注和机会。
-
职业目标和规划:根据自己的职业目标和兴趣,制定个人的职业规划。定期对自己的职业规划进行评估和调整,根据个人成长和行业发展趋势做出相应的调整和计划。
6.思考
我一直在问自己一个问题,我给他人带来了什么?
这篇关于关于个人成长与职业规划的思考的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!