编程最重要的习惯是什么

转自:http://mp.weixin.qq.com/s/YiNwc-lsEZ1o7lh8mJZsNA


        有那么一类程序员,他们的产出总是很高,遇到问题他们就像变戏法一样,能直接找到关键点,而且他们似乎很少加班。另一类程序员,在电脑前坐很久很久,不停的敲着键盘,不停的运行代码,找问题,非常努力,但经常是解决一个问题,引入了更多的问题。

        成为一个专业的程序员,不可能有一个万能公式,一般都是很多方面混合出来的,不同的人很可能走了很多不同的路径。但是有一些非常常见的错误,却会极大的阻碍一个程序员的成长。这里边最常见的一个就是写程序不经过大脑。我们一定要记住:

程序是用大脑写的,而不是用手写。

        初看这句话简直就是一句废话,根本就是不言自明的嘛。然而,越简单的概念,我们越容易忽视,认为他不重要,实际行事的时候却经常反其道而行。

        看一下几种常见的编程方式:拿到任务,马上开写,把功能实现了再说,结果一般是,只实现好了正常流程,失败异常流程往往是在之后再打补丁,不断的修改,结果就是混乱的结构,意大利面条式的代码。还有另一种场景,遇到一个bug,上手就开始试,改改这里,改改那里,然后忽然改好了,提交之后万事大吉,大部分时候这只是修改了一个表层原因。这些行为的主要原因其实都是在用手写代码,而不是大脑。

        详细点说,用大脑写代码的意思就是程序应该是在脑袋里成型的。首先,即便是上边那些混乱的写法,也肯定要过大脑的,毕竟不经过大脑,你其实很难下意识打出一行代码的,但问题就是过大脑的部分实在太少了,每次就那么几行上下文。真正高级的做法是,你能够在脑袋里把整套代码的流程推导一遍,让程序在你的大脑里运行一遍,这时候你会发现写下来会是非常轻松的体力活。有那么一些程序员几乎不加班,但是效率还是很高,那就是因为他们其实无时无刻都能在大脑里写程序。成为一个高级程序最重要的就是要有在大脑里完整的写完一段代码的能力。

        最重要的编程习惯就是开始真正敲代码之前,在大脑里先把程序写好。

        如果接受了大脑写代码的说法,那么你会得到一个非常有意思的结论,

语言不重要,重要的是思想。

        这句话也是很多人在说,但其实不知道在说什么。我们先看一个问题,在大脑里写程序的时候,你觉得需要使用某一门专门的语言来思考吗?类比一下,这就如问你,你平时思考的时候,需要用中文来思考吗?这又是一个看起来非常简单,但很多人没有去思考过的概念,结论是不需要。这里就需要个人去深刻的体会一下了,如果你会多门语言,那么会更有能力自省出来,你会更容易发现自己其实并没有总是在用某一门语言思考。

        大部分时候,思考会是一些多种东西的混合,比如思考怎么游泳,你脑海里会浮现出一个画面,有一个人在水里游泳,而不会去思考怎么用语言去描述这个游泳的动作。同理到写程序,你其实是在思考的程序逻辑和程序结构,更可能是思考方式会是这样的,你想着这里需要一块东西,里边要存一些信息,然后你会想一些对某些东西要做的操作,有时候你又会想如果处于某种情况,要怎么给出错结果,诸如此类的。

        这些东西,其实很少会和具体的语言绑定,你并不太可能去用一门语言的具体语法去思考类怎么写,函数怎么写,更多的会像一种你自己在使用的伪代码。甚至有时候你可能会用图像化的方式去思考,比如一个树状结构的东西,上边挂着些东西,你用什么方式去遍历她的叶子。

        不过这里边有个需要注意的,如果你没有学过一些编程的基本概念,那么你就可能无法运用它去思考,比如当你完全不知道函数是什么,那么你在思考程序的时候,就只能一条程序写到底。所以从这个层面来说,语言又很重要,因为你需要他去学得一些编程的基本概念,让你有东西可想。

总结一下:

写程序是用大脑写,而不是用手写。

        用大脑写程序指的是,在动手敲代码之前,在大脑里先运行一遍你的程序。

        语言不重要,重要的是思想,但你需要学习语言来获得编程的基本概念来让你有东西可想。


        想成长为真正的大牛高手,除了养成良好的编程习惯,还必须将自己的视野凌驾于业务需求之上,精简强化核心技能,提升自己对语言和工具的掌握层次,才能提高开发效率,提升技能水平。

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,373评论 25 707
  • 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及...
    dle_oxio阅读 11,074评论 6 244
  • 蓝天倒映湖在天野 水中留下云摇树曳 岸围镜明了 寂寥夜 山朗城开了 路人车 说过的呢 不再记得 丢掉了苍白的一切 ...
    雨淮津河阅读 174评论 0 2
  • 秋兮涩风雨, 柰兮人憔许。 我兮半悴如, 何兮过烟絮?
    清颜阅读 179评论 0 2
  • 昨天与爸爸讨论了一下人生,很多人都觉得自己的人生很糟糕,比如说妈妈,她患抑郁症,严重的时候整日卧床,什么都不想干,...
    殷七七阅读 304评论 0 1