昨晚听了大妈的讲课,获益良多,趁遗忘之前,赶紧把心得记下来。

讲课加现场答问总共有三个小时,信息量颇大,但假如用三言两语来总结,我认为就是以下三点:

  1. 靠近时间源头(论阅读官方文档的重要性)
  2. 用组合的方法解决自己的问题
  3. 编程如炒菜

靠近时间源头

世界上最靠谱的python教程是哪一本?

绝对是python创始人Guido写的官方教程

大妈说,即使是现在很火的《笨方法学Python》,其实也有不少错误,都修订到第四版了,而官方教程自24年前创作完毕,就一直用到现在。

你想省力吗?看官方教程。

不仅仅学python是这样子,学其他任何东西都应该是这样子。

当然,python毕竟是面向全世界的,因此它的官方教程必然是用英文写的。你觉得看英文很累吗?那赶紧恶补英文啊。

英文也是一种元技能。早日让自己熟练英文阅读,你就早日靠近时间源头

用组合的方法解决自己的问题

你每天工作生活当中,是不是有遇到过一些问题,很想找到一个软件来加以解决?

比如,你是电影迷,你想第一时间知道某部电影是不是上线了?你是在制药企业工作的科学家,你想用软件帮助你更快地找到能医治某个病的药?你是考古学家,你想用软件帮助你更快地完成一些鉴定工作?

你怎么才能找到这样的软件呢?

错了,问题不该这么问。因为除了看电影的需求以外,其他两个需求都是特定领域的需求,全世界有那样需求的人加起来可能还不到一千人。根本不可能有某家软件公司专门开发一套这样的软件来给你解决那样的问题。

那怎么办?唯有自己动手,丰衣足食了。

这个真的不是那么难。因为,我们都是站在巨人的肩膀上进行创造。前人已经把该踩的坑都帮我们踩过了。假如我们的愿望只是用软件来解决某个特定领域的问题,我们只需要像搭乐高积木那样,把相关的组件拼接起来就可以了。

而且,务必记住的是,要用最小的努力解决自己的问题。

所以,假如你是做电影剪辑的,你手头有一百个素材,都要加上片花,该怎么办?是打开 Adobe Premier 或者 Final Cut X,一个一个的来弄吗?不,那样太麻烦了。程序员就得学会懒,把那些重复性的操作交给电脑去做就好了。你到github上面去搜,就能搜得到一个叫 moviepy 的神器,它是一个命令行工具,就能完成这样的任务。假如你还有更多需求,就找到其他工具,能够帮助你解决那个具体需求的工具,然后将这些工具组合起来,你的问题也就解决了。而假如这个问题在你工作是当中经常会出现的,那么你可以做一个小软件,把你用得到的这些小工具拼装在一起,就成为一个解决你自己问题的软件了。

编程如炒菜

在答问环节里,大妈回答同学提问的时候讲了一个隐喻,就是编程如炒菜。

这个隐喻太妙了!

大妈认为,大学的软件工程课其实是误导人,因为做软件不是一上来就是满汉全席,现实世界里,软件更多是从一碟小菜开始。

所以,作为编程新手,上来首先实现一个关键功能(比如,大妈昨晚就以 bottle 这个框架来举例,演示了如何先实现POST的操作,然后再逐步对已经可用的程序进行优化),看到运行效果,然后再进行迭代,这才是正确的姿势。

嗯,笔记就先写到这里,还是赶紧滚回去写代码了。



Published

06 November 2015

Tags