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

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

3天内不再提示

编程一万小时后的31条反思

奈因PCB电路板设计 来源:OSC开源社区 作者:局长 2021-08-23 14:47 次阅读

大多数情况下,如果你正在做的事情无法在互联网上找到答案,那么这通常意味着这个问题很难或者很重要,或者两者都是

尽可能多地删除代码

语法糖通常是不好的

简单往往是最难的

拥有各种各样的工具,并知道该用哪些工具来完成工作

了解最常用的工具的内部结构,如 git 和 bash

为重复的工作流程构建自己专用的工具

从最好的资料中进行学习(这里 Matt 举例称他在学习 Go 时阅读了标准库)

如果代码看起来很丑,那很可能是一个严重的错误

如果必须编写不是文档字符串 (docstring) 的注释,则应该考虑对这段代码进行重构

如果不了解所编写的程序是如何在生产环境中运行的,那就说明不了解程序本身。优秀的工程师知道他们的程序在各种环境中是如何运行的

上面这条经验对于构建管道也适用

谨慎使用他人的代码

互联网上找到的代码大多数都很糟糕,有时候自己写一个更好的版本会更容易

永远不要直接依赖自己可以轻松重写的小型库,或本应很小的大型库

知道什么时候该打破规则。对于“不要重复自己”这种规则,有时候重复比使用依赖要好

将代码组织成模块、包和函数很重要。了解 API 的边界位置是一门艺术

大多数情况下应选择最有效的工具,但也要选择自己所知道的。Arch Linux 是现代开发者最高效的操作系统吗?对我来说,是的,但对大多数人来说,可能不是

避免圈复杂度 (Cyclomatic complexity)

避免多层嵌套条件

正确命名变量,这也是一门艺术

虽然很少见,但有时报错可能确实是编译器的问题

谨慎使用深奥的语言特性,但在应该使用的时候还是要使用

技术的传播并不均衡对等。例如,前端开发者可以从负责底层技术的工程师那里学到许多东西,云工程师可从 JavaScript 开发者身上学到用户体验和可用性方面的知识。但反过来却未必成立

因此,不同类型的工程师看待世界的方式是不同的

部分程序员的效率是其他程序员的 10 倍

成为 10 倍程序员与 10 倍员工这两者之间没有相关性(或许是负相关)

好的 API 易于使用且难以误用

配置七边形(Matt 自创的术语)从硬编码值开始,到环境变量、CLI Flag、配置文件、模板化配置文件、DSL、通用 bash 脚本,再到硬编码值。开发者应了解这个七边形中的各个位置。

责任编辑:haq

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

    关注

    88

    文章

    3587

    浏览量

    93580
  • 代码
    +关注

    关注

    30

    文章

    4741

    浏览量

    68324

原文标题:编程一万小时是种什么样的体验?

文章出处:【微信号:pcbgood,微信公众号:奈因PCB电路板设计】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    AIC31xx/DAC31xx器件和扬声器输出上的EMI滤波

    电子发烧友网站提供《AIC31xx/DAC31xx器件和扬声器输出上的EMI滤波.pdf》资料免费下载
    发表于 10-18 10:07 0次下载
    AIC<b class='flag-5'>31</b>xx/DAC<b class='flag-5'>31</b>xx器件和扬声器输出上的EMI滤波

    TLV320AIC31xx和TLV320DAC31xx功耗特性

    电子发烧友网站提供《TLV320AIC31xx和TLV320DAC31xx功耗特性.pdf》资料免费下载
    发表于 10-18 09:42 0次下载
    TLV320AIC<b class='flag-5'>31</b>xx和TLV320DAC<b class='flag-5'>31</b>xx功耗特性

    SMJ320C31/SMJ320LC31/SMQ320LC31数字信号处理器数据表

    电子发烧友网站提供《SMJ320C31/SMJ320LC31/SMQ320LC31数字信号处理器数据表.pdf》资料免费下载
    发表于 08-02 12:54 0次下载
    SMJ320C<b class='flag-5'>31</b>/SMJ320LC<b class='flag-5'>31</b>/SMQ320LC<b class='flag-5'>31</b>数字信号处理器数据表

    时速高达25公里/小时的电动滑板车,在德国允许吗?(ABE)

    依2023年7月20日I第199号第9V修订中eKFV规定,最高设计速度不低于6公里/小时且不超过20公里/小时的机动车辆。购买电动滑板车时要小心!在德国,电动滑板车可以以每小时25
    的头像 发表于 05-11 08:30 475次阅读
    时速高达25公里/<b class='flag-5'>小时</b>的电动滑板车,在德国允许吗?(ABE)

    【AWTK使用经验】如何设计立体电池进度

    AWTK是基于C语言开发的跨平台GUI框架。《AWTK使用经验》系列文章将介绍开发AWTK过程中一些常见问题与解决方案,例如:如何加载外部资源?如何设计自定义进度?这些都会在系列文章进行解答
    的头像 发表于 04-18 08:25 415次阅读
    【AWTK使用经验】如何设计立体电池进度<b class='flag-5'>条</b>?

    CYUSB3014与PC通信几小时断开的原因?怎么解决?

    PC是WIN7系统,PC端APP通过USB3与下位机通信几个小时以后,通信就会断开,通过bus hound抓不到任何通信数据,出错时CYUSB芯片的心跳灯正常,PC的设备管理器设备也正常。 重新插拔 或禁用,再启用以后,通信立刻回复正常。
    发表于 02-29 08:14

    麦爵士madrix麦觉仕幻彩灯灯带智能像素灯的控制方式全解析

    对于麦爵士像素灯,主要的几种控制方式是:脱机控制:a、脱机控制分内置程序跑灯和通过编程软件编程拷贝到SD卡插入控制器使用,控制器的选择
    的头像 发表于 02-27 20:08 1044次阅读
    麦爵士madrix麦觉仕幻彩灯<b class='flag-5'>条</b>灯带智能像素灯的控制方式全解析

    服务器内存和普通内存的区别

    服务器内存和普通内存的区别  服务器内存和普通内存是计算机中常见的两种内存设备。它们在设计、功能和应用方面存在一些显著的区别。 1.物理特性 普通内存
    的头像 发表于 02-19 10:19 8656次阅读

    UCB_SWAP配置信息共16,写入一有效配置,上一需写1使配置无效是为什么?

    UCB_SWAP配置信息共16,写入一有效配置,上一需写1使配置无效。 经过实测发现配置是从下至上检索,取最后一有效配置,而不是从
    发表于 01-24 08:31

    21!自动驾驶道路再开放?

    具体来看,此次新增的21道路中,镜湖新区周边墅路、山会大道、凤林西路、世纪西街为一类测试道路;育贤西路为二类测试道路;汤公路、墅路、润沁路、洋江西路、横湖路、树兰路、适南路为三类测试道路。
    的头像 发表于 12-27 17:03 658次阅读

    PCB设计必备:31布线技巧

    ,要注意布线的对称性,保持2端布线线宽一致,如一个管脚铺铜,另一管脚也尽量铺铜处理,减少元件贴片器件漂移旋转,如下图所示。 对于有包地要求的信号,须保证包地的完整性,尽量保证在包地线上进行打GND孔
    发表于 12-25 11:58

    PCB设计必备:31布线技巧!

    ,要注意布线的对称性,保持2端布线线宽一致,如一个管脚铺铜,另一管脚也尽量铺铜处理,减少元件贴片器件漂移旋转,如下图所示。 对于有包地要求的信号,须保证包地的完整性,尽量保证在包地线上进行打GND孔
    发表于 12-25 11:56

    数据库编程大赛:一SQL计算扑克牌24点

    参加NineData举办的数据库编程大赛,展示你的技术才华!用一SQL语句解决扑克牌24点的计算表达式。这场比赛面向数据库爱好者、开发者、程序员、DBA等,展示你的编程技能,并有机会赢得丰厚奖励。欢迎大家来挑战!
    的头像 发表于 12-21 15:24 709次阅读
    数据库<b class='flag-5'>编程</b>大赛:一<b class='flag-5'>条</b>SQL计算扑克牌24点

    31PCB设计布线技巧!

    相信大家在做PCB设计时,都会发现布线这个环节必不可少,而且布线的合理性,也决定了PCB的美观度和其生产成本的高低,同时还能体现出电路性能和散热性能的好坏,以及是否可以让器件的性能达到最优等。 本篇内容,将针对PCB的布线方式,做个全面的总结。 1、走线长度应包含过孔和封装焊盘的长度。 2、布线角度优选135°角出线方式,任意角度出线会导致制版出现工艺问题。 3、布线避免直角或者锐角布线,导致转角位置线宽变化,阻抗变化,造成
    的头像 发表于 12-05 19:40 1431次阅读
    <b class='flag-5'>31</b><b class='flag-5'>条</b>PCB设计布线技巧!

    程序员的10基本编程原则

    编写代码容易,但编写优秀代码却是一项挑战。采纳基本编程原则是确保编写高质量代码的稳妥途径,无论软件项目规模大小,都能保证代码高效、易读、可靠、安全且易维护。
    的头像 发表于 12-05 11:28 983次阅读
    程序员的10<b class='flag-5'>条</b>基本<b class='flag-5'>编程</b>原则