那位标榜技术驱动的开发者去哪了?

640?wx_fmt=jpeg

作者:邹溪源,长沙资深互联网从业者,架构师社区合伙人!


他是一位曾经标榜技术驱动世界的开发者,在他年轻的时候,一段独特的经历,让他对技术充满了兴趣,并在技术这条道路上走了很远很远。
然而,在经历了一次又一次的人生发展之后,一次看似普通的变故,让他沉沦,还好,他最终觉醒,并最终涅槃重生。

老w是我在一个QQ群里认识的一位开发者,曾经在我呆了很多年的公司呆了几天,后来在群里吐槽公司怎么怎么样,然后我就加了他的QQ好友,再后来经常跟他一起交流技术上的事情,所以慢慢的也熟悉了。后来,他给我讲了他的发展故事。
他是2013年参加工作,毕业后他就来到广州。他的第一份工作是一家非常普通的公司,也是做开发,公司技术也比较普通,然后业务也一般。
由于是第一份工作,当时他的技术还不够熟练,因此,当他完成一段代码的编写之后,带他的那位师傅跟他讲:
你这样的实现虽然能够满足我们的业务需求,但是一点都不优雅,而且没有什么技术含量。如果长期这样下去并没什么好处。
在这样的公司虽然技术不怎么样,但是公司的技术发展不能局限个人的发展,作为开发者,无论如何都应该有更加长远的眼光去学习更加先进主流的技术。
他的老师教他用了他一些新的代码模式,应用的一些设计模式和一些外部组件,让他以不同视角方便地实现了这些功能。他觉得这样的代码很牛逼。对于一个初出茅庐的开发者来说,能够接触到这种新鲜的水果,简直就是刷新了他的人生观。从此之后,他对新的技术和方法充满了无穷的兴趣和求知欲。
当然,毋庸置疑每一位开发者的技术发展路线或许都是相同的。在快速掌握了公司的技术之后,就会到达一个瓶颈期,这个瓶颈期如果没有很好地度过,可能会认为,这家公司已经无法承载自己的发展,并最终选择离职。
在公司呆了一年多之后,由于带他的那位老师已经已经先行离去,所以他也在老师之后离开了这家公司。
跌跌撞撞之下他找了一些新的工作,这些工作都让他获得了不同的体会,由于他喜欢引入新的技术和方法,这些公司都是比较年轻的公司,虽然也是业务驱动的公司,但是对这些新的技术和方法并不排斥,所以老王也如鱼得水,获得了不同的发展,就让他始终相信技术是一定可以改变世界的。
在经历了几年的发展之后,由于广州的房价也比较贵,已经无法在广州买房定居,所以他会选择回到了内地城市长沙。

当时的长沙依然是一个非常闭塞的内地城市,毫不讳言的说,可以被称为是互联网的沙漠。在这个城市除了几家稍微像样一点的公司外,大部分公司都依然处于生存或死亡的边缘。
长沙的公司依然还是以传统的软件开发为主,几乎没有真正的互联网企业。所以当老w回到长沙时,他在长沙想找到以技术驱动的公司就让他一脸懵逼,这样的公司在哪里找?
所以他半年时间跳了六次槽,每家公司都干了不到一个月时间。终于几经周折,他好不容易才找到了一家像样一点的互联网公司,终于可以大展拳脚,开始他实现他的人生梦想了,他是如此的开心。
然而即便如此一切,并非都如他所料的美好。虽然他虽然标榜技术,但由于没有在哪家公司干足够久的时间,他又喜欢学新东西,技术的演进是如此的迅猛,所以他的技术沉淀得不足,即便是他对新技术充满了兴趣,公司也不至于贸然地让他实现这些想法,所以他就在自己的代码中偷偷地实现这些想法,包括引入了一些新的实现方法、一些新的代码实践和一些新的组件,这样的炫技不仅让他自我满意,也同样让项目组的其他成员为之钦佩。
然而,不久后发生的变故让他受到了巨大的挫折。在一次项目演示过程中,由于他私下更改了改了一个曾经稳定的、关键的代码实现和一个第三方组件,而且没有进行测试,导致整个代码无法运行,公司因此错失了一个非常巨大的一个单。他作为责任人显然应该为这件事情负责,但公司念及他是无心的,所以也没有把他辞退,只是暂时把他安排到了一个无关紧要的部门,渴望希望他在这里能够打磨一段时间的技术,然后再来安排更加重要的任务给他。

这个挫折对他的伤害太大了,他认为在这样的公司根本就不需要使用什么先进的技术,能够用就可以了。于是,他开始放弃了他曾经执着追求的理念,不再相信技术驱动了。
从此他只追求梭代码,实现不在乎代码细节,不在乎代码优雅,一切以快速完成代码为目标,在这样的环境下,他干了两年。后来由于公司发展也不佳,而他的技术不仅没有进步,反而在退步,所以,他被公司辞退了。
不知不觉来到了30岁这个关键年龄,他举目四望周围都是依靠他的人,但是技术上他又失去了他的目标,他的人生该如何发展?
他开始了一段短暂的低迷期,他想去找个好的工作。但是由于他的技术能力下滑幅度很大,而且经常跳槽,实在很难找到高工资的工作。
他一度打算离开行业,自谋出路,但是在付出了不少学费后,又不得不回到IT领域。
还好他并没有完全自暴自弃,所以当他降低目标之后还是能够找到勉强能做的工作,几经周折之下,他终于找到了一个双方都很满意的工作,他决定在这里好好干。
不知不觉在这里他又干了两年了,他找回来他曾经的自信,开始了新的追求,但是他不再追求技术驱动世界,而是稳定压倒一切、技术只是业务的辅助,我相信他应该找到了适合他的选择。

每一个程序员或许都曾经经历了怎样的阶段,我们以为技术能改变我们自己的生活,我们甚至认为技术就是我们程序员的全部,我们甚至会认为那些靠业务驱动的公司早晚会被取代,但是这个世界上真的有技术驱动的公司吗?哪怕像Google,阿里巴巴这样的公司其实都是业务驱动的公司。
技术是非常重要的载体,是非常重要的生产力,但仅此而已,我们该选择的技术,实际上是为了商业价值的创造。技术千千万,只有经过沉淀,成为自己的技能,才能形成属于自己的价值。
那些优秀的软件公司,并不一定完全采用最优秀的技术,他们往往善于把技术用到最合适的地方,并让最合适的技术,让最恰当的时机产生最大的价值。

长按订阅更多精彩▼

640?wx_fmt=jpeg

如有收获,点个在看,诚挚感谢640?wx_fmt=png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/313261.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图像PCA方法

http://blog.csdn.net/lifeng_math/article/details/50014073 http://blog.csdn.net/lifeng_math/article/details/49993763#旋转不变的-lbp 引言 PCA是Principal Component Analysis的缩写,也就是主成分分析。也是用于降维常用的一中方法。PCA 主要用于数据降维&a…

.NET实时2D渲染入门·动态时钟

前言说来这是个我和我老婆的爱情故事。从小以来“坦克大战”、“魂斗罗”等游戏总令我魂牵梦绕。这些游戏的基础就是 2D实时渲染,以前没意识,直到后来找到了 Direct2D。我的 2D实时渲染入门,是从这个 动态时钟开始的。本文将使用我写的“准游…

ASP.NET Core在 .NET Core 3.1 Preview 1中的更新

.NET Core 3.1 Preview 1现在可用。此版本主要侧重于错误修复,但同时也包含一些新功能。对Razor components的部分类支持将参数传递给顶级组件在HttpSysServer中支持共享队列在SameSite cookies的重大更改除了.NET Core 3.1 Preview版本发布之外,我们还发…

小波变换学习(1)

转自:https://www.zhihu.com/question/22864189/answer/40772083从傅里叶变换到小波变换,并不是一个完全抽象的东西,可以讲得很形象。小波变换有着明确的物理意义,如果我们从它的提出时所面对的问题看起,可以整理出非常…

.NET Core 3.0 新 JSON API - JsonDocument

JsonDocument类 JsonDocument是基于Utf8JsonReader 构建的。JsonDocument 可分析 JSON 数据并生成只读文档对象模型 (DOM),可对模型进行查询,以支持随机访问和枚举。使用 JsonDocument 分析常规 JSON 有效负载并访问其所有成员比使用 Json.NET 快 2-3 倍…

微软推出 Microsoft.Data.SqlClient,替代 System.Data.SqlClient

背景在 .NET 创建之初,System.Data 框架是一个重要的组件。它为创建 .NET 数据库驱动程序提供了一种方式,类似 Visual Basic 的 ActiveX Data Objects。虽然 API 不一样,但重用了它的名称,所以才有了 ADO .NET 这个绰号。ADO 和 A…

C++ 从文件夹中读取文件

OpenCV从文件夹中读取内含文件方法 参考&#xff1a;http://www.2cto.com/kf/201407/316515.html http://www.it610.com/article/5126146.htm http://blog.csdn.net/adong76/article/details/39432467 windows平台代码&#xff1a; [cpp] view plaincopy #include <io.h&…

你必须知道的容器监控 (1) Docker自带子命令与Weave Scope

本篇已加入《》&#xff0c;可以点击查看更多容器化技术相关系列文章。本篇会介绍几个目前比较常用且流行的容器监控工具&#xff0c;首先我们来看看Docker自带的几个监控子命令&#xff1a;ps、top以及stats&#xff0c;然后是一个功能更强的开源监控工具Weave Scope。# 实验环…

char *与char []

由于指针的灵活性&#xff0c;导致指针能代替数组使用&#xff0c;或者混合使用&#xff0c;这些导致了许多指针和数组的迷惑&#xff0c;因此&#xff0c;刻意再次深入探究了指针和数组这玩意儿&#xff0c;其他类型的数组比较简单&#xff0c;容易混淆的是字符数组和字符指针…

.NET Core ORM 类库Petapoco中对分页Page添加Order By对查询的影响

介绍最近一直在使用PetapocoEntity Framework Core结合开发一套系统。使用EFCore进行Code First编码&#xff0c;使用使用Petapoco进行数据库的常规操作。并且结合PetaPoco.SqlKata的使用&#xff0c;减少了编写SQL语句的工作量&#xff0c;对提升开发效率有很大的帮助。Petapo…

.Net Core 3.0 IdentityServer4 快速入门

一、简介IdentityServer4是用于ASP.NET Core的OpenID Connect和OAuth 2.0框架。将IdentityServer4部署到您的应用中具备如下特点&#xff1a;1&#xff09;、认证服务2&#xff09;、单点登陆3&#xff09;、API访问控制4&#xff09;、联合网关5&#xff09;、专注于定制6&…

.NET Core3.0创建Worker Services

.NET CORE 3.0新增了Worker Services的新项目模板&#xff0c;可以编写长时间运行的后台服务&#xff0c;并且能轻松的部署成windows服务或linux守护程序。如果安装的vs2019是中文版本&#xff0c;Worker Services变成了辅助角色服务。Worker Services 咱也不知道怎么翻译成了这…

OpenCV Mat数据类型像素操作

转自&#xff1a;http://blog.csdn.net/skeeee/article/details/13297457 OpenCV图像像素操作及效率分析 在计算机视觉应用中&#xff0c;对于图像内容的读取分析是第一步&#xff0c;所以学习高效的处理图像是很有用的。一个图像有可能包含数以万计的像素&#xff0c;从根本上…

Bumblebee微服务网关之Url重写

为了提高Url访问的统一和友好性&#xff0c;一般访问的Url和服务定义的Url有所不同;为了解决这一问题Bumblebee提供Url重写功能;通过Url重写功能可以在转发前进行一个重写后再转发到后台服务。引用插件Bumblebee中使用Url重写需要引用两个插件&#xff0c;分别是Bumblebee.Conf…

依赖注入:一个Mini版的依赖注入框架

前面的章节中&#xff0c;我们从纯理论的角度对依赖注入进行了深入论述&#xff0c;我们接下来会对.NET Core依赖注入框架进行单独介绍。为了让读者朋友能够更好地理解.NET Core依赖注入框架的设计与实现&#xff0c;我们按照类似的原理创建了一个简易版本的依赖注入框架&#…

.NET Core 3.0 新 JSON API - JsonSerializer

JsonSerializer 前面几节的内容可能稍微有点底层&#xff0c;我们大部分时候可能只需要对C#的类进行串行化或者将JSON数据反串行化成C#类&#xff0c;在.NET Core 3.0里面&#xff0c;我们可以使用JsonSerializer这个类来做这些事情。 例子 还是使用之前用到的json数据&#xf…

Caffe查看每一层学习出来的pattern

Filter visualization http://www.cnblogs.com/dupuleng/articles/4244877.html 这一节参考http://nbviewer.ipython.org/github/BVLC/caffe/blob/master/examples/filter_visualization.ipynb&#xff0c;主要介绍如何显示每一层的参数及输出&#xff0c;这一部分非常重要&am…

.NET Core 3.0 新 JSON API - Utf8JsonWriter

Utf8JsonWriter类 下面研究一下如何写入json文件。这里需要使用Utf8JsonWriter类。 直接看代码&#xff1a; 这个类需要传递的参数类型是Stream或者Buffer&#xff0c;也就是向Stream或Buffer里面写入数据。 那么就提供一个buffer&#xff1a; 下面单独写一个方法&#xff0c;来…

python查看CNN训练模型参数

参照&#xff1a;http://blog.csdn.net/u011762313/article/details/49851795 #!/usr/bin/env python# 引入“咖啡” import caffeimport numpy as np# 使输出的参数完全显示 # 若没有这一句&#xff0c;因为参数太多&#xff0c;中间会以省略号“……”的形式代替 np.set_prin…

Bumblebee微服务网关之consul服务发现

网关需要维护相关负载的服务器&#xff0c;手动添加相对来说是一件比较麻烦的工作&#xff1b;为了解决这一问题组件扩展了一个基于consul服务发现插件&#xff0c;通过配置这个插件和启用后网关会自动从consul服务中获取服务并添加到网关对应的路由负载规则中。引用插件Bumble…