共计 3576 个字符,预计需要花费 9 分钟才能阅读完成。
原文来自于: https://www.simplethread.com/…
这篇博文的灵感来自于我的联结创始人 Justin 的《编程 20 年我学到的事》,我没有在这个列表增加太多,然而读了这篇文章之后,我发现我在想所有依然让我喜爱编程的事,即便做了 20 年。上面是带给我高兴的 10 件事。
近些年,我的日常工作次要是领导和治理,更多的在于为他人发明胜利的环境,但在这个清单外面,我次要关注的是作为一个开发者编写代码和在生产零碎上的方方面面。不论你的编程教训如何,我心愿上面这些可能让你共鸣。享受吧(enjoy)
1. 等等,这怎么做到的(或者这是为啥呢)
这是开发者的特地体验,我从未在编程之外的畛域领会过。你正在钻研一些问题,探寻其逻辑实现,因为它与预期不合乎。但事实上,你越看,你就会越感到困惑 … 这个零碎怎么会进去正确的后果呢?我十分喜爱这一刻,因为这意味着你行将获得一些冲破,学到一些十分重要的货色。这有点像科学研究的老话:“科学研究上最令人兴奋的短语,那个预示着新发现的短语,不是我找到了它,而是乏味”(译者注: 突破性发现往往来自于意料之外的发现,在问题解决中,遇到意料之外的事件并不是好事,反而会有新的冲破发现)。
2. 一个精心设计、保护良好的阐明文档
你是否有过这样的经验,走进敌人的厨房,所有都很清朗?厨具摆放的东倒西歪(荒诞不经),须要的一切都在手边并且容易发现。这很像我进入一个代码仓库,仓库外面有一份设计良好的 readme 带给我的高兴。readme 的好坏依赖于我的项目自身,应该包含清晰的先决条件阐明和根本装置命令、可能会遇到的问题以及解决方案,取得初始数据的一些简略命令,运行测试等等。如果我可能轻松运行该仓库中的代码并基于此进行开发,很少有其余货色可能像设计良好的 Readme 来博得我的尊重。
3. 测试用例通过 🟢🟢🟢🟢🟢
软件开发中一个十分酷的事件是咱们可能从咱们构建的逻辑中立即失去反馈,并且测试过程实质也是能够自动化的。当然,也不是所有的事件都能自动化。比方 UX 反馈通常须要用户参加,并且咱们并不需要对每一行代码都进行可靠性测试,这破费的代价会有些大。
尽管如此,你依然能够在写下代码之后,写一个测试来验证在设定条件下它是否具备你冀望的行为。它也不仅仅是即时的,你也能够保留这个测试,并在其他人应用的时候提供应用阐明。这十分酷。我的大多数喜好,反馈周期都比拟长。比方烘焙和园艺,可能须要几天甚至几个月能力失去反馈。而且即使如此,解释后果并猜想出错后果依然须要肯定水平的专业知识。但我永远不会厌倦的是,运行测试样例并且看到所有的测试样例通过。
4.rails new
译者注: rails new 是一个 Ruby 的一个脚手架,rails new,咱们通过几个命令就能够搭建起一个简略的 Rails 我的项目。
是否有过一个我的项目开始构建时的兴奋劲? 我喜爱那种从零开始,有着有限可能感觉,没有技术债的我的项目。这也是我到当初依然喜爱通过 Darden’s i.Lab(一个征询网站)来向年老的企业家提供倡议的一个起因,也是我在 20 年当前依然喜爱征询的起因之一。你能够在许多事件上取得这种感觉,但软件有些不同,咱们更强调自动化和框架。几个命令,砰!你就取得了一个利用的脚手架,你能够应用这个脚手架来实现你的想法。丑陋。当我盯着一个空白页面的时候,我时常会心愿有一个这样的脚手架用来合作。
5. Vim
译者注: Vim 是从 vi 倒退进去的一个文本编辑器。其代码补完、编译及谬误跳转等不便编程的性能特地丰盛,在程序员中被宽泛应用。和 Emacs 并列成为类 Unix 零碎用户最喜爱的编辑器。
译者注: 没认真用过,不做过多评估。
还须要我说吗?如同年轻人说的, 如果你用过你就晓得了 (原文是一个缩写: IYKYK If You Know You Know)。实际上,我爱的不肯定是 Vim,我次要比拟喜爱 Vim 的模式编辑。简略的说,在 Vim 中你能够在两种模式下切换,一种是插入,一种是管制文本。在管制文本模式下(也称失常模式) 下,你能够通过三个字符删除逗号之前的所有字符。一旦你习惯了,你就再也回不去了。在我本人的电脑上,我甚至将 shell 也设置为了 vi 模式,这样我就能够应用一些组合按键来操作命令行参数。如果你没筹备好,那么面对 Vim 就会很困惑,如果你有了充沛的理解,那么就会发现它很弱小。
6. Building Our Tools 构建工具
说到 Vim…,在懒惰的周日下午,我喜爱看木工节目,如 The Woodright’s shop. 主持人在节目中探讨古时候的工具和木匠的历史。他们通常从根本工具开始,比方手锯和凿子,而后向你展现如何制作一个你本人的工作台。甚至有时是一个简略的车床或磨床。这很吸引我,常常让我想到软件开发。咱们用来编写代码和构建软件的工具也是由代码来构建。咱们的工具个别由其余程序员发明,如果有工夫,咱们齐全能够本人构建工具出像 Vim 这样的工具来满足咱们的需要。构建工具十分让人满足,在社区方面也十分的弱小。因为它发明了一个自动化反馈循环,有助于减速软件崛起、
7. Open Source 开源
在某种程度上,构建工具只是我酷爱开源软件的一个方面。也有人说过开源软件对于集体、公司乃至于整个人类文明有着不堪设想的价值。我只想说开源真他妈的酷。除了维基百科,我想不到其余的,开源软件是人类已经尝试过的最大常识合作我的项目,而程序员处于这个我的项目的最后阶段。如果人类文明在 100 年内、1000 年、10000 年后依然以某种可辨认的形式存在,那么我预计咱们依然会有某种模式的数字指令合作集,也就是开源软件。我只晓得人们可能感觉开源软件曾经巩固和成熟了。但咱们进入这个扭转人类文明的致力才只有几十年,开源软件太棒了。
8. 性能优化。
接下来让咱们回到高空,即时过了 20 年,我仍然酷爱解决性能问题。最近我的少数工作的内容都是主观和奥妙的。例如职改革, 可能须要几个月能力看到你致力的胜利。然而解决性能问题是主观的和具体的。比方这个页面加载太慢了,修复它。通常来说,修复它很简略,比方加上索引或者缓存。但有些状况,就须要深入研究,使用你多年来积攒的常识。这可能也是一个机会让你去理解磁盘如何存取数据的深奥常识,或者一些乏味的货色。有些状况,问题可能从无奈简略的被解决。所以你须要退后一步,重新考虑用户体验和基础架构。比方,你能够让用户感觉上快一点。在上班前,通常就有一个明确的解决方案。之前这个也面在最大负载场景下须要 6 秒。当初只须要 300 毫秒。哇哦,能够开香槟了。
9. Removing Toil(自动化流程)
下面的点次要来自于我本身,毕竟是我列出来的依然让我喜爱编程的十件事,然而真正让我对编程这个职业痴迷不已却并不是趣味,而是它如何影响四周的世界。有些时候,我意识到我能够应用软件开发的形式来改善同胞的生存。这就是我决定这就是我余生值得谋求的货色。软件行业的衰亡对社会有着深远的影响,或好,或坏。但有一件事,我感觉齐全的好,就是打消反复的劳动。打消那些反复的,不须要用到创造力的工作。设想一下这样一个工作,理分明库存和规格之间的关系,突出缺口。这是须要一个人每天破费数小时进行文本匹配的乏味工作。这也是计算机善于的工作。当初将这项工作交给计算机,这个人就能够将工夫花在依据计算机的输入做出判断,而后与其余局部协调,确定优先级等等。
自动化也有负面影响,然而总体来说瑕不掩瑜,我置信不论任何背景的进行职业流动,并将本人独特的见解和能力带入这些职业流动时,这才是一个良好的社会。人们节约生命在一些反复艰辛的工作上不利于文化提高。
10. 写给我本人
最初以我的初衷来完结探讨,最后我学习编程是因为我想要解决一些问题,我想让一些 BBS 的操作自动化,因为我厌倦了下载实现的时候点击下一个,下载的失败的时候点击重试。我想肯定有更好办法。过后曾经有了一种脚本语言,我记得是 perl。我曾经遗记了具体的细节。但这正是这种感觉让我喜爱上了编程。你会有这样的感觉,会有更好的解决方案,因为你有编程的能力,如果你想扭转它,那通常就有更好的解决方案。
我当初曾经很少有一天去写代码了,然而我常常依然会我本人写代码。在上周我写了一个脚本每天去拉取一种鲜为人知的举重器材的价格,并将其存储到一个 CSV 文件中。我想取得这个价趋势,然而制造商的网站太小了无奈被大型的数据追踪器笼罩到。但这无奈难倒我,我是一个程序员,我会解决他。
论断
这并不一定是编程中最让我喜爱的十件事。但它们是我脑袋中第一批想到的事。当我写作的时候,我想到了其余十几个。如果你是一名程序员,我可能漏掉了你喜爱的事。软件开发社区变的更加多样化,对于不同背景的人更加敌对。其中最酷的事件在于看到不同的人在编程中失去共鸣,他们会带来新的视角。如果有其余喜爱的事,或者不喜爱我喜爱的事请请告知,感激浏览。