编程给我带来了什么
2017-11-15 23:09
369 查看
编程给我带来了什么
最近有一些思考,但是都是比较零碎的,想着来总结一下,也有记录之宜。我一直认为编程的实力分为硬、软实力两种。你所通晓的编程语言语法、三方库框架、开原协议等等,这些是硬实力。而面对同一个需求,你的思维方式以及你思维的代码表达能力,这就是软实力。硬实力之硬,硬在有较好的辨识度,随便出几道题考考你就知道你会不会C++,但是硬实力的软肋在于“跨平台”不友好。一个几年经验的C++工程师跟一个零基础的小白同时接触JS,在基本语言的学习速度上,前者不见得会有多大的优势。但是在软实力上,这名C++工程师多年的程序思维表达训练一定可以让他很快的适应JS的表达方式。编程的本质就是一种思维方式的表达,这种能力是无所谓编程语言的。不同的人在解决同一个问题时,有的人的方法是零零碎碎不着边际,有的人的方法是一针见血的简单利落,或许最终他们都能够正确的解决问题,但是高低之分早已分明。而这种复杂的问题简单化的能力,是一种高屋建瓴的思维方式,这种技能是可能在一定的熟练度的前提下训练出来的,这也是我一直在追求的目标。
以上,应该是我这几年来对编程最为本质的思考,不止于此,编程还对我的思维方式有了一些改变。
思维方式的改变
万物皆有因,Bug皆有道。这一点想必程序员看了都会感慨良多,谁还没有个疑难杂症呢,但是愈是麻烦的bug,愈是不能失去耐心、没有章法。按照我的经验,在面对疑难杂症,且三十六计全出后依旧未能解决问题时,是很容易出现一些较为玄学的想法的,就好比我最近的一个项目,同样的代码从Ubuntu移植到Windows下,性能下降了几百倍,我想只要是一个冷静的头脑都不会认为这是操作系统的问题,但是如果把你放在当时的情景下,你会怎么做呢?我已将所有能够排除问题的地方都仔细检查了一遍,但是还未有结果,一般这种时候,最容易出现一些玄学的念头,冷静!系统级别的bug终究是非常之小的概率。编程的思维方式。我想大部分人的Debug思维方式可以用下图粗略的表达:
但是Debug不是一蹴而就的,如果本次流程结束后不能够有效解决问题,那么之后的解决思路是怎样呢?难道就胡乱排雷?就目前我的经验来说,在上图稍做一些改动即可达到较好的效果,如下:
在排除了所有的猜疑目标之后,此时不应该泄气,更不可胡乱猜疑,在确定了你都正确的排除了猜疑目标之后,接下来我们需要增大猜疑区域,再次通过去形成我们新的一波猜疑目标。有效的思维方式可以让我们的debug过程更为简单明了,这也不失为我上文所说的高屋建瓴的思维方式之一。
编程之路漫漫,切勿忙于奔跑而疏于思考。
相关文章推荐
- 微软,您的.net为中国程序员带来了什么?-Java基础-Java-编程开发
- 毕业给我带来了什么
- Windows Shell 为编程带来了什么?
- 程序员的乐趣从哪来?编程能给我带来乐趣吗?
- 异步加载,在编程中具体意思是什么?原理是什么?
- 什么是MEAN?JavaScript编程中的MEAN是什么意思?
- 类的静态成员函数带来了什么好处,应该在什么时候使用?
- 软考给我们带来了什么?
- 博客园为你带来了什么价值
- 学编程选什么语言好?是PHP、Python还是Ruby?
- AI会给世界带来什么变化?世界著名机器人学家关于未来的预言!
- 如果不从事编程,我可以做什么?
- 什么是面向切面编程AOP?
- 我只记得别人给了我什么,不记得别人没给我什么?
- 一顶博士帽能带来什么(转李开复)
- EPOLL为我们带来了什么
- 人工智能到底能给我们带来什么?
- 微软,您的.net为中国程序员带来了什么?
- 编程的首要原则(s)是什么?
- Linux shell编程(一):shell是什么?