本文包含附属链接。有关更多信息,请参阅我的附属公司披露。
如果你做某件事的时间足够长,你会不可避免地希望你在开始时做的事情有所不同。
我已经每天编码超过九年了。有足够的时间犯一些错误并从中吸取教训(我希望如此)。如果我能回到我编程生涯的开始,我会做一些不同的事情。
这是其中的四个。
停止将代码视为神圣
不可触碰的代码不是代码气味;这是一个可恶的代码臭气弹。
我的工作是维护一团乱七八糟的 PHP。我发誓未使用的执行路径如果被删除会破坏事情。每一个变化都有意想不到的效果。代码库中充满了“神圣的代码”——因为没有人理解,所以不得不搁置这些代码。
它给了我一种即将到来的厄运的感觉。
如果电脑看不见你,它就不会伤害你。
我只知道有一天我会在代码库的神圣部分遇到一个错误,整个应用程序会崩溃。
它从来没有——至少在我在那里的时候没有。但是不愿意篡改代码的某些部分意味着补丁必须是超本地化的。代码库的规模越来越大,这使得维护变得更加困难。我留下的代码比我发现的更糟糕。
我希望我从来没有把那个代码当作神圣的。
掌握代码编辑器
如果您整天都在使用代码编辑器,请花时间研究和练习有用的快捷方式。
几年来,编码对我来说是次要活动。我在研究生院将其用作研究工具,并在我的第一份工作中编写了自动化脚本和用户界面。在这两种情况下,我花了不到 20% 的时间进行编码。我从来没有对代码编辑器那么精通。
不过,在我的第二份工作中,我整天都在隔间里看 VS Code。
我浏览编辑器的速度非常慢。
作者与他的代码编辑器战斗的肖像。
一点一点地,我学会了技巧和窍门。然后我开始刻意练习捷径。虽然我还没有真正掌握 VS Code,但差异是巨大的。我在编辑特定任务上浪费的时间和精力要少得多,可以更多地专注于实际工作。
我希望我早点开始掌握我的编辑器。
学习不相关的语言
如果你学过一种语言,那就选择一种不相关的语言来学习。
在大学里,我使用过 C、C++ 和 Java。在研究生院,我使用了 MATLAB 和 Python。我在工作中使用过 Lua、PHP、JavaScript、Python 和 Julia。当然,每种语言都有其差异。但它们都是必不可少的。从这个角度来看,它们的相似之处多于不同之处。
它们在“内部”上是不同的。
直到最近,我只使用过一种声明性语言:SQL。
不过,我从未编写过任何复杂的 SQL 查询。
最近,我一直在学习一种名为Rel的声明性语言,以适应我目前在RelationalAI的角色。编写不表达控制流的代码需要一些时间来适应。但是无论我使用哪种语言,学习 Rel 都改变了我思考和编写代码的方式。特别是,它让我对函数式编程有了新的认识。
我希望我早点学会一门声明性语言。
阅读其他人的代码
时不时地阅读别人的代码……就像阅读小说一样。
在一个由两个或更多人组成的团队中工作的所有编码人员都会在某个时候阅读其他人的代码。但即使你每天在工作中阅读其他人的代码,我猜它也可能是在修复错误或添加功能的背景下。幕后总是有一项任务,而且通常是截止日期。
这不是我所说的那种阅读方式。
你上一次依偎着一些好的源代码是什么时候?
我说的是 Donald Knuth 在Coders At Work中告诉 Peter Seibel 他在一次自行车事故中摔断手臂后所做的那种阅读:
我有一个月不能做太多事情,所以我阅读了我听说的源代码,其中包含一些尚未记录的聪明想法。
— 唐纳德·克努斯
我一直在阅读 Peter Norvig 的Pytudes ,尽管可能与 Knuth 阅读他正在阅读的任何代码的深度不同。不过,这是一个值得的练习。它让我接触到了用代码解决问题的新思维方式。
我希望我早点开始阅读其他人的代码。
你希望你在职业生涯早期做过什么?
阅读 Peter Seibel 的《 Coders At Work访谈》一书中的专业程序员在反思他们如何学习编程以及如何练习手艺时所说的话。
想要更多这样的吗?
每周六发送一封电子邮件,其中包含一个可操作的提示。
总是少于你的 5 分钟。
现在订阅
艺术品 © @zdeneksasek 来自 Canva.com
原文: https://davidamos.dev/4-things-i-wish-id-done-earlier-as-a-coder/