编程的意义是什么,又为什么要编程呢?我觉得如果不明白这个问题的话,你是无法真正了解编程了解程序员这个职业的,就算你自认为自己会开发项目,但是在我看来你还是个外行程序员。为什么我这么说,请跟着笔者往下看:

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

编程是一项技能

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

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

编程是去解决问题

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

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

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

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

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

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

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

编程是为了留下痕迹

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

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

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

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

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

既是写给我自己,也是写给在学习编程的你们,共勉!

学习C/C++编程知识,或者你自学C++编程有难度,可以关注我一起成长!

初学者注意:你需要明白编程的意义所在,否则是学不好编程的!相关推荐

  1. 那些 IT 界的神翻译,原来我学不好编程的原因就在这

    近日博主 ruanyf 在网上发布了一条关于套接字"socket"的解释,引发了网友对于那些 IT 界的神翻译的讨论: 突然想到,socket就是插座.服务器的socket,就是服 ...

  2. 为什么好学生,学不好编程?

    老师好,今年我大二,软件工程专业. 我的高数.英语等课程都学的很好,考试成绩也很高.但唯独学校开的C语言学不懂,即使花了很长时间 看懂了一点,仍然也写不出来代码.而且,我同宿舍的很多人都有这种情况,她 ...

  3. 谈我们为什么学不好编程2——你是否已进入“等死模式”?

    在大本营中,我最常被问到的问题之一,可能是像这样的:老师,请问我是应该学 C++还是学Java呢?老师,听说C语言已经不行了, .Net才是未来的方向,是不是这样的?老师,我原来学过C,现在想学C#, ...

  4. 为什么学不好编程?——好文章一网打尽

    常看我文章的同学应该都知道,我经常会发一些精选文章链接合集.俗话说"温故知新",所以偶尔回顾一下过往的优秀文章也不妨是一个好选择.另外,经验告诉我,很多来到大本营的同学都是匆匆过客 ...

  5. 如何学好c语言数据结构编程,如何学好C语言和数据结构,为什么学不好编程?——好文章一网打尽...

    经常看我文章的同学应该都知道,我经常会发一些精选文章链接合集.俗话说"温故知新",所以偶尔回顾一下过往的优秀文章也不妨是一个好选择.另外,经验告诉我,很多来到大本营的同学都是匆匆过 ...

  6. ironbot智能编程机器人_边玩边学,编程启蒙,IronBot机器人套件视频图文评测

    前言 当今世界充满竞争和挑战,你的对手可能不是人.早在2015年,教育部就颁发了指导意见,鼓励以编程为核心的,包括科学(S).技术(T).工程(E).艺术和航空(A),以及数学(M)五个方面的&quo ...

  7. 少儿学计算机编程的十大好处,孩子学少儿编程的十大好处

    原标题:孩子学少儿编程的十大好处 随着科技的发展,编程学习也是全球化的趋势,国内编程学习热潮日盛.越来越多的家长开始让孩子接触学习编程.近年来,许多的家长都纷纷给小孩子报名学少儿编程,很多家长知道学习 ...

  8. 学计算机从哪入手,计算机编程从何入手?怎样学计算机编程?

    编程不仅仅是门技术,更是门艺术,是一种生活,真正热爱编程的人才能感受到它的魅力所在,所以,先一点就是:你是否真的感兴趣? 如果你确定你自己感兴趣,并有坚持下去的决心,那可以去参加各种短期的编程培训班( ...

  9. 会python编程可以做什么工作_学Python编程到底能做什么工作?

    学Python编程能做什么工作?随着人工智能发展,学习python语言的人员有更多的岗位机会,python从事的职业广泛,从游戏到AI人工智能能都可以用Python实现.除了编程,各种岗位的人都应该学 ...

最新文章

  1. Keepalived+nginx实现高可用负载均衡
  2. 11最接近target的值
  3. PYTHON: PYENV, PYVENV, VIRTUALENV – WHAT’S THE DIFFERENCE?
  4. Ubuntu18.04安装微信(可用)
  5. Jedis 常用API使用
  6. MockServer的测试思想与实现
  7. 【ArcGIS|空间分析】求年度NDVI最大值图像和NDVI最大值出现日期图像
  8. java jacob pdf_java利用jacob将word转pdf
  9. linux命令批量修改文件名称
  10. 统计|如何理解两个总体均值之差的区间估计的计算
  11. win7计算机系统还原,win7怎么系统还原 还原步骤详解
  12. TensorFlow练习13: 制作一个简单的聊天机器人
  13. SQL Server AlwaysOn部署
  14. 实力肯定!Coremail邮件网关荣获金融信创优秀解决方案奖
  15. 麒麟处理器排行天梯图2022 麒麟处理器各型号排行2022
  16. errorImg异常图片显示
  17. Mysql修改数据库名方法
  18. 【HCNA】-【网络模型】
  19. 开发一个简单易用的SDK的详细步骤(超详细,超适用)
  20. mysql表的导入和导出

热门文章

  1. if函数 字体自动标红_发喜糖!REPT函数和图表订婚了~~
  2. python 对象_Python小课堂面向对象
  3. MySQL基础,DDL和DML(新人入门向)
  4. 编程的7个主要步骤:
  5. 美好生活水果新食尚消费趋势报告
  6. 互联网晚报 | 3月26日 星期六 |​ 竞拍规则优化,部分城市土地市场有所回暖;​​武汉房贷利率下调...
  7. 互联网晚报 | 2月12日 星期六 | 宝马控股华晨宝马落锤;知乎否认视频部门裁员;《老友记》全十季高清版全网首播...
  8. 2021年科技赋能中医药产业发展报告
  9. 互联网早报 | 3月16日 星期二 | 微信AI直播助理开放内测;汽车之家港交所挂牌上市;美团App内测“群聊”功能...
  10. 这些人生经验与常识相反