码农是一种游离于在二维世界(二进制)和人类现实世界之间的一种奇异的生物。关于程序,有人形容“程序有如生命。总处于演化之中。新需求就是基因突变。可能进化,可能劣化,可能崩溃。版本控制保存众多样本,提供重试的机会。单元测试就像DNA双链。将不自洽的细节揪出来。”
每个人的观点和看法可能不太一样,毕竟每个人达到的境界不一样,观看的视角也不一样,但是不管怎么样,但凡程序员就避免不了要写代码,或者要懂代码,那么写代码的目的又是什么呢?
当你水平达到了一定程度之后,你经常面对的是“效率”和“简洁”的选择,这已经没有办法让你的程序在这两方面变得绝对更优,鱼和熊掌很难兼得。
对于那些年薪百万的,或者真正的大神来说,并不是每一行程序性能都需要优化到极致,而是在这二者之间掌握一个所需要的平衡。当代码量上去之后,对于大部分代码而言,可读性和稳定性的重要性就会逐渐超过性能,也就是说写得清晰易懂不犯错比下笔就是神算法要简单得多。
举个比较简单的例子,一个有序搜索,做过10道算法题的人都知道logn的,但是当你确定数据量不会超过15,并且这段算法不是critical path的时候,是完全可以直接写线性解的,因为线性解比logn要清晰简明得多,而且不会出现错误。
因此在成为大神的路上,思考远远要比书写重要,反思远远比重复重要。想清楚了再下笔去写,知道你要的是什么。在实现一个功能之前,脑子里先相处三种实现的方式,然后问自己我需要的最重要的东西是什么。而不是见到什么都先brute force,然后开始调,调好了发现原来这算法可以变成logn,然后推翻了重写。这完全是在浪费自己的时间和精力。当然了另一个极端就是,遇到什么东西都先想最优解,不是最优解坚决不写。
总而言之,写代码的目的,不是追求,也不是追求最简单,而是最好用。
责任编辑:wv
-
程序员
+关注
关注
4文章
952浏览量
29801
发布评论请先 登录
相关推荐
机械革命发布CODE AI程序员本
AI编程工具会不会抢程序员饭碗
第五届长沙·中国1024程序员节开幕
京东上万程序员都AI用它!
![京东上万<b class='flag-5'>程序员</b>都AI用它!](https://file1.elecfans.com//web2/M00/FD/06/wKgZomaXgOKAf_q0AADLwFkyfJU838.jpg)
程序员节视频创意大赛,用串口屏赢取千元大奖
![<b class='flag-5'>程序员</b>节视频创意大赛,用串口屏赢取千元大奖](https://file1.elecfans.com/web2/M00/8D/79/wKgaomS7KZ-AY3GzAAArJzrUg1c443.png)
程序员节视频创意盛宴,邀您共襄盛举!
![<b class='flag-5'>程序员</b>节视频创意盛宴,邀您共襄盛举!](https://file1.elecfans.com/web2/M00/F7/E1/wKgaomaDZHyAdCpxAACC-PIdRiA155.png)
助力程序员告别困扰已久的梦魇-Bug
![助力<b class='flag-5'>程序员</b>告别困扰已久的梦魇-Bug](https://file.elecfans.com/web2/M00/20/B3/pYYBAGGfNNmAK-PZAAJsGM5Cgk0227.jpg)
GitHub Copilot:你的代码超级助手!程序员的最强福音
![GitHub Copilot:你的<b class='flag-5'>代码</b>超级助手!<b class='flag-5'>程序员</b>的最强福音](https://file.elecfans.com/web2/M00/45/DA/poYBAGKPGziABtawAAAYlXODTds073.jpg)
评论