程序员与艺术家

软件发展到今天,凡是能想到的基本上都有人做了。也就是说,当你想实现一个什么东西,第一反应应该是去网上找找有没有现成的东西。
如果有,并且是开源的,那不错,可以直接拿来,尝试使用,不行的话可以研究改造。
如果有,并且是商业的,那也可以,质量有保证,通常价格也不会贵,花钱买服务,把精力花在更重要的东西上   “好钢用在刀刃上”。

站在巨人的肩膀上,你才能走得更远。

如果你对上面的思路有疑问,那么可以这样来考虑问题:程序员与艺术家,特别是画家很相似。

画家并不需要自己去打磨颜料,实际上即使他真的从打磨颜料开始,那个阶段我们也不会把他看做画家。
画家只需要选择他需要的颜料,并在调色盘上准备好即可。
一个画家之所以是一个画家,不是因为颜料的准备工作,而是使用颜料创作画作的过程。伟大的画家因为伟大的作品出名,而伟大的作品在于构思。

程序员也是一样,他不必亲自写各种底层模块,只需要找到合适的库即可。
当他准备好需要用到的库后,调色盘就准备好了。
下面真正重要的工作是设计软件的结构,也就是将各种库有机组合在一起。
伟大的程序员因为伟大的软件而出名,而伟大的软件在于设计。