码农是一种游离于在二维世界(二进制)和人类现实世界之间的一种奇异的生物。关于程序,有人形容“程序有如生命。总处于演化之中。新需求就是基因突变。可能进化,可能劣化,可能崩溃。版本控制保存众多样本,提供重试的机会。单元测试就像DNA双链。将不自洽的细节揪出来。”
每个人的观点和看法可能不太一样,毕竟每个人达到的境界不一样,观看的视角也不一样,但是不管怎么样,但凡程序员就避免不了要写代码,或者要懂代码,那么写代码的目的又是什么呢?
当你水平达到了一定程度之后,你经常面对的是“效率”和“简洁”的选择,这已经没有办法让你的程序在这两方面变得绝对更优,鱼和熊掌很难兼得。
对于那些年薪百万的,或者真正的大神来说,并不是每一行程序性能都需要优化到极致,而是在这二者之间掌握一个所需要的平衡。当代码量上去之后,对于大部分代码而言,可读性和稳定性的重要性就会逐渐超过性能,也就是说写得清晰易懂不犯错比下笔就是神算法要简单得多。
举个比较简单的例子,一个有序搜索,做过10道算法题的人都知道logn的,但是当你确定数据量不会超过15,并且这段算法不是critical path的时候,是完全可以直接写线性解的,因为线性解比logn要清晰简明得多,而且不会出现错误。
因此在成为大神的路上,思考远远要比书写重要,反思远远比重复重要。想清楚了再下笔去写,知道你要的是什么。在实现一个功能之前,脑子里先相处三种实现的方式,然后问自己我需要的最重要的东西是什么。而不是见到什么都先brute force,然后开始调,调好了发现原来这算法可以变成logn,然后推翻了重写。这完全是在浪费自己的时间和精力。当然了另一个极端就是,遇到什么东西都先想最优解,不是最优解坚决不写。
总而言之,写代码的目的,不是追求,也不是追求最简单,而是最好用。
责任编辑:wv
全部0条评论
快来发表一下你的评论吧 !