开放的心态

编码也需要开放的心态,不要自己把自己限制住了。

当程序员做一个项目的时候,首先会面临一个技术栈的选择。一般说来如果这个项目就自己一个人,都会选择趁手的技术栈,立即可以上手开发嘛。但是问题其实没那么简单,要考虑的事情还很多。举个最简单的例子,假如你熟悉android,但目标客户主要使用苹果手机,你用android开发个app肯定不行了是不是。

这个例子有点极端。换个例子,项目中想实现一个功能,假如这个功能比较独立,那么应该用什么技术来实现呢?答案很简单,选择最适合的技术。最适合几个字好像有点太笼统,实际上就是选择开发加日后维护的成本最低的技术。

那么怎样算成本最低呢?答案也很简单,不做成本最低。这还真不是抬杠。当我们接到一个任务的时候,首先要考虑的是为什么要做这个东西,究竟有没有必要去做它。做什么比怎么做要重要很多。换句话说,应该做正确的事情,而不是正确的做事情。这个差异其实是非常大的。假设这个事情真的有必要做,那么我们也要先考虑一下,有没有更简单的替代方案,最好是能不需要开发就能解决问题的。如果这些答案都是否,那么才需要开始考虑如何动手开发的问题。

一个优秀的程序员,应该在面对一个任务的时候,能选择一个最优的解决方案。这对人的要求确实比较高,不光需要在技术领域的了解足够广泛,能够从工具箱里找到正确的工具,还需要对业务有深刻的理解,能够正确判断业务发展的方向,让自己的代码能够从容应对今后的变化。这个度其实是非常难把握的,弄不好要么很容易变成僵化腐烂的代码,要么就搞成了过度设计。诚然后者的情况还是少一些,一般的设计还远达不到“过度”的地步。

一般说来,还是应该保守一点,先用最快最简单的方式解决问题。简单就是美。那么怎么做到简单,这就要求工具箱里得多掌握几种工具,这样才有可能在面对各种情况的时候能够拿出相对简单的方案来。比如 python 就是个很好的工具,在很多时候都可以提供相对简单的解决方案,所以你的工具箱里应该把 python 装进去。

突然想明白为什么我们有时候不够开放,就是因为工具箱里的工具不够多。你说如果你就一把锤子,那只能把什么都当钉子了。

所以,先丰富自己的工具箱是很有必要的。至少应该让自己具备能快速往工具箱里添工具的能力,这样在面对各种任务的时候才能尽量做到最优方案的选择,而不是让自己陷入无法自拔的困境。

你可能感兴趣的:(开放的心态)