编程给我带来了什么?

原文:http://www.jianshu.com/u/511ccb5a2012

文章目录

为什么写这篇文章?

程序设计过程

程序编码过程

程序测试过程

1

为什么写这篇文章?

我发现 很多程序员都不想做一辈子的程序员,包括我周围的程序员朋友也跟我说 当他看到公司来了一名四十多岁的程序员时,他心情是焦虑的,因为他不想自己四十多岁了还坐在电脑面前写代码。

听了之后,我不知道该怎么接?

这种想法会产生一个阻力,这个阻力会阻碍我们成为更优秀的程序员。当然这种想法或许已经透漏出 成为优秀的程序员 已经没有诱惑力了。

那么,既然没有诱惑力,为何你还在苦逼编程?

我写这篇文章并不是希望你转行,而是想说 其实编程不仅仅是编程。

不管从事什么行业,也不管学的什么专业,其实它们之间都是互通的。

例如编程,不要只看编程本身,看到更多的应该是在编程过程中如何提升我们的认知的。或者 如何通过编程来提升我们的认知?

根据芒格的格栅理论,我认为就是所谓的跨界学习。也就是说 不同的专业学术,都有它的思想理念,掌握这些思想理念,将其纳入自己的思维格栅中,它能帮助我们在多个维度来分析问题,从而作出更理性的决策。

我目前差不多近三年的编程经验了(不多也不少吧),下面我分享一下 编程给我带来了哪些思维上的提升。

2

程序设计过程

在一开始程序编写过程也许不存在设计过程。但慢慢会发现 如果没有良好的设计,程序在未来维护起来是很困难的。

甚至不需要等到维护阶段,在测试过程中 就会发现各种偶然性问题,偶然性问题的根本原因不是出自偶然,而是程序流程混乱导致的。

想到这种问题的根本原因在于:

一种思维模式:

程序的一种特征是 指定一个输入 必然会有一个对应的输出。程序是单纯的。

所以 一个错误的输出 肯定来源于一个错误的输入。

而程序又是一段一个接一个的执行过程,所以错误的输出 肯定是因为这个流程中出了问题。

这种思维方式对我们测试程序很有帮助。

这应该算是一种看待世界的方式既:

如果要解决问题 就要找到问题的根本原因。

就像我们分析源码的目的一样,“知其然 也要知其所以然”,相信所有事物运转正常都有它内在原理。

偶然性问题也许是因为:

它也许不是真的能工作

你依靠的边界条件也许只是一个偶然,在不同情形下 它的表现可能就会不同

也许你都不知道它为什么能工作

...

解决偶然性问题的方法就是在编码之前做好程序的设计工作。

主要设计包括:

程序结构设计

这种设计 可以提升我们的抽象思维。

这种结构设计 就是我们经常说到的 模块化、组件化等架构相关的内容。

它需要我们将一个复杂的东西 拆分成具体可实施的小模块。

这也是一种思维模式:

将复杂问题 分解成多个可解决的问题。

这种思维模式同样也可以运用在其它领域。

如何运用的呢?

碰到一个难解的问题,就试着分解这个问题,分解到具体可以实施的地步,再一个一个的解决。

模块化、组件化等架构设计的目的是为了解藕。解藕的目的是便于管理。

这种思维模式可以运用到管理中,就是我们经常见到的 各司其职。

上到国家管理 下到公司的管理,都是如此。

程序流程设计

简单来说 就是如何让程序跑起来正常、可控。

首先就是如何保证正常,比如:处理同步异步问题的方法。

让整个流程是正常的,也就是上面所说的 非偶然性的正确输出。

可控,在以后新增、更改需求也能保证流程正常。

这里就涉及到了各种设计模式,以及一些编程语言

(很多编程语言之所以能提升效率 我认为就是它的设计能让程序更加可控,例如:函数式编程里函数作为一等公民,可以像普通变量一样传递,让我们省心去设计一些复杂的东西,因为每多写一行代码 可能就会多一个bug)

在其它领域中的应用:

比如:工厂的流水线设计、各种流程手续的办理等。

正常 就类似于 流水线能够正常运转;

可控 就类似于 在流水线中间加入一个环节或者减少一个环节 不会干扰到其它环节。

3

程序编码过程

有了设计过程,编码过程就应该是按照设计合约来完成的。当然设计也不能保证完美无缺,所以在编码过程中 如果发现设计有问题或者是设计过程未想到的场景,应该更新设计(刚开始做设计会经常出现设计不完善问题)。

在这个过程中能让思维更加谨密。

在其它领域也一样,这种谨密的思维 能减少出错的机率。

4

程序测试过程

我们程序员都知道,不管代码写得多优雅、流程多风骚,都需要来一场测试拼杀。

测完得到了一堆bug,往往能给我们更多反思,测试之前的自信哪来的?

或者是,

我就知道会有这么多bug,因为我写得烂嘛~

然后就是一个一个的解决它,BUT,没那么容易

在 bug 的解决过程中,你又会发现 如果一个问题解决方法不对 这个解决方法又会产生新的问题。

也或许是因为对问题的定义不对而导致的。

所以说,问题的定义决定了问题的解决方法,而问题解决方法又决定了新问题的来源。

所以 “我们有必要对方案实施后可能产生的后果进行预判”

但 就算进行了预判,之后又可能出现其它问题。

不过 就算永远无法确定已经找到的问题定义是正确的,但是永远不要停下来寻找正确定义的脚步

这是不是也算一种人生的态度呢?

回到开头,为什么 不想做一辈子程序员?这个问题的本质是什么?

是因为程序员太累?还是觉得做一辈子程序员没出息,工资太低?或者是觉得自己应该干一番大事,而做程序员格局太小了?

问题的本质其实就是在于理想与现实之间的区别。

如何解决这个问题,就看你怎么定义这个问题了。

我觉得编程确实可以给我们程序员带来很多提升,能有多大提升 这就在于你有多在意它。而把编程思维纳入到我们自己的思维格栅中 不管未来从事什么行业,都是很有帮助的,所以说了这么多 其实就是好好的对待你的代码吧。哈哈~

八戒推荐

重磅来袭!!Docker视频教程

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,681评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,710评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,623评论 0 334
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,202评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,232评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,368评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,795评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,461评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,647评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,476评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,525评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,226评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,785评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,857评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,090评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,647评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,215评论 2 341

推荐阅读更多精彩内容

  • 复杂的东西没有想象中那么复杂 以前没有接触过编程的时候对编程有一种误解,认为写代码就是一种很牛逼的行为,就是普通人...
    我是刘良阅读 438评论 0 2
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,329评论 25 707
  • 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及...
    dle_oxio阅读 11,074评论 6 244
  • kidII阅读 128评论 0 0
  • 她们说,毕业一年了,我们该聚一下了,于是,我们订了城市,订了日子,兴高采烈的跑到了一个城市去相聚,背上书包出去的感...
    xia雪Angie阅读 249评论 0 0