程序员如何在工作中进步

简介: 程序员如何在工作中进步

工作,对于大部分人都是不可避免的一件事,有的人是为了生存,有的人是为了自我价值的实现,也有人是为了将来不工作而现在努力工作,出发点可能各种各样,但是工作总是大部分人不可避免的一部分。


程序员,相对来说是薪资较高的群体,也是相对来说比较容易焦虑的群体,而我,就是一名工作的程序员,我想谈谈程序员在工作中如何进步,从而保持自己的竞争力。


融入


刚入职一家新的公司,开始的磨合期是比较重要的,主要是个人价值观和企业文化之间的冲突。就像谈恋爱,两个人在一起更多的是彼此家庭文化之间的碰撞,能不能碰撞中找出那一份平衡,这将决定恋爱后能否结婚。


如何融入一家公司是很重要的一步,每一家公司都有自己的技术基因,进入一家新公司就意味着你必须先融入这家公司的技术环境,努力地成为其中的一份子,比如:


  • 了解并接受软硬件各方面的开发环境

  • 了解并接受该公司的技术架构

  • 了解并接受该公司的沟通方式


  • 了解并接受该公司的项目开发模式与各种规范

作为一名程序员,我理解你内心的高傲与自信,我相信你一定自认为自己的东西一定是好的,但是当你进入一家公司发现这家公司各方面都和你有不同程度的冲突的时候,你有两种选择:


  • 了解并接受

  • 离开

改变


当你决定留在当前的公司,就意味着有了更多的可能性,当你在融入阶段对公司的一些情况不甚满意但是勉强接受的时候,这时候就可以考虑对其进行改变。

我们知道,存在即合理,你了解并接受了公司的某一件事物,也就了解了这个事物的缘由,知道了公司为什么在某件事上用这种方式去做,原来并不是公司看不出这件事物的局限性,而是有一些实实在在的原因在困扰着公司去尝试更好的方式。


有时候出现这个情况我觉得是好事情,因为这是你可以改变公司某一件事情的机会,如果你有信心,那么你就可以推动公司在这件事物上做出改变,然后朝你赞同的方向发展。

所以开始吧,去改变它,让你的技术基因融入到这家公司。


所以,融入一家公司后,不能安于现状,应当勇敢地做出改变。


效率


在我看来,做出改变的都是有自我要求的人,这样的人有技术热情,有自我增长的能力,他们做出改变的目的都是让一切往更好的方向发展,比如可以提高工作效率。


还是以上面的例子解释一下效率工作的情况:领导经过调研后,发现微服务架构确实优于目前公司的单体应用,决定开始向微服务方向转变,你信心大振,公司的一个单体应用开始拆分成数十个微服务,你也踏上了用Flask编写微服务的幸福生活。


但是写着写着,每个人在构建一个微服务的时候,你注意到大家都会做一件重复的事情:复制上个项目的配置文件、日志文件、数据库操作文件等等。总结来说就是目前开发一个微服务前需要花半个小时来搭建项目的基础设施,而这些设施是类似的,是属于重复性的动作。


你心想:为什么不将常用的基础项目组件汇总成微服务模板,然后做一个命令行工具一键生成呢?半个小时就缩短成 5s,何乐而不为?


于是你编写了一个脚手架可以自动生成微服务模板,你将自己的成果朝同事展示,获得领导允许推广的承诺,从此,每个使用这个脚手架的人都至少节省了半小时的时间,大大为公司提升了工作效率,你高兴之余再顺势朝领导提出了Go语言开发微服务可能更爽~

再一次,你成功对公司的一些事情做出了改变,并带动了效率的提升。


产出


谈产出,我觉得这部分是双向的:


  • 你为公司产出了什么

  • 公司促进你产出了什么

你为公司产出了什么


公司考量一个人,你对公司的产出是十分重要的一个点,你有再厉害的技术,如果不能给公司带来实实在在的产出,那么你的技术可能对公司并没有什么用。


有的人可能觉得自己在公司就是一个拧螺丝的,自己做的事情很简单平凡,并没有什么挑战性,这样怎么做到产出呢?


对于这样的想法,我觉得首先要改变一下自己的思维,拧螺丝、做的事情很简单,这些都不是理由。


任何人,只有个人水平提升到相对较高的时候,做大部分事情都会觉得简单,你现在觉得此事做的事情简单,希望更有挑战,如果让你做难一点的事情,你习惯后,又觉得简单了,这样你就陷入了觉得简单,提出要求,继续觉得简单,继续提出要求的情况,这样对个人的发展是及其不友好的。


我个人建议,哪怕在做简单的事情,你可以自己来让这件事情做得不简单,自身主动地给这件事来提升难度。很简单的道理,都是做一样的事情,你做得更加深入、优秀,甚至能影响到其他人为你手头的事情做出改变,这就体现出你不一样的地方,你做再简单的事情都能有不一样的产出。


再说,简单的事情你都没有产出,公司也不放心把更有挑战性的事情交给你啊。


所以,看你为公司产出什么,在任何岗位都是可以体现的,和做的事情没关系。


做的工作简单或者说拧螺丝都没关系,但是你的产出完全可以不平凡


公司促进你产出了什么


好的工作环境,是共赢的,你可以为公司做出产出,公司也应该会促进你进行一些被动产出。

所以一个好的工作会给你带来反向的输出,不论是管理还是技术甚至是做人的道理,比如:


  • 开始慢慢带新人,你有了管理方面的经验

  • 和同事交流学习,你代码水平进一步提升,github上又多了一个上千star的项目

  • 公司信任你,开始给你更多的挑战,你有了系统级的开发经验

这样你和公司之间就有了非常好的工作关系,做到这一步,我觉得可以在工作中持续不断地进步。


总结


所以,在工作中持续进步依赖于和所在公司有一个很好的工作关系,从而互相产出、进步,而产出则依赖于你认真的工作态度和超出常人的开发效率,开发效率的提升必不可少的前提是你拥有一个不安现状善于改变的心。


而这所有的前提,是找到一个你愿意了解并接受然后融入的公司,各位,祝好。

相关文章
|
9月前
|
机器学习/深度学习 计算机视觉 iOS开发
RT-DETR改进策略【模型轻量化】| 替换骨干网络 CVPR-2024 RepViT 轻量级的Vision Transformers架构
RT-DETR改进策略【模型轻量化】| 替换骨干网络 CVPR-2024 RepViT 轻量级的Vision Transformers架构
461 0
RT-DETR改进策略【模型轻量化】| 替换骨干网络 CVPR-2024 RepViT 轻量级的Vision Transformers架构
|
11月前
|
数据采集 网络协议 JavaScript
网络爬虫性能提升:requests.Session的会话持久化策略
网络爬虫性能提升:requests.Session的会话持久化策略
|
11月前
|
JavaScript 容器
带方向感知功能的js图片遮罩层插件
带方向感知功能的js图片遮罩层插件
|
JavaScript 前端开发 数据库
测试开发之路--Flask 之旅 (三):数据库
本文介绍了在 Flask 应用中实现权限管理的过程,包括使用 Flask-SQLAlchemy、Flask-MySQLdb、Flask-Security 和 Flask-Login 等扩展模块进行数据库配置与用户权限设置。首先创建数据库并定义用户、环境和角色模型,接着通过 Flask-Security 初始化用户和角色,并展示了如何便捷地管理权限。后续将深入探讨权限控制的具体应用。
258 4
测试开发之路--Flask 之旅 (三):数据库
|
存储 安全 文件存储
【elasticsearch】es6重启服务后数据消失,es6如何配置数据持久化储存
【elasticsearch】es6重启服务后数据消失,es6如何配置数据持久化储存
298 1
|
12月前
|
安全
CORS 跨域资源共享的实现原理
CORS 跨域资源共享的实现原理
227 0
|
图形学 容器
【unity实战】Unity中基于瓦片的网格库存系统——类似《逃离塔科夫》的库存系统(上)
【unity实战】Unity中基于瓦片的网格库存系统——类似《逃离塔科夫》的库存系统
576 1
|
开发框架 Java Android开发
JNI中调用Java函数
JNI中调用Java函数
169 0
|
开发框架 Dart JavaScript
深入探讨Flutter中的Web支持功能,以及如何利用Flutter构建跨平台Web应用的最佳实践
【6月更文挑战第11天】Flutter,Google的开源跨平台框架,已延伸至Web支持,让开发者能用同一代码库构建移动和Web应用。Flutter Web基于Dart转JavaScript,利用WebAssembly和JavaScript在Web上运行。构建Web应用最佳实践包括选择合适项目、优化性能、进行兼容性测试和利用Flutter的声明式UI、热重载等优势。尽管性能挑战存在,Flutter Web为跨平台开发提供了更多机会和潜力。
387 1
|
数据库
DDD架构浅谈
DDD架构浅谈
410 4