关于个人成长与职业规划的思考

2024-03-01 03:52

本文主要是介绍关于个人成长与职业规划的思考,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1.为什么离职?
  • 2.过去的成长?
  • 3.关于技术的思考
  • 4.个人的产出
  • 5.个人职业规划
  • 6.思考

1.为什么离职?

选择离开曾经努力想去的公司,主要有两点:
一是业务方面。公司发展与业务受限,看不到未来的增长。
二是技术方面。如果业务没有增长,那么对于技术的要求也就不会加深,长期来看,对个人成长也是不利的。

2.过去的成长?

  • Owner 意识。

一个需求,一个模块,甚至整个系统,在推动落地的过程中,会出现一些边界不清晰的工作,如果时间允许,力所能及,要主动承担。如果涉及多个依赖方,那么要积极主动去推动,作为多方的粘合剂,打通阻塞点。日常运营维护的过程中,经常也会有一些线上的告警问题去跟进,即使不是自己的模块,也要以主人翁的心态,第一时间去暴露、推进、解决问题。

  • 敬畏发布,做好代码测试与发布观察。

线上 90% 的故障都是发布带来的。即使一个非常小的改动,那么也要做好测试。

系统是一个整体,多个功能特性会相互交织。即使自己的代码没有问题,也不能保证不会影响到其他模块。有时,线上潜在的问题,可能因为新的特性变更被暴露出来。即使你发布的特性是没有问题的。

再如仅仅升级一个依赖库的版本,也会引入问题。再权威的官方,也不能保证他们的代码没有问题。

比如之前遇到 GORM 的一个升级,作者在新版本中引入 bug,并发调用 Save 保存记录会出现主键冲突。

所以需要做好验证与发布观察。

  • 产品意识。

技术服务于产品,做好产品是最终的目的。当面对多种多样的需求时,我们既要从技术角度给出建议,也要多从用户的角度去思考,和产品同学一起,做出更受欢迎的产品。

3.关于技术的思考

  • 没有银弹,没有最好的技术方案,只有最合适的技术方案。

在软件开发领域中的一个重要观点,即没有一种万能的解决方案,也没有绝对最好的技术方案。相反,选择的技术方案应该是最合适的,根据具体的需求、情境和约束条件来决定。

这也告诉我们,脱离业务场景谈技术方案都是耍流氓。

需求多变:软件开发项目的需求通常是多变的,可能会受到市场、用户、技术和竞争等因素的影响。因此,没有一种技术方案能够适用于所有情况。

技术发展迅速:技术领域的发展速度非常快,新技术不断涌现,旧技术也在不断演进。因此,当前最好的技术方案可能会在未来被取代或者改进。

项目约束条件:每个项目都有其独特的约束条件,包括时间、成本、人力资源、技术栈、安全性等方面。选择最合适的技术方案需要考虑这些约束条件。

团队技术栈:团队成员的技术背景和经验也会影响技术方案的选择。选择与团队熟悉的技术可以减少学习成本和风险。

因此,在选择技术方案时,需要综合考虑以上因素,权衡利弊,选择最适合当前情况的方案。最终的目标是在满足项目需求的同时,尽量减少风险、提高效率、保证质量。

  • 不要过度设计。

不要执着于高大上复杂的技术,只要完成需求,解决问题的技术就是好技术。

有时,为了解决一个问题,需要引入新的组件。那么这个时候就要小心了,引入新的组件,可能会引入新的问题和维护成本。

换种思路去思考解决,是不是也可以。

假设我们在做个性化推荐服务时,需要从用户中心获取用户的个性化数据,以便代入到模型里进行打分排序。但如果用户中心服务挂掉,我们获取不到数据了,那么我们要自己保存维护一份数据吗?显然增加了系统的复杂性。比如我们可以采用降级兜底的策略,可以在本地 cache 里放置一份热门商品以便兜底。

  • 技术和产品的关系?

产品驱动技术:在某些情况下,产品的需求和愿景是首要考虑的,技术则是为了实现这些需求而存在的。产品定义了技术的目标和方向,技术团队根据产品需求进行技术选型、开发和优化。

技术支持产品:另一方面,产品的实现离不开技术的支持。技术决定了产品的性能、功能、用户体验等方面,技术的选择和实现直接影响了产品的质量和竞争力。

但永远要知道:技术是手段,产品是目的。

4.个人的产出

  • 思考总结方法与经验,输出分享,帮助他人。
  • 团队规范制定,实施与文档总结沉淀。
  • 团队组件、公司组件与外界组件的建议与贡献。

5.个人职业规划

作为一名程序员,我会从以下几个方面来考虑规划职业:

  • 技术深度与广度:首先,你可以思考自己的技术深度与广度。在后台开发领域,可以选择专注于某一种技术栈或框架,深入研究其原理和实践应用,也可以尝试学习和掌握多种技术,提高自己的技术广度。根据自己的兴趣和职业目标,找到适合自己的技术发展路径。

  • 项目经验积累:通过参与各种规模和类型的项目,积累丰富的项目经验。参与项目的设计、开发、测试和维护,提升自己的实战能力和问题解决能力。不断挑战自己,扩展自己的视野和技能。

  • 持续学习与自我提升:后台开发领域的技术变化非常快速,持续学习是非常重要的。通过阅读书籍、参加培训课程、观看教程、参与开源项目等方式,不断提升自己的技能和知识水平。

  • 跨领域合作与沟通能力:除了技术能力外,跨领域合作和沟通能力也非常重要。与产品经理、设计师、测试工程师等其他团队成员合作,学会有效沟通和协作,共同推动项目的进展和成功。

  • 个人品牌建设:在技术社区、博客、GitHub等平台上分享自己的技术见解、项目经验和成果,建立个人品牌和影响力,吸引更多的关注和机会。

  • 职业目标和规划:根据自己的职业目标和兴趣,制定个人的职业规划。定期对自己的职业规划进行评估和调整,根据个人成长和行业发展趋势做出相应的调整和计划。

6.思考

我一直在问自己一个问题,我给他人带来了什么?

这篇关于关于个人成长与职业规划的思考的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/761136

相关文章

关于如何更好管理好数据库的一点思考

本文尝试从数据库设计理论、ER图简介、性能优化、避免过度设计及权限管理方面进行思考阐述。 一、数据库范式 以下通过详细的示例说明数据库范式的概念,将逐步规范化一个例子,逐级说明每个范式的要求和变换过程。 示例:学生课程登记系统 初始表格如下: 学生ID学生姓名课程ID课程名称教师教师办公室1张三101数学王老师101室2李四102英语李老师102室3王五101数学王老师101室4赵六103物理陈

爬虫阶段思考

内容:写这篇文章是因为最近帮同学改了很多的爬虫代码,感触良多。 我用豆瓣为例,并不是不会用别的,而是这个我个人感觉最经典。然后还会写我遇到的一些问题以及解决方法。 首先,我们得先知道怎样爬取。我用的scrapy框架爬取。 我对此图的理解就是: 从spiders中获得一个请求(REQUEST),通过引擎传递给调度器,之后再返回给引擎,引擎把url封装好后传递给下载器,下载器将资源下载好后

关于微信没有接入鸿蒙NEXT的思考

6月21日,纯血鸿蒙发布,国内的质疑声终于停止,不再被人喊叫换皮 Android 了.就连编程语言都是华为自研的。 可是发布会后微信却成了热点,因为余承东在感谢了一圈互联网企业,如:淘宝、支付宝、美团、京东、抖音、今日头条、钉钉、小红书、微博、B站、高德、WPS等等. 唯独没有感谢腾讯. 中国互联网巨头只有哪么几家,腾讯、阿里、字节、拼多多、美团、百度、京东、华为 他们这些派系又诞生了无数

基于RAG的知识库AI代理机器人,问题思考

基于RAG的知识库AI代理机器人,问题思考 知识库内容分类 对于普通非qa问答格式的知识内容 在分段存储时,需要手动调整,保证每个分段的内容意思完整,不被分割,当然段落也不宜过长,保证内容表达的意思到不可分割为止就行 对于qa问答格式的知识内容 通常需要对问题增加格外索引,因为fastgpt的模式是将问题和回答,作为完整的文本作为向量化的坐标,当问题和回答的内容过长时,使用问题向量化匹配

个人成长的利器:复盘教你如何避免重蹈覆辙

前言  📫 大家好,我是南木元元,热爱技术和分享,欢迎大家交流,一起学习进步!  🍅 个人主页:南木元元 最近忙着学习和工作,更新比较少,期间一直在思考如何才能快速成长,这几天刚看完了《复盘》这本书,感触颇深,在此记录一下自己的收获。 人学习有三种途径: 从书本上学前人的知识; 从身边的人身上学其先进之处;向自己过去的经验和教训学习 其中最重要的学习途径就是向自己学习,

关于后台实践的一些疑问、思考与建议

1. 关于工具类 建议一个公司或者一个产品线的项目,使用统一的工具包,而不是每个项目都建立自己的工具类。包括一些枚举类,基础抽象类等也建议加到项目的基础工具包中。 如果要在自己项目中编写的工具类,尽量多实现一些常用的函数。或者让工具类直接继承一些框架中的常用工具类,如StringUtils可以继承common.lang中的StringUtils。 2. 关于日期和时间 从contro

一个问题的思考

问题:在32位的机器上对long型变量进行加减操作存在并发隐患,那么到底是不是这样的呢? 分析:long类型是64位,所以在32位机器上,对long类型的数据操作通常需要多条指令组合出来 ,无法保证原子性,所以并发的时候会出现问题。 对于JAVA并发编程中的一些问题: 可见性问题: 对于可见性,我们先看下定义: 可见性:一个线程对共享变量的修改,另外一个线程能够立刻看到。并发问题往往都是

Android不能调用java.awt的原因及解决办法和思考

android 里面不能使用awt,底层没有具体的实现awt android里面的窗口创建过程决定了界面只能是android里面的组建。 android的组件都是通过远程的IPC调用完成的,也就是说服务端有什么功能才能用什么功能。 不是所有用java写的程序都能在标准jvm中运行的。 android中的虚拟机是修改过的,跟标准的JVM不同,比如对一张图片的解析,android

关于Confluence的解析与思考

买Confluence上CSDN,特殊折扣购买通道:http://bss.csdn.net/module/btc/atlassian/prduct_detail?project=445&module=34&product=10 Confluence是一个专业的企业知识管理与协同软件,一个专业的wiki,通过它可以实现团队成员之间的写作和知识共享。 一、 Confluence开放API接

一道C面试题的思考

一、前言 C语言真的是学无止境的感觉,大部分同学大学都会开设C语言课程。很多人把C语言二级过了就感觉入门了;对于那些在做嵌入式开发的工程师,几乎每天都要接触C语言,很多人会感觉自己C语言学得很溜了。那好,咱们用一道C语言面试题来测试一下。 二、面试题 首先给出题目: 定义一个宏,求两个数中的最大数 OK,很多人应该能很快写出 #define MAX(x,y) x > y ? x :