从写博到出书:过程全记录

从读博士起,我对编程的兴趣忽然浓厚起来。当时做大规模并行运算,需要自己写很多程序和脚本。作为新进研究组的新人,我自觉负担起很多写程序的活儿。写得多了,兴趣也变得浓厚。

那个时候抓紧一切机会学习编程。在我读博的研究所里,有一位英国教授也喜欢编程。她叫爱玛·希尔(Emma Hill),教我们用编程语言处理地球科学的数据。有一天,我路过她的办公室。她问我最近的学习进度。

“准备学Perl呢。”我回答说,“感觉Perl在地理领域应用很广。”

“你为什么不学学Python呢?”爱玛问我,“这门语言发展很快。你学会了或许可以教教我。”

我之前听过Python的一些传闻,比如那句著名的“人生苦短,我用Python”。但我担心Python在地球科学研究方面不如Perl积累深厚。有了爱玛的鼓励,我下定决心去研究Python。Python学起来确实很快。没过多久,我就可以用Python来解决我在科研中遇到的大部分问题了。记忆比较深刻的是,有一次下载来自美国研究所的一批气象数据。我用Python中的多线程并发下载,创造了大学中网络传输的纪录。学习加实践,让我爱上了这门语言。

随后,我开始在博客园写一系列博客,记录自己学习Python的过程。这一系列的文章叫“Python快速教程”。我想在这些文章中呈现出Python简单易学的特点,以便让更多的人也来享受编程的乐趣。在写作过程中我意识到,要想讲明白一门编程语言,还要引入额外的背景知识。我的编程博客也从Python开始,拓展到网络协议、操作系统、算法、数据分析等方面。写的时间越长,收获的读者也越来越多。博客园的一位运营告诉我,有一段时间我的博客访问量保持在全站的前三。我的一位大学同学告诉我,他不但读了我的博客学Python,还成功在硅谷找到Python相关的工作。还有一次朋友向我推荐Python教程,才发现居然就是我写的这一份。所有这些都让我感到惊喜。因此,我非常感谢爱玛给我推开的这扇门。

完成博士学业之后,我需要在科研和编程之间选择。由于编程带给我的美好体验,我毫不犹豫地选择了编程。将近三十岁的我,和二十出头的年轻人一起做产品、调试、debug。我必须要非常努力,才能赶上这群富有天赋而精力旺盛的年轻人。但我并不觉得辛苦。辛苦是学习的台阶。在编程中,我享受着脑细胞的疯狂激活,享受着未知错误的折磨,以及苦苦思索之后的豁然开朗。更棒的是,我的伙伴总是以乐观的态度来看待技术,以享受的心态来享受编程。我从中受益良多。更何况,计算机浪潮已经并将继续改变世界。我很幸运,能加入浪潮中。

“Python快速教程”得到了不少编辑的认可。他们希望我能把博客文章改编成一本书。写书当然是莫大的荣幸,我很感谢每一位编辑的赏识。可在博士学业的压力下,我能抽出的时间实在有限。所以多次的出版计划都搁浅在拟定目录这一步。终于拖到博士毕业,我才开始认真整理之前的文章。把略显凌乱的博客文章改编成书,工作量比我想象的要大得多。在此期间,我也开始了一个新的项目,研发一款用于畜牧的智能芯片。生活的节奏又变得忙碌,能分给写书的时间大大减少。

这本书的最终诞生,有赖于许多人的支持。安娜是一位非常宽容的编辑。从签合约到完稿,我拖延了超过半年的时间。幸好安娜对我的拖延症格外包容。我在一个写作小组认识本书的插画师雷雨田。她绘制的精美插画,让枯燥的技术书变得生动有趣。在写作博客的过程中,很多人都指正过文章中的错误,或者对写作方向提出建议。我还有一个小小的编程讨论组。小组里的朋友,如王豪、周昕梓和黄杜立,都花时间审阅文章。正是因为他们的审阅,我才能放心的交稿。

即便有这么多人帮助,写完一本书不太容易。油墨印刷成字,还是很严肃的一个过程。即使是完稿之后,我还是重新过了三四遍稿子,改动了不少的地方。比如说,我在写对象名时,会习惯性地按照Java的代码规范写成thisObject,而不是PEP8规定的this_object。在我认为,thisObject这样的写法更容易让对象和函数区分开。我当然可以这么做,PEP8只是指导性的代码规范,而不是强制要求。但我又担心自己会误导读者。毕竟,代码不止是写给自己读的。如果用我的书写形式写成Python库,那么其他遵照PEP8的程序员在调用时会不会觉得奇怪?

反反复复思索了很久,直到有一天想到Python诞生时遵循的一个理念:

“如果常识上确立的东西,就可以遵照常识,没有必要过度纠结。”

于是,我选择了服从PEP8的代码规范,把书中的代码订正了一遍。

你瞧,Python的理念已经开始在指导我。Python吸引我的,正是这样一些旗帜鲜明的理念。在我现在的工作中,Python依然占据着重要的地位。我会用Python进行网站开发和大数据分析,还会用Python来写一些在单片机上运行的脚本。当然,我也离不开其他语言,比如处理数据库的SQL、编写安卓App的Java、网页前端的JavaScript等。但Python让我爱上编程。我也希望,这本书能让读者也爱上Python,并且继续像我的博客文章一样, 能帮助到那些想学习编程的人。在此存一个美好心愿。

文章改编自《从Python开始学编程》的前言部分,可以通过下列链接购买本书:

淘宝

京东

亚马逊

时间: 2024-10-24 21:18:20

从写博到出书:过程全记录的相关文章

C#打包制作安装程序过程全记录

该文是根据网上的文章并结合自己实际打包的过程而整理的. 开发平台:VisualStudio2005中文版. 步骤如下: 1. 创建一个安装向导项目或安装部署项目 新建项目-〉其他项目类型-〉安装与部署-〉安装向导(或安装部署),如命名为setup. 2. 将要打包的项目导入到这个安装项目中,有两种方式:   第一种,自动方式,在解决方案上右击-〉添加-〉现有项目-〉选择你要打包的项目,这样就会把这个项目添加到该解决方案中来,   然后在安装项目setup上右击-〉添加-〉项目输出-〉主输出,在项

内存数据库Timesten安装过程全记录

[[email protected] timesten]# su - tt [[email protected] ~]$ cd /timesten/linux8664/ [[email protected] linux8664]$ ls 3rdparty  doc  install.pl  LINUX8664  README.html  setup.sh  uninst.sh [[email protected] linux8664]$ ./setup.sh WARNING: You are r

主板故障导致服务器不定时频繁重启故障解决过程全记录

服务器:HP DL385 G7 操作系统:suse10 sp3 数据库:oracle 11g R2 集群软件:VCS 双机主备 环境:两台服务器使用VCS软件做的oracle主备切换数据库 故障现象: 1.两台数据库主机不定期频繁重启,每次重启时在操作系统message日志中均没有任何记录: 2.系统启动时,message 日志出现与硬件相关的错误信息 message 日志信息: ----------------------------------------------------------

在CentOS6上编译安装实现LAMP(php-modules)+phpMyAdmin安装过程全记录

php与apache协作有三种模式:CGI.modules.FastCGI. 在CGI模式下,用户请求php文件时,apache会启动响应进程,调用php处理器处理请求,然后将结果返回给客户端.用户响应及处理由前端apache服务器完成: 在modules模式下,php解析器作为apache的一个模块,php处理器与web服务器一起运行处理用户请求.用户响应由apache处理,请求处理由apache与php处理器协同完成: 在fastcgi模式下,apache调用proxcy模块,发挥代理作用,

源码编译mysql 5.5+ 安装过程全记录

前言:从mysql 5.5版本开始,mysql源码安装开始使用cmake了,编译安装跟以前的版本有点不一样了. 一,安装步骤: 1.安装前准备工作 a.下载mysql源代码包,到mysql下载页面选择MYSQL Community Serve Source Code 版本 注意:不要选择Linux-Generic版本,此版本为已经编译好的二进制版本 b.检查本机Linux是否已安装好make,bison,cmake,gcc-c++,ncurses,如果尚未安装,先安装以上包,安装方法如下: 注意

传真服务器开发 三页传真过程全记录(日志形式)

揭巫烈噶焊删蠢渴蹬秤制蘸陌卓槐澄鼓操佑诩搅孤磕鼓逞促率判磷屏谇坷盘啡缮匕巧教讲缴赋依沙鄙难滦淤臼兄鞘顾涎磐投肺诺砍找匕涂泼说准判空掌慈幻僚谰舱氏杭奔强北澄费成教捍渤盒痛丛藕遣至坊苛憾巡驴亮仗撬窗妒客寂壕墓此挝妨囟头胃刹伟帕道汲乱咽潘次詹特那囟坟被谟晨液痔蛋仗酪套北推冒锤偌窒仕憾账拐觅实胤哨识托嗡驶断宜蚕衬仄秩涎炊鲜孛卦蛹刈亢日改懊月拥计读钩贾灸卮咏嘏闲狼星耘陕氖瓷识诓焕冀及拷克馗喜蹬氛烟卦狼亟捕又即喜形猩分腾热裂屡图咨魄贝地业嘲餐悠叵秩是苫又等忠娜竟盒毯至炕豪行梁窒痘崩巢缕燎竟菊准贡卜劫镀烂谭范

Dlib使用过程全记录(二)

使用的环境: VS2015 + win7 使用dlib的方法: Compiling on Windows Using Visual Studio 2015 or Newer (来自官网) 官网的原文: All you need to do is create an empty console project. Then add dlib/all/source.cpp to it and add the folder containing the dlib folder to the #inclu

在CentOS7上通过RPM安装实现LAMP+phpMyAdmin过程全记录

时间:2017年9月20日 一.软件环境: IP:192.168.1.71 Hostname:centos73-2.surmount.net Linux:CentOS Linux release 7.3.1611 (Core) Apache:httpd-2.4.6 Mysql:Ver 15.1 Distrib 5.5.52-MariaDB PHP:初始用ISO光盘yum源安装的版本为php-5.4.16.在后续安装phpMyAdmin-4.7.4时报错,然后按提示升级为php56w-5.6.31

个人怎样出书

个人出书,现在越来越普遍,但是在出书之前,很多人都会面对各种各样的问题.个人怎么出书,这是很多朋友都非常关心的,在出书之前,必须要掌握一些基本的流程和规则,才能够让你在出书过程当中更加顺利.书小二在这里为大家进行详细的讲解,从全方面的角度来进行分析样更多想要出书的朋友都能够顺利地完成出书. 在前期,首先就是要向出版社投稿,如果说你的书稿在市面上比较吃香,有一定的市场各方面反应都不错,出版社可以为你免费提供了出版,并且还会给你一部分的稿费,但是现在对于大多数人来讲要进行个人出书都是进行自费出书的,