第一章:你的编程入门了吗?养成良好的编程思维

我今天看到一个问答:你什么时候觉得自己编程入门了?

我是一个有十年编程经验的程序员,使用过C++,c语言,python,php,Scala等开发语言,做过小程序,使用汉语编程语言中的神器易语言写过工具。但这一行做的时间越长,越觉得编程是一门哲学:有时候觉得自己早就入门了,有时候觉得不知道编程的门在哪里。

可能很多人会说,编程不就是写代码吗?刚毕业的时候我也是这样想的,能实现一个又一个的特性,将一个个设计转化成代码的过程就是编程。但实际上编程的世界如星辰大海,做得越久,越对这个行业有敬畏之心。

分享一个小例子。那是我刚毕业没多久,我们做了一个windows服务程序,到现场的表现是运行速度很慢,跟测试机上的表现相差很多,其实服务处理的业务并不复杂,现场机器上的表现就很让人不解。后来发现这台机器上每周一的运行速度很慢,我就怀疑是系统每周一有任务占用了服务器资源。查看windows日志和运行服务,都没有找到会导致这类问题的原因。后来我就自己做了一个小工具监控服务器的cpu,内存,硬盘,IO等状态,记录在日志里,然后通过图标工具发现每周一的硬盘读写速度会降低。最后找服务器厂家检测之后发现,服务器的硬盘有坏道,更换服务器硬盘之后这个问题就解决了。但是谁能想到,硬盘的坏道可以导致程序每周一运行速度下降,这大概就是一种无法预判的巧合,就好像最开始那个在电路上让人挠头的虫子(注:bug的由来)。

我为什么举这个例子呢?那时候虽然刚毕业, 但始终觉得自己编程水平还不错,看过很多编程方面的书,在学校写了超过十万行代码,我参加工作之后第一次上手完成项目的bug率就比很多老程序员低很多。我以为我已经算入门了,但是在遇到这个问题之后,我才发现,编程不仅仅是会写代码,更要能够在复杂的运行环境下保障程序安全稳定的运行。就好像感觉我已经入门了,突然又被人踹出门外。

很多程序员都应该知道,业务代码只是编程的一小部分。除了代码的可用性之外,很多时候我们需要为健壮性,可维护性,可读性买单。所以在实现功能的同时,也需要考虑很多跟业务无关的东西。

回到开头的那个问题,到现在我也不知道我算不算入门。我参与设计开发过超百万行代码的软件,也做过很多次编码规范的制定,写过十几篇专利。但是不管是以前从事的行业还是现在从事的行业,总会遇到很多很多难以定位的问题。有可能是时间上的妥协,有可能是觉得它不重要,在一定的阶段内我们都暂时地放弃了继续深究这些问题。我记得上次跟总设计师聊天谈到这个问题,我说其实所有问题都有解决方案,只是我们知识面还不够罢了。所以我觉得编程要永远保持门外汉的心态,保持饥饿,守住初心,这大概也就是乔布斯说的“Stay hungry,Stay foolish”的注解吧。

编程是一门遗憾的学科,我们永远不可能写出完美的代码。刚毕业的时候我就是一个C++程序员,在音视频处理、流媒体、桌面软件(QT和MFC)、工业控制、编译器、嵌入式操作系统等方面有丰富的开发经验。我打算在接下来的日子,从C++的基础开始做起,为大家更新一些视频素材,欢迎有兴趣的同学一起学习、讨论。

Keep struggling, keep dream-chasing!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值