编程同写作,写代码只是在码字

原文作者: Phodal Huang  原文链接

看到一篇文章《We Are Typists First, Programmers Second》,日期是2008年,好早的一篇文章。当现在打算以一个新人的身份重新进入编程领域,或许是受《重来》的影响,或者只是在重新思考——我们究竟应该如何去编程。

写代码只相当于写字

  编程这件事情实际上一点儿也不难,当我们只是在使用一个工具创造一些东西的时候,比如我们拿着电烙铁、芯片、电线等去焊一个电路板的时候,我们学的是如何运用这些工具。虽然最后我们的电路板可以实现相同的功能,但是我们可以一眼看到差距所在。

  换个贴切一点的比喻,比如烧菜做饭,对于一个优秀的厨师和一个像我这样的门外汉而言,就算给我们相同的食材、厨具,一段时间后也许一份是诱人的美食,一份只能喂猪了——即使我模仿着厨师的步骤一步步地来,也许看上去会差不多,但是一吃便吃出差距了。

  我们还做不好饭,还焊不好电路,还写不好代码,很大程度上并不是因为我们比别人笨,而只是别人比我们做了更多。有时候一种机缘巧遇的学习或者bug的出现,对于不同的人的编程人生都会有不一样的影响(ps:说的好像是蝴蝶效应)。我们只是在使用工具,使用的好与坏,在某种程序上决定了我们写出来的质量。

  写字便是如此,给我们同样的纸和笔(ps:减少无关因素),不同的人写出来的字的差距很大,写得好的相比于写得不好的 ,只是因为练习得更多。而编程难道不也是如此么,最后写代码这件事就和写字一样简单了。

  刚开始写字的时候,我们需要去了解一个字的笔划顺序、字体结构,而这些因素相当于语法及其结构。熟悉了之后,写代码也和写字一样是简简单单的事。

学习编程只是在学造句

  计算机语言同人类语言一样,有时候我们也许会感慨一些计算机语言是多么地背离我们的世界,但是他们才是真正的计算机语言。

  计算机语言是模仿人类的语言,从 if 到其他,而这些计算机语言又比人类语言简单。故而一开始学习语言的时候我们只是在学习造句,用一句话来概括一句代码的意思,或者可以称之为函数、方法(method)。

  于是我们开始组词造句,以便最后能拼凑出一整篇文章。

编程是在写作

  代码如诗,又或者代码如散文。总的来说,这是相对于英语而言,对于中文而言可不是如此。如果用一种所谓的中文语言写出来的代码,不能像中文诗一样,那么它就算不上是一种真正的中文语言。

  那些所谓的写作逻辑对编程的影响

  • 早期的代码是以行数算的,文章是以字数算的
  • 代码是写给人看的,文章也是写给人看的
  • 编程同写作一样,都由想法开始
  • 代码同文章一样都可以堆砌出来(ps:如本文)
  • 写出好的文章不容易,需要反复琢磨,写出好的代码不也是如此么
  • 构造一个类,好比是构造一个人物的性格特点,多一点不行,少一点又不全
  • 代码生成,和生成诗一样,没有情感,过于机械化
  • 。。。

  然而好的作家和一般的写作者,区别总是很大,对同一个问题的思考程度也是不同的。从一个作者到一个作家的过程,是一个不断写作不断积累的过程。而从一个普通的程序员到一个优秀的程序员也是如此,需要一个不断编程的过程。

  当我们开始真正去编程的时候,我们还会纠结于"僧推月下门"还是"僧敲月下门"的时候,当我们越来越熟练就容易决定究竟用哪一个。而这样的“推敲”,无论在写作中还是在编程中都是相似的过程。

写作的过程真的就是一次探索之旅,而且它会贯穿人的一生。

编程只是在码字

真正的想法都在脑子里,而不在纸上或者IDE里。

编程同写作,写代码只是在码字相关推荐

  1. 编程不仅是写代码!?

    作者 | keypressingmonkey 译者 | 孙薇,责编 | 夕颜 出品 | CSDN(ID:CSDNnews) 1. 非天才生存指南 承认这一点很难,我的正式简历上也不会有:我是一名普通的 ...

  2. 学的不是写代码,学的是编程思维!

    文章转载自STEAM创客 从哈佛大学儿童发展中心所发布的"人类大脑发展"曲线图中,我们发现,Higher Cognitive Function(更高认知能力,包括概念形成,解决问题 ...

  3. 写代码也有本手俗手之分,而我们要善于发现妙手!

    一年一度的高考结束了,准大一的学子们今天起你们不用去深究何是"本手"何是"俗手",放松起来去疯狂地玩吧! 特爱学编程的孩子们在高中三年里也根本挤不出时间学,这个 ...

  4. 「面向信仰编程」Draven 专访:像写代码一样,用树形的结构写文章

    本文首发于"Shopee技术团队"公众号 站在网络与技术前沿的不少开发者们,还保持着如今看起来略显古早的 Web 2.0 时代行为--写博客. 技术博客写作是工程师们沿袭已久的传统 ...

  5. 熊写代码这三年:阅读写作与技术成长

    本文是非技术向的随笔,慎点! 熊写代码这三年:阅读写作与技术成长 从属于 程序熊的自我修养系列.临近毕业,随手写了篇随笔,聊以纪念我过去研究生三年间的技术之路,感谢陪伴我这三年的家人,感谢所有陪我一起 ...

  6. 计算机编程课要不要学,学完编程课还是不会写代码,问题到底出在哪?

    作为一名青椒,这几年在大学的教学工作做下来,发现无论是计算机专业的学生,还是把编程作为公修课的其他专业学生,很多人内心都有一个灵魂拷问--为什么我认真听课,认真看书书,几个月甚至一年下来但还是写不好代 ...

  7. 清华博士接亲被要求现场写代码,网友:真是面向对象编程!

    源 / 顶级程序员 因为结婚,程序员又上热搜了 但这次不是加班维护服务器 而是程序员接亲被要求现场写代码 01 清华计算机博士 接亲被要求现场写代码 陕西西安,一位清华计算机博士接亲,被新娘要求当场写 ...

  8. 大写的服!用耳朵也能写代码?盲人程序员自学编程成为全栈工程师

    作者 | 年素清 责编 | 王晓曼 出品 | 程序人生 (ID:coder _life) 蔡勇斌幼年失明,靠着顽强的毅力和不服输的精神自学编程,成为了一名全栈工程师.作为一名盲人,为了让全中国的其他盲 ...

  9. 被劝退的学渣,逆袭成高级语言之父,改变编程方式却说“不喜欢写代码”!...

    作者 | 年素清 责编 | 伍杏玲 出品 | 程序人生(ID:coder_life) 上世纪五十年代,程序员使用的是 0/1 机器语言写代码,费时费力.如何进化到如今只需轻松高效地输入字符组成不同的编 ...

最新文章

  1. nmap 命令行执行错误_Unimap:一款基于Nmap实现的扫描速度提升工具
  2. IE这回在css flex中扳回一局?
  3. 无缝融入 Kubernetes 生态 | 云原生网关支持 Ingress 资源
  4. z390 黑苹果启动盘_不到800元买块1TB固态,折腾一下黑苹果的安装
  5. Android插件化原理解析——概要
  6. 亚马逊面试有几轮_经过几个月的Google面试准备,我被亚马逊录用
  7. 人的手臂的自由度的数目以及六自由度机械臂的限制
  8. 信息检索:“众筹”专利分析
  9. Android ProGuard 代码压缩混淆与打包优化
  10. 草根站长的创业路:说说这两年的创业经历
  11. IDEA统计项目代码量
  12. WebRTC基本概念
  13. My Sixth-Third Page - 爬楼梯 - By Nicolas
  14. 微信SDK删除支付模块流程
  15. 阿里笔试--智能对话简化版之query指令槽位识别
  16. C++ini文件操作
  17. ijkplayer播放视频
  18. Hadoop的介绍以及发展历史
  19. 常见MIME类型设置方法
  20. 电脑计算机的符号什么意思,计算机上面的符号代表什么意思  悬赏20

热门文章

  1. 通过代码生成机制实现强类型编程-CodeSimth版
  2. 在ASP.NET Web Application 中如何处理图片 【转】-有用
  3. 关于伪静态和真静态的一点心得
  4. Linux: 系统文件权限总结
  5. 【漫画详解】用iframe障眼法,骗取用户点击
  6. megento 获取url参数
  7. K均值聚类关于初始聚类中心选取的一种改进(python程序)
  8. 并查集——食物链(poj1182)
  9. 【AI视野·今日CV 计算机视觉论文速览 第201期】Wed, 19 May 2021
  10. 前端开发-编辑器安装-HbuilderX安装过程与基本使用 0226