一些基本的习惯

或——程序员基本素养

Posted by Xiaofei on May 8, 2021

1. 问题搜索

  1. 首先树立一个概念:我们日常碰到的问题,分为两类:第一类是常见但是只是我们自己不常用因此不知道具体方法的问题;第二类是当我们对一个领域熟知精深后发现的问题。第一类问题构成了大部分业务上的场景,因此请相信大多数的问题至少曾经有人碰到过,这时候要先充分搜索;第二类问题可能我们踩到了一个坑里,这时候可能没人遇到过,但是也需要先确认这一点,否则很容易走弯路。
  2. 其实上面的事情还有另一种分类方法:如果单点问题,而非系统问题,很有可能已经在互联网上被提出被讨论过;相反,系统或者设计模式导致的问题,可能搜索难度较大。
  3. 如果你碰到一个单点问题,但是却资料很少,那么我们首先要做的是反思自己的问题是否真的存在,是否可以复现。
  4. 尽量使用谷歌搜索,而非百度;尽量看英文材料,而非中文材料
  5. 在谷歌搜索的时候,可以加上只看最近一年的限制,这样防止你搜索到的结果已经过时很久了(比如python相关问题搜索出python2的方案或者一个古老的包的方案)
  6. 搜索结果中,官网结果优先,其次是Stack Overflow的结果
  7. Stack Overflow上被accept的结果并不一定是最优的,只能说是当时最优的,你可以将前几个都看看,挑选最合适的;同时你可以看一下每条下面的comment。这里举个栗子,如果我们想查找Python怎么压缩文件夹,可以看到被accept的答案并非最优的,而且这条回答下面就有人指出了这个问题。

2021-05-08-stackoverflow-1

2021-05-08-stackoverflow-2

错误前置

所谓错误前置

比如,我们训练一个模型,耗时一周训练完,发现无法保存,因为对应的路径不存在或者文件没有用写模式创建,这时候就会极其痛苦 再比如,在程序疯狂加载完一个大字典后,发现访问

错误前置的方法有很多,毕竟这只是一种思想或者习惯,远远谈不上规范。这边我们先列举几个常见的:

  1. 注册机制