编程给我带来了什么

来源:互联网 发布:淘宝店铺装修教程 编辑:程序博客网 时间:2024/04/28 23:37

编程给我带来了什么

  最近有一些思考,但是都是比较零碎的,想着来总结一下,也有记录之宜。
  我一直认为编程的实力分为硬、软实力两种。你所通晓的编程语言语法、三方库框架、开原协议等等,这些是硬实力。而面对同一个需求,你的思维方式以及你思维的代码表达能力,这就是软实力。硬实力之硬,硬在有较好的辨识度,随便出几道题考考你就知道你会不会C++,但是硬实力的软肋在于“跨平台”不友好。一个几年经验的C++工程师跟一个零基础的小白同时接触JS,在基本语言的学习速度上,前者不见得会有多大的优势。但是在软实力上,这名C++工程师多年的程序思维表达训练一定可以让他很快的适应JS的表达方式。编程的本质就是一种思维方式的表达,这种能力是无所谓编程语言的。不同的人在解决同一个问题时,有的人的方法是零零碎碎不着边际,有的人的方法是一针见血的简单利落,或许最终他们都能够正确的解决问题,但是高低之分早已分明。而这种复杂的问题简单化的能力,是一种高屋建瓴的思维方式,这种技能是可能在一定的熟练度的前提下训练出来的,这也是我一直在追求的目标。
  以上,应该是我这几年来对编程最为本质的思考,不止于此,编程还对我的思维方式有了一些改变。

思维方式的改变

  万物皆有因,Bug皆有道。这一点想必程序员看了都会感慨良多,谁还没有个疑难杂症呢,但是愈是麻烦的bug,愈是不能失去耐心、没有章法。按照我的经验,在面对疑难杂症,且三十六计全出后依旧未能解决问题时,是很容易出现一些较为玄学的想法的,就好比我最近的一个项目,同样的代码从Ubuntu移植到Windows下,性能下降了几百倍,我想只要是一个冷静的头脑都不会认为这是操作系统的问题,但是如果把你放在当时的情景下,你会怎么做呢?我已将所有能够排除问题的地方都仔细检查了一遍,但是还未有结果,一般这种时候,最容易出现一些玄学的念头,冷静!系统级别的bug终究是非常之小的概率。
  编程的思维方式。我想大部分人的Debug思维方式可以用下图粗略的表达:
这里写图片描述
  但是Debug不是一蹴而就的,如果本次流程结束后不能够有效解决问题,那么之后的解决思路是怎样呢?难道就胡乱排雷?就目前我的经验来说,在上图稍做一些改动即可达到较好的效果,如下:
这里写图片描述
  在排除了所有的猜疑目标之后,此时不应该泄气,更不可胡乱猜疑,在确定了你都正确的排除了猜疑目标之后,接下来我们需要增大猜疑区域,再次通过去形成我们新的一波猜疑目标。有效的思维方式可以让我们的debug过程更为简单明了,这也不失为我上文所说的高屋建瓴的思维方式之一。
  编程之路漫漫,切勿忙于奔跑而疏于思考。

原创粉丝点击