作为程序员,我们可能有一些类似的经历。

一个是分号(;)、方括号([])和括号({})带来的困扰——谁没花过几个小时去寻找它们放错位置或者哪里遗漏了呢?

另一个是当我们不想做任何事情的时候,学会利用代码编译的时间偷懒休息。

但是,最普遍的经历是被称为 coder's block 的情况,也就是程序员的障碍,它可能让你无缘无故地写不出任何有用的代码。

就像作家的障碍一样,它可能会突然困扰程序员,并且几乎是不可能克服的。我知道这个情况,因为它曾经在我身上发生过很多次。所以,我经常有挫败感,做一些职业测验,因为我想自己肯定在职业路线上走入了误区。

幸运的是,我找到了几种方法来克服程序员的障碍。自那以后,我的工作一直很顺利。我想它们适用于任何容易陷入到编码障碍的人。

你可以每天使用下面五种方法,保持生产力,并摆脱程序员的障碍。

在纸上开始每个项目

几乎每次我在编写项目遇到麻烦的时候,我都能追溯到一个特定的原因。这是因为我一开始就想去关注项目的所有细节。

当你这样做的时候,即使是一个普通的编码项目,你也很容易被它庞大的规模所吓倒。另外,在没有具体想法的情况下就开始编写代码总是会导致灾难。

相反,首先要在纸上勾勒出项目的粗略轮廓,这是有经验的程序员习惯做的事情,但初级程序员往往会选择跳过。

你所要做的就是写出你尝试创建的程序的目的,然后是列一个你认为满足所有需求的子功能列表。

这个简单的动作可以帮助你将项目分解为看起来并不会令人生畏的较小的逻辑块,而且它让你有机会提前发现可能会在以后减慢你的进度的明显问题。

当你这样做完以后,你可以把工作大纲转换成自己喜欢的在线日历,这能帮你可视化构成项目的所有小任务。

对我来说,有一个完整的项目时间表,我就可以更轻松地一次专注于工作的一个逻辑部分。

可能是因为它消除了一个庞大项目给人的压力,或者减轻了完成每个部分的时间压力,这种方法有助于缓解我们的焦虑。

在沙箱中找到乐趣

有时候克服程序员的障碍的最佳方法是做出一些东西——任何有效的东西。所以,如果我感觉脑子转不过来,我就会在沙箱中尝试构建一些有趣的东西。

因为我更多是做 Web 前端开发,所以我的首选站点是 CodeSandboxCodePen。可能还有其他站点更适合你的需求。

比如,Replit 支持超过 50 种编程语言来编写代码。如果你遇到困难,你甚至可以在他们的社区里寻求帮助。

有时候,和其他程序员来回碰撞,提出想法,可以帮助你打破阻碍你继续工作的思维僵局。

维护一个待办事项列表

当我想在某个项目取得进展的时候,没有一个简单任务的列表,也会让我产生程序员障碍。

换句话说,当你在做一些特别具有挑战性的事情而陷入困境的时候,你也不希望就这样被困住,什么都不能做。

为了避免这种情况,你应该在每个项目的生命周期内维护一个实时更新的待办任务列表。我使用 Scrum 产品待办列表(即使我不需要和团队协作的时候,我也会用它)。

在列表里列出代码重构和外观更改之类的任务——换句话说,即简单且低优先级的任务。当你被一些难的任务困住的时候,你可以先解决这些简单的事情,这也是在推进你的项目。

有时候,完成简单任务有助于你重新找到成就感,打开思维。

有策略地休息

tired-coder
Image: Monstar Studio / Adobe Stock

如果你花点时间搜索“程序员的障碍”,你会看到很多文章都建议你在面对编程挑战时先休息一下。

好吧,休息也是一把双刃剑,因为一不小心你就会拖延,这样休息会导致更大的问题。

当我第一次去探索克服程序员的障碍的技巧的时候,我就意识到了这一点。刚开始,我对我的休息时间非常负责——当我想理清头绪时,只需要散步五分钟或走到咖啡机面前。

但很快,我发现自己在找理由让自己在所坚持的事情上分心,比如我花了半天时间在网上搜索价格合理的显卡。

所以,休息是你尝试突破程序员的障碍的好方法,但是你需要有策略地休息。

我最后发现,使用有时间限制、远离计算机的休息作为我大脑有意重置过程的最后一步非常有效。当我陷入困境的时候,我就会像下面这样做:

  • 花 15 分钟解决问题
  • 花 5 分钟从头开始回顾所有事情
  • 再花 15 分钟解决问题
  • 走开至少 10 分钟,做一些与编码无关的事情
  • 重复上述步骤

几乎每次我都能在休息 10 分钟后找到我想要的答案。再继续休息下去你可能会分心,以至于会忘记休息前结束的地方和逻辑思路。这就是为什么只能短暂休息,然后立即要重新开始的原因。

如果你够幸运的话,你可能不用经常重复上述过程。这样你就可以保持专注,避免在非生产性任务上浪费太多时间。

但是要小心,不要完全跳过休息时间。你确实需要时不时地暂停工作,以放松大脑。

我习惯在上午的日程安排中少休息会儿,抽出一些时间跟随 YouTube 上的锻炼频道做运动。

总是留下面包屑痕迹

对于程序员的障碍来说,“预防为主,治疗为辅”这句老话再正确不过了。这就是我养成了在编码项目中控制何时以及如何停止工作的习惯的原因。

我这样做是因为我发现当我试图从中断的地方重新开始的时候时,我正在做的那些被打断和没完成的事情只会让我感觉到头疼。

相反,如果我需要停止做某件事,我会留下特定和详细的笔记告诉我接下来要做什么。即使很匆忙,我也会留下面包屑的痕迹,这样我回来时就不必从头回溯做了什么工作了。

它为我省去了重新进入“编程模式”的麻烦,因为我不必费力地想上次中断的地方在哪。而且我不会在寻找重新开始的位置时过度分析已经完成的代码的漏洞。

这两种情况都会让你慢下来,并导致你陷入程序员的障碍。自从我开始给自己留下一些面包屑的痕迹以后,我就再也没有遇到过这两个问题了。

成为一个势不可挡的程序员

cheerful-positive-coder

Image: deagreez / Adobe Stock

我不能向你保证这五种方法可以让你远离程序员的障碍。但我可以告诉你的是,它们会帮助你远离导致程序员的障碍的一些常见情况。

自从我在编程时运用这些方法之后,我就没有在某个问题上停留超过一两个小时——这是来自一个不止一次想要放弃编程、转行的人的经验。

即使它们对你的效果只有一半,你也会成为一个势不可挡的程序员!

Featured image: DragonImages / Adobe Stock

原文:How to Beat Coder's Block – Five Tips to Help You Stay Productive,作者:Andrej Kovacevic