编程如写作

  昨晚似乎是个适合写作的夜,不论是自己还是朋友,都比平常更容易被触动。看着微博上朋友们的心路,想写点什么却似乎找不出非常值得大书特书的主题,只是歪坐在电脑旁,喝着咖啡,单曲循环着仓木麻衣的《time after time》,还写着点小程序......颇有些小情调。

  突然若有所感,明白了该写什么。

  编程如写作。

  编程如写作。惊艳的代码正如心动的文字,都会让人眼前一亮,触碰到心灵深处。是否还记得第一次见到quick sort、FFT、KMP的那种心情,有没有被惊艳到,就像打开了一扇大门,让你脑洞大开。

  编程如写作。它们都拥有严谨的逻辑和那份字斟句酌的细腻。大师的代码和文字,不敢随意变换位置。任性地换掉一个词或者一行代码是不是顿时感觉境界全无。

  编程如写作。我们都能够在这一刻享受到那份专注和思考所带来的快乐。

  编程也应该是一种写作。如果能够真心把编程当做写作,还会有写不好的代码,不理解的算法,以及粗鄙的代码风格?

  每当面对电脑,打开编辑器,不论你是vim党,emacs死忠,亦或是IDE选手,这都不重要,当开始编程的那一刻我们都是平等的。不知道有多少人能够将即将写下的代码当做一篇文章,将即将开始的编程当做一段心路。不仅是和机器的一次对话,更是与自己的一次交流,一段内心的独白。

  编程如写作。若真心能够将编程当做写作,你会变得难以忍受自己,你会不由自主地开始雕琢。你会忍不住替换掉那些看起来令人困惑的、毫无意义的变量名;你会不由自主地开始思考如何优化这段令人失去耐心的低性能算法;你会不停地修改排版和代码风格,来让面前这个.c/ .java/ .cpp/ .py文件看起来更像一篇优雅的文章,而不是一堆乱糟糟的符号。

  当一段优雅的代码或文字产生,此时内心中的那份平静和满足,应是程序员最享受的时刻,Released & Relaxed。

  程序员是谦虚的,因为需要不断对面质疑和反对;程序员是孤独的,因为需要独立思考与实践;程序员是优秀的,因为需要永不停息的学习。要做的只是让自己配得上程序员三个字,所以请将编程当做写作。

                                                    —— by XiaoH 2015.2.1

                                                        注:图片来自网络

时间: 2024-10-28 09:42:04

编程如写作的相关文章

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

编程同写作,写代码只是在码字 作者: Phodal Huang  发布时间: 2016-06-30 21:51  阅读: 12842 次  推荐: 43   原文链接   [收藏] 看到一篇文章<We Are Typists First, Programmers Second>,日期是2008年,好早的一篇文章.当现在打算以一个新人的身份重新进入编程领域,或许是受<重来>的影响,或者只是在重新思考——我们究竟应该如何去编程. 写代码只相当于写字 编程这件事情实际上一点儿也不难,当我

编程与写作

不是单纯孤立地去学习数据结构.设计模式.线程技术,或者其它任何编程技术,——必定有一条中心主线贯穿其中.统筹全局,这条中心主线就是:表达思想. 程序员到底在做什么呢?写程序?那只是表面形式而已.程序员所做的事情,与作家一样,与现实中无时不刻所做的事情一样,不过就是在表达思想.只是,现实中或者作家使用自然语言,而程序员则受限于计算机能够听懂的语言. 程序员必须熟悉所使用的语言要素.“树木”,标识现实世界中的一类植物:int i,则标识内存中的4字节空间.作家要熟练自如地使用自然语言来表达思想,职业

对于编程的一些思考

首先要确定你的目标:你是要加入程序员的队伍?亦或仅仅是处于兴趣想了解一下编程? 我这里只想说说第一种考虑,因为这时候你就需要开始要弄明白自己是不是适合编程? 其实编程跟写作,画画,写歌曲一样是属于脑力劳动,虽然我们在进行这件事的时候需要不停的敲动键盘,甚至跟人不停的沟通,但总的来说,大脑才是最重要的,拥有灵活严谨的逻辑思维能力,就是让你成为一个不错的程序员基本素质要求,所以编程毫无疑问的属于智力活动.前面的话说道这里,听上去有些高大上,假大空,看上去有些王婆卖瓜之嫌,但是其实我并不是想说编程有多

我的职业是前端工程师

作为 GitHub 知名的 md 程序员,我很高兴宣布,已经在 GitHub 上 Release 第七本电子书. 在我来深圳之前的项目里,我们是一个全功能团队,我从实习生开始了职业生涯.在这一个团队里,每个人都是一个全栈工程师,即要编写前端的 JavaScript 代码,又要会后台使用 Java 或者 Scala 来对 API 进行编程. 而最近在深圳的一年工作里,我是一个前端+ 移动应用开发(混合应用方向)工程师 .2017 年年初的时候,看完村上的<我的职业是小说家>,便有了这个系列的文章

CSDN日报20170222——《未来最重要的三个能力》

[程序人生] 未来最重要的三个能力 作者:张奇 我个人认为人人都该学点编程. 我绝不是随口一说,编程绝对是未来最重要的能力之一,如果说未来的人才只能具备三个能力的话,那么我会选择:编程.写作和英语. 点此阅读全文 [医学图像] DICOM世界观●开篇 作者:张硕 此次设定的题目:DICOM Worldviews,即DICOM世界观,希望通过对医学领域日常事物的观察&记录,对应DICOM官方标准的参考说明,并结合背后的相关理论知识,发现DICOM世界背后的"自然规律". 与此同时

MongoDB自学日记3——架构及HA

在对mongoDB的操作有了一定基础后,终于可以扯扯HA和架构这两个高大上的概念了.在这之前当然还得弄清楚mongoDB的Key feature:Sharding. 1. Sharding Shard从逻辑上来说就是整个数据的一个子集,从物理来说就是管理这一子集的服务器.一个分片可以包含多台服务器.若一个分片包含多台服务器则每台服务器都有一份完全相同的数据子集副本(Replica set). 分片是MongoDB强调的一个Feature.分片的目的就在于完成自动化集群运维.mongoDB clu

Python 的经典入门书籍

实python非常适合初学者入门,上手很容易.我就是完全通过网上资源学了python的.最大的是3点经验:1.找一本浅显易懂,例程比较好的教程,从头到尾看下去.不要看很多本,专注于一本.把里面的例程都手打一遍,搞懂为什么.2.去找一个实际项目练手.我当时是因为要做一个网站,不得已要学python.这种条件下的效果比你平时学一门新语言要好很多.所以最好是要有真实的项目做.可以找几个同学一起做个网站之类.3.最好能找到一个已经会python的人.问他一点学习规划的建议,然后在遇到卡壳的地方找他指点.

QtAndroid详解(1):QAndroidJniObject

Qt 5.3之后,新增了 QtAndroid 名字空间,内有下列四个方法: QAndroidJniObject AndroidActivity() int androidSdkVersion() void startActivity(const QAndroidJniObject & intent, int receiverRequestCode, QAndroidActivityResultReceiver * resultReceiver = 0) void startIntentSende

对于机械键盘的一些见解(转载)

本文转载: 机械键盘的纵览与轴十年前,我是个C++/Java程序员,几乎每天都要花10个小时以上坐在电脑前,不断地敲击键盘.那时,我用的是公司统一派发的廉价Dell薄膜键盘,在成年累月的工作之后,手指在每次击键时都会疼痛,以致于输入代码对我来说都成为了负担.直到有一天,在同事的推荐下,我购入了第一块机械键盘,Cherry的G80-3000青轴.感觉从那一天起,就进入了一个新的世界.我知道了一块好的键盘,可以最大程度地为手指带来享受,把编程码字变成一件真正快乐的事情,而且,好键盘对于输入效率来说提