0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

程序员写代码的目的是什么

工程师人生 来源:简书网 作者:好程序员特训营 2019-12-23 14:20 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

码农是一种游离于在二维世界(二进制)和人类现实世界之间的一种奇异的生物。关于程序,有人形容“程序有如生命。总处于演化之中。新需求就是基因突变。可能进化,可能劣化,可能崩溃。版本控制保存众多样本,提供重试的机会。单元测试就像DNA双链。将不自洽的细节揪出来。”

每个人的观点和看法可能不太一样,毕竟每个人达到的境界不一样,观看的视角也不一样,但是不管怎么样,但凡程序员就避免不了要写代码,或者要懂代码,那么写代码的目的又是什么呢?

当你水平达到了一定程度之后,你经常面对的是“效率”和“简洁”的选择,这已经没有办法让你的程序在这两方面变得绝对更优,鱼和熊掌很难兼得。

对于那些年薪百万的,或者真正的大神来说,并不是每一行程序性能都需要优化到极致,而是在这二者之间掌握一个所需要的平衡。当代码量上去之后,对于大部分代码而言,可读性和稳定性的重要性就会逐渐超过性能,也就是说写得清晰易懂不犯错比下笔就是神算法要简单得多。

举个比较简单的例子,一个有序搜索,做过10道算法题的人都知道logn的,但是当你确定数据量不会超过15,并且这段算法不是critical path的时候,是完全可以直接写线性解的,因为线性解比logn要清晰简明得多,而且不会出现错误。

因此在成为大神的路上,思考远远要比书写重要,反思远远比重复重要。想清楚了再下笔去写,知道你要的是什么。在实现一个功能之前,脑子里先相处三种实现的方式,然后问自己我需要的最重要的东西是什么。而不是见到什么都先brute force,然后开始调,调好了发现原来这算法可以变成logn,然后推翻了重写。这完全是在浪费自己的时间和精力。当然了另一个极端就是,遇到什么东西都先想最优解,不是最优解坚决不写。

总而言之,写代码的目的,不是追求,也不是追求最简单,而是最好用。

责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 程序员
    +关注

    关注

    4

    文章

    955

    浏览量

    30786
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    汇编程序段的定义介绍

    已经由操作系统自动设置为代码段的段基址,数据段的段基址则需要程序员手动装入DS中; ASSUME伪指令用于指定每一个数据段所对应的段基址寄存器。如上面的代码中CODE段的段基址寄存器为CS,DATA段
    发表于 11-21 08:19

    奔赴热AI,码力全开!Talkweb House@1024程序员日系列活动圆满收官

    1024程序员日”系列活动至此划上了一个圆满句号。本届1024程序员节以“AI构建世界,智能引领未来”为主题,广邀技术大咖、产业领袖、企业代表与全球开发者齐聚星城
    的头像 发表于 10-27 18:59 431次阅读
    奔赴热AI,码力全开!Talkweb House@1024<b class='flag-5'>程序员</b>日系列活动圆满收官

    开鸿智谷“以赛促学、以赛选才”|1024程序员节暨开源鸿蒙构建大会圆满落幕!

    10月24日,由开鸿智谷联合主办的长沙1024程序员节暨开源鸿蒙构建大会在长沙圆满落幕。本次活动以“湘聚长沙,共赴热AI”为主题,通过技术分享与实战竞赛相结合的方式,着力培养“开源鸿蒙+AI”领域
    的头像 发表于 10-27 17:58 475次阅读
    开鸿智谷“以赛促学、以赛选才”|1024<b class='flag-5'>程序员</b>节暨开源鸿蒙构建大会圆满落幕!

    1024程序员节 | 致敬用代码构建美好未来的你

     
    的头像 发表于 10-24 20:56 1067次阅读
    1024<b class='flag-5'>程序员</b>节 | 致敬用<b class='flag-5'>代码</b>构建美好未来的你

    程序设计与数据结构

    的地址)出发,采用推导的方式,深入浅出的分析了广大C程序员学习和开发中遇到的难点。 2. 从方法论的高度对C语言在数据结构和算法方面的应用进行了深入讲解和阐述。 3. 讲解了绝大多数C程序员开发
    发表于 05-13 16:45

    CY7C68013A无PID和VID,如何制作PDF?

    我用 CY7C68013A MCU 设计了一个 PCB,所以这意味着我不是程序员之类的。 但是我尝试上传一些代码,但没有 PID 和 VID。 我找到了一些关于如何制作的 PDF,但那些对我来说很难。 有人可以帮我吗?
    发表于 05-13 07:50

    如何在 树莓派 上编写和运行 C 语言程序

    ,一本很好的书是BrianKernighan和DennisRitchie所著的《TheCProgrammingLanguage》。这本书对经验丰富的程序员和想学习C语
    的头像 发表于 03-25 09:28 940次阅读
    如何在 树莓派 上编写和运行 C 语言<b class='flag-5'>程序</b>?

    零基础入门:如何在树莓派上编写和运行Python程序

    是一种非常有用的编程语言,其语法易于阅读,允许程序员使用比汇编、C或Java等语言更少的代码行。Python编程语言最初实际上是作为Linux的脚本语言而开发的。Py
    的头像 发表于 03-25 09:27 1527次阅读
    零基础入门:如何在树莓派上编写和运行Python<b class='flag-5'>程序</b>?

    为什么学了C语言,却不出像样的项目?

    在学习编程的路上,C语言几乎是每个程序员的“必修课”。不管你是打算从事嵌入式开发、系统编程,还是想要深入理解操作系统的底层原理,C语言都是一块重要的基石。然而许多人在学习C语言时,都会遇到这样
    的头像 发表于 03-14 17:37 681次阅读
    为什么学了C语言,却<b class='flag-5'>写</b>不出像样的项目?

    探索DeepSeek的Ai-WB2模组程序:功能强大

    DeepSeek是什么? DeepSeek,一家以代码编写能力为核心竞争力的 AI 科技公司,致力于通过高性能 AI 模型赋能企业智能化转型。公司拥有一支由顶尖程序员和 AI 专家组成的团队,他们以
    的头像 发表于 02-11 09:37 950次阅读
    探索DeepSeek的Ai-WB2模组<b class='flag-5'>程序</b>:功能强大

    代码与传统开发的区别 低代码与无代码开发的区别

    的工具和图形界面来缩短开发时间和降低技术门槛。以下是对低代码开发与传统开发的详细对比: 适用人群 传统开发 :主要适用于有经验、有基础的程序员,他们可以利用各种编码语言进行应用程序的创建。传统开发需要深厚的编程功底
    的头像 发表于 01-31 10:48 1057次阅读

    阿里云升级通义灵码AI程序员,全面上线

    近日,阿里云宣布其备受瞩目的通义灵码AI程序员已正式全面上线,为开发者带来更为强大和便捷的编程辅助工具。 此次上线的通义灵码AI程序员,在功能上实现了全面升级。现在,它支持VS Code
    的头像 发表于 01-09 11:16 958次阅读

    TMS320C6000程序员指南

    电子发烧友网站提供《TMS320C6000程序员指南.pdf》资料免费下载
    发表于 12-24 17:19 2次下载
    TMS320C6000<b class='flag-5'>程序员</b>指南

    TMS320C55x DSP CPU程序员参考补充

    电子发烧友网站提供《TMS320C55x DSP CPU程序员参考补充.pdf》资料免费下载
    发表于 12-21 11:36 3次下载
    TMS320C55x DSP CPU<b class='flag-5'>程序员</b>参考补充

    UCD3138A64/UCD3138128程序员手册

    电子发烧友网站提供《UCD3138A64/UCD3138128程序员手册.pdf》资料免费下载
    发表于 12-09 14:42 1次下载
    UCD3138A64/UCD3138128<b class='flag-5'>程序员</b>手册