我似乎理解了编程的意义

简介: 编程的意义是什么,我又为什么要编程呢?这是一个不时会浮现在我脑海中的问题,它来得并不频繁,但每次却都伴随着对自己职业生涯或人生目标的质疑而产生,令我感到些许困惑和不安。而在这十几年的职业生涯中,我也似乎总能在每个阶段为自己找到一个继续热爱编程的理由,直到它已无法解答再一次疑惑的产生。

编程的意义是什么,我又为什么要编程呢?

这是一个不时会浮现在我脑海中的问题,它来得并不频繁,但每次却都伴随着对自己职业生涯或人生目标的质疑而产生,令我感到些许困惑和不安。而在这十几年的职业生涯中,我也似乎总能在每个阶段为自己找到一个继续热爱编程的理由,直到它已无法解答再一次疑惑的产生。就这样一次又一次的循环往复,我似乎渐渐理解了编程的意义......

 
 

 

编程是一项技能

回想大学毕业刚成为一名程序员时,自己对技术是如此狂热,我不断地购买各类技术书籍,几乎所有的业余时间也都被用来钻研技术,提高自己的编程能力。我也因此很快成了同一批入职新人中,编码效率和质量最突出的一个。而在那段时间里所做的技术积累,也成了我日后工作的坚实基础,编程作为一项技能已经深深地嵌入到了我的身体里。

即使到了今天,我仍非常怀念那段心无旁骛,一心钻研技术的日子。我为能在工作中写出的每一行优秀代码而兴奋,更为每一天能在技术上取得的点滴进步而喜悦,一切都是那么单纯,编程的意义对于那时的我来说就在于技术本身

 

编程是去解决问题

“能力越大,责任也也大”,这句电影“蜘蛛侠”中的经典台词同样适用于程序员的职业生涯。随着技术能力的提升以及工作中获得的认可,我的职位也由原来的初级程序员变为了资深开发工程师,以及后来的架构师。相应的,除了编程之外,我工作中的很大一部分时间需要用来与用户进行沟通,并分析他们提出的需求。对于我来说这个角色转换的过程,是艰难甚至有些痛苦的。 我不得不用自己最薄弱的沟通技能去和用户打交道,更要命的是我所习惯使用的那些技术语言有时很难让他们理解。

我很快意识到自己已不再是那个只需被动接受任务安排,并将自己的编程工作完成好就万事大吉的初级程序员。除了技术之外,我更需要能够突破程序员思维,去发现用户需求背后所隐含的真正问题。我比以前变得更加务实,不再刻意追求技术的高深,而是尽可能从问题本身出发,选择最有效的技术手段去解决它。

此时,编程的意义也发生了改变,它已不再局限于技术本身,而成了解决问题的理想工具

 

编程是在表达,也是在创作

就这样又过了几年,当“为什么要编程?”这个问题再次摆在我的面前时,自己也已过了而立之年。对于大多数中国程序员来说,这个年纪已经算是高龄,甚至还有很多人会认为30岁还在编程,一定是混得不够好吧。当然,对于这些质疑我也总是一笑了之。其实,在此之前我也有过很多转型的机会,比如去业务部门,或是转作管理等等,但最终我还是选择留在了技术岗位上,因为我觉得编程仍是我最喜欢的,或许也是我唯一擅长的吧。

而这个时期也成了我整个程序员生涯的黄金期,我写了公司的核心框架以及一些重要业务系统的核心算法。我很享受这段时光,因为我已几乎感受不到那些技术上的牵绊,我更像雕刻师使用手中的刻刀一般,自如地运用编程来实现那些我认为优秀的东西。

编程对于我来说已不再是一项技能或是工具,我是在通过编程进行着自我表达与创作,这种感受带给了我极大的自由度,而我也从中感受到了前所未有的喜悦与乐趣。

 

编程是为了留下痕迹

最终我还是走上了管理岗位,这里面有很多个人无法左右的因素(包括大环境、家庭、经济等等)。但我仍然更乐意被大家称为程序员或者“老”程序员。就像在简书的自我介绍中,我总是把全栈工程师放在那些“头衔”的第一位,我也还在利用业余时间做自己喜欢的开源或个人项目。当我再一次问自己“为什么要编程”时,获得了与以往不一样的感悟:或许我们编程是为了能够留下一些痕迹吧

公司里最近都在为一个老系统的升级问题发愁,这个系统已经运行了将近20年时间了,为了升级系统,大家不得不深入到这个系统的框架中,去读底层代码。我们读到了一位已经退休的美国同事Bill所实现的数据库连接池代码。在那个时候JAVA刚开始流行,还没有像Spring这样的框架,或是如Hibernate或MyBatis这样标准的持久层实现,这个系统中所有的数据库连接池及核心持久层代码都是由我的这位美国同事写的,这些代码让整个系统稳定运行了将近20年,大家都不禁为他高超的技术水平发出由衷的赞叹。

我还认识一位从事证券交易软件研发的公司CTO,看年纪应该已经接近50了,但他仍然在亲自写着那些证券交易的核心代码。当我问他到了这个年龄和职位,为什么还要坚持写代码时,他告诉我,当他看到自己所写的代码每天在支撑着千亿级的证券交易时,他感到非常兴奋和自豪,并不断地希望能够通过自己的努力将它做得更好。

我的这个美国同事不会听到大家为他十几年前所代码发出的赞叹,股民们也不会知道这位CTO所写的代码正在支撑着他们的日常交易。那些优秀的代码是他们留下的痕迹,我们不能确定这些痕迹能够保留多久,或许几年,或许更短,但它们都曾经在我们的日常生活中产生了重要的价值,而新的未来也将构建在这些痕迹的基础之上,我想这可能才是编程的意义所在吧。

我似乎理解了编程的意义,但我明白未来的某一天,我一定还会问自己同样的问题——为什么要编程,希望到那个时候自己还能是那个热爱编程,有着一颗匠心的“技匠”吧......



作者:技匠
链接:https://www.jianshu.com/p/cb7021db2d0c
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
目录
相关文章
|
数据可视化 数据库
|
6月前
编程题小练
编程题小练
44 0
|
C语言 C++
编程萌新的内心独白
编程萌新的内心独白
|
Linux
linux模块化编程
linux模块化编程
268 0
|
程序员 Ruby
松本行弘:我的编程人生
松本行弘:我的编程人生
275 0
松本行弘:我的编程人生
|
程序员 测试技术 API
循序渐进学编程
软件开发人员是一个日新月异的领域—–IT中的大师,今天的编程方式与明天的编程或许截然不同,技术在不断地革新,新语言、新平台的如雨后春笋般出现、更好的解决方案的冒出,因此我们需要跟得上节奏,我们别无选择,唯有努力提高自己。
147 0
循序渐进学编程
|
机器学习/深度学习 人工智能 自然语言处理
编程需要了解的问题
  儿童编程则是一门有趣的课程 ,与成人编程相比学习编程有着明确的目的,或者是为了加薪、跳槽。接下来给大家讲讲家长要了解的编程问题,希望对你们有帮助。许多重视教育的家长都意识到,让孩子从小就开始编程,培养编程思维是一种顺应时代的选择。当孩子在学习编程时,作为父母,有五个方面必须明确。1.什么是steam教育儿童编程,从简单的角度来说就是教儿童学习编程。有些家长不明白,编程这种大学计算机专业才会涉及的专业知识,为什么孩子也要学呢?情况就是这样的,随着人工智能的发展,我们孩子未来生活的世界将是一个用代码编写的高科技智能世界。想象一下,如果孩子那时候还没有编程思维,那么就很难融入那样一个社会。儿童编
149 0
|
Python
pychon 开始编程
1 IDE 运行python 新建项目 新建hello.py文件 输入: print('hello world') image.png 运行hello.
1389 0
|
JavaScript 前端开发 机器人
你会教自己的孩子编程吗?
​​很多家长都想让孩子学编程。科技行业领导者和教育学家呼吁学校开设更多的计算机课程,家长也认为编程是未来社会的必备技能。 为什么要学编程?为了让计算机解决特定的问题,我们把指挥计算机工作的指令写在程序中,当计算机执行程序时,即可按照这些指令完成工作。
2971 0
|
索引
2017年360最后一道编程题
A、B两伙马贼意外地在一片沙漠中发现了一处金矿,双方都想独占金矿,但各自的实力都不足以吞下对方,经过谈判后,双方同意用一个公平的方式来处理这片金矿。
1124 0