标签:编程

程序员:同步与异步、阻塞与非阻塞

在做网络编程的时候,我们会经常碰到阻塞(Blocking)与非阻塞(Non-Blocking)、同步(Synchronous)与异步(Asynchronous)的概念。这两组概念很相近,容易混淆。 阻塞和非阻塞是用来描述I/O操作的:在执行 I/O操作时,如果数据没有准备好,阻塞模式下会一直等待直到…

解释型语言与编译型语言

当我们想要让计算机做一些事的时候,需要让它运行一些指令,程序就是计算机指令,因为计算机是二进制的,所以其指令也必然是二进制指令,那么这些指令的编写要遵循一定的语法,这个语法所形成的语言,就是计算机语言,分为三种:机器语言,汇编语言,高级语言。 机器语言是一种指令集的体系。这种指令集,称机器码,是电脑…

程序员:写作、编程与直觉

上次写《科学之外》的原因,除了为神秘学报不平以外,还有一个原因是我最近正在练习写作,看的书是《再活一次:用写作来调心》。这是一本很精彩的书,让你对写作充满信心又不失章法。现在我时不时的会写一些东西放在日记里,虽然书中要求是每天都写,但我的懒惰依然战胜了一切。 当然,至少我也写了不少,通过这些写作练习…

隔壁小王:我要学编程

小王有很多程序员朋友。 一起聚会的时候,他们有时候会讨论很有意思的话题。 比如,如何创造一个对象。 但是大多数时候,他们讨论的话题小王都听不懂,小王觉得很没意思,就跟他们说,你们能聊点别的吗,生活中不止有编程,还有很多事情是跟编程无关的。 他的程序员朋友们听他这么说,觉得要说服他学习一点编程和计算机…

谈程序的正确性

不管在学术圈还是在工业界,总有很多人过度的关心所谓“程序的正确性”,有些甚至到了战战兢兢,舍本逐末的地步。下面举几个例子: 很多人把测试(test)看得过于重要。代码八字还没一撇呢,就吵着要怎么怎么严格的测试,防止“将来”有人把代码改错了。这些人到后来往往被测试捆住了手脚,寸步难行。不但代码bug百…

编程的智慧

编程是一种创造性的工作,是一门艺术。精通任何一门艺术,都需要很多的练习和领悟,所以这里提出的“智慧”,并不是号称一天瘦十斤的减肥药,它并不能代替你自己的勤奋。然而由于软件行业喜欢标新立异,喜欢把简单的事情搞复杂,我希望这些文字能给迷惑中的人们指出一些正确的方向,让他们少走一些弯路,基本做到一分耕耘一…