码农是一种游离于在二维世界(二进制)和人类现实世界之间的一种奇异的生物。关于程序,有人形容“程序有如生命。总处于演化之中。新需求就是基因突变。可能进化,可能劣化,可能崩溃。版本控制保存众多样本,提供重试的机会。单元测试就像dna双链。将不自洽的细节揪出来。”
每个人的观点和看法可能不太一样,毕竟每个人达到的境界不一样,观看的视角也不一样,但是不管怎么样,但凡程序员就避免不了要写代码,或者要懂代码,那么写代码的目的又是什么呢?
当你水平达到了一定程度之后,你经常面对的是“效率”和“简洁”的选择,这已经没有办法让你的程序在这两方面变得绝对更优,鱼和熊掌很难兼得。
对于那些年薪百万的,或者真正的大神来说,并不是每一行程序性能都需要优化到极致,而是在这二者之间掌握一个所需要的平衡。当代码量上去之后,对于大部分代码而言,可读性和稳定性的重要性就会逐渐超过性能,也就是说写得清晰易懂不犯错比下笔就是神算法要简单得多。
举个比较简单的例子,一个有序搜索,做过10道算法题的人都知道logn的,但是当你确定数据量不会超过15,并且这段算法不是critical path的时候,是完全可以直接写线性解的,因为线性解比logn要清晰简明得多,而且不会出现错误。
因此在成为大神的路上,思考远远要比书写重要,反思远远比重复重要。想清楚了再下笔去写,知道你要的是什么。在实现一个功能之前,脑子里先相处三种实现的方式,然后问自己我需要的最重要的东西是什么。而不是见到什么都先brute force,然后开始调,调好了发现原来这算法可以变成logn,然后推翻了重写。这完全是在浪费自己的时间和精力。当然了另一个极端就是,遇到什么东西都先想最优解,不是最优解坚决不写。
总而言之,写代码的目的,不是追求,也不是追求最简单,而是最好用。
2021亚太国际智能装备博览会圆满闭幕,感恩有你同行
嵌入式工控机的优点是怎样的
锂电池为什么会爆炸?锂电池爆炸的几率有多大
看一下结构体、联合体结合使用在C语言与嵌入式中的一些实用技巧
2020“隐私计算元年”,成为大数据时代最重要的护航手
程序员写代码的目的是什么
表面缺陷检测仪已成为高质量生产中不可或缺的一部分
一家来自南非的企业也打算加入动力电池领域的大军
iPhone8什么时候上市?苹果iPhone8全面屏竖排双摄模型曝光,ios11伴随而来
广凌预约管理系统:不排队!一键预约!更省事更迅速!
新思科技携手Juniper投资新公司,开拓快速发展的硅光子市场
配电箱的安装要求与规范
台湾前五大面板厂商去年净亏损合计34.5亿美元
鼠标的发展
Windows 10动态磁贴正逐步淘汰 新图标或将代替
realme成全球成长最快智能手机品牌之一 骁龙865旗舰新品将值得期待
浅谈通信的调制技术
谷歌云游戏服务Stadia将以网页行驶登录苹果设备
无线路由器缓慢下载和缓慢上传的解决方案
湖南株洲某电力公司采购瑞尼电力执法记录仪