先去做 然后再说

今天看到一个人写的代码,突然想到一个世界观的问题。略记一下。

不会编程的大概也能看懂:

这是一个字典:就是用户的ID映射到用户名。

 name_for_userid = {121: 'Mike',
                    143: 'Sara',
                    332: 'David'}

然后写一个打招呼的函数greeting(),根据用户ID返回相应的问候语。

def greeting(userid):
    if userid in name_for_userid:
       return 'Hello %s!' % name_for_userid[userid]
    else:
       return 'Hello new friend!'

这个函数很简单,就是传入用户ID,检查用户ID是否存在,如果存在,就取得相应的用户名(比如 Mike),打招呼的内容就是:Hello Mike,如果不存在,打招呼的内容就是:Hello new friend!

这个函数还可以有另一个写法:

def greeting(userid):
    try:
      return 'Hello %s!' % name_for_userid[userid]
    except KeyError:
      return 'Hello new friend!'

这两个函数的功能是一样的。但逻辑不太一样。第二个函数的逻辑是这样:我给了你用户ID,请把它的用户名告诉我。程序没找到ID的话就会报错,然后我们处理这个错误。

总之。第一种方法,是做事之前先过问,看一下需要的东西有没有。第二种方法,是直接去做,做的过程中发现有问题,再去处理这个问题。

再简化。第一种方法可以叫做:三思而后行。第二种方法是:先斩后奏,先做了再说。

我觉得很多人估计都喜欢第一种方法吧。而我呢,始终是喜欢第二种方法的。

为什么呢?就拿上面的两个函数来说吧,第一个函数的效率要比第二个低,因为它先去查一下ID存不存在,如果存在的话,再去查ID的用户名。实际查了两遍字典。

其他的事情也是这样的。如果你先花很多精力去调查,看能不能做,最后的结论多半是做不了(因为事情的不确定性本来就很高)。于是,你那些调查的精力就白费了。

我真的认识一个朋友,从2014年就说要创业。几年过去,再遇到他,他还是没创过业,聊起来倒是头头是道,讲他调研过多少多少项目。其实我想问一句:这样有意思吗?

我失败过。但不后悔。我并不认为我的失败是因为冲动。因为如果没有冲动,连失败都不会有。也就那样在各种调研和观望中浪费了无数时间。

我也并不是怂恿大家冲动行事。只是表明我比较喜欢第二个函数的逻辑:先去做,遇到问题再说。如果所有的问题都考虑周全,那就不会去做了,考虑的那些时间也就白费了。然后又去考虑下一个,然后又不去做,然后又浪费了。

你可能感兴趣的:(先去做 然后再说)