<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ 效率 - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ freeCodeCamp 是一个免费学习编程的开发者社区，涵盖 Python、HTML、CSS、React、Vue、BootStrap、JSON 教程等，还有活跃的技术论坛和丰富的社区活动，在你学习编程和找工作时为你提供建议和帮助。 ]]>
        </description>
        <link>https://www.freecodecamp.org/chinese/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ 效率 - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/chinese/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Sat, 23 May 2026 08:28:47 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/chinese/news/tag/efficiency/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ 改善你的编程工作流程的 5 个实用 Linux 程序 ]]>
                </title>
                <description>
                    <![CDATA[ 对软件开发人员来说，总是有新的工具和框架出现，可以完全改变你的工作流程——为了更好（或更糟？） 无论怎样，总是有可能优化你日常工作的方式。 这篇文章包含了一些 Linux 工具，这些工具最近取代了我过度使用和生产力不足的日常编程工作流程。 你将了解到这些实用程序，以及它们是如何更好地替代同类产品的。 让我们开始吧。 如何使用 Mcfly 你是否无情地按终端上的输入上箭头键，直到得到你之前运行的命令？我也有过这样的经历。我不知道我可以优化这个，所以我在相当长的一段时间里虔诚地使用它。 然后我了解到 ctrl + r。它允许你搜索你的命令历史，并且有通配符搜索。哇！！！ 结果呢？我的手指敲击练习从第一天开始就结束了。我再次认为，对于这样一个小工具来说，这一定是用户体验的峰值。我大错特错了。 所以呢？嗯，有一个更好的ctrl-r给你。介绍一下 Mcfly 🦋。 除了常规的ctrl+r功能外，它还有一些额外的优点：  1. 这些建议是使用神经网络定制的，该网络考虑了你当前的工作目录和最近执行的命令。  2. 它跟踪命令的退出状态（你可能不想再次运行一个失败的命令）、时间戳 ]]>
                </description>
                <link>https://www.freecodecamp.org/chinese/news/5-linux-utilities-for-better-programming-workflow/</link>
                <guid isPermaLink="false">630c8084aeb66407f67d1309</guid>
                
                    <category>
                        <![CDATA[ Linux ]]>
                    </category>
                
                    <category>
                        <![CDATA[ 效率 ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ luojiyin ]]>
                </dc:creator>
                <pubDate>Mon, 29 Aug 2022 04:20:00 +0000</pubDate>
                <media:content url="https://chinese.freecodecamp.org/news/content/images/2022/08/linux-shell-utilities-cover.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文：</strong> <a href="https://www.freecodecamp.org/news/5-linux-utilities-for-better-programming-workflow/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">5 Linux Utilities to Improve Your Programming Workflow</a>
      </p><!--kg-card-begin: markdown--><p>对软件开发人员来说，总是有新的工具和框架出现，可以完全改变你的工作流程——为了更好（或更糟？）</p>
<p>无论怎样，总是有可能优化你日常工作的方式。</p>
<p>这篇文章包含了一些 Linux 工具，这些工具最近取代了我过度使用和生产力不足的日常编程工作流程。</p>
<p>你将了解到这些实用程序，以及它们是如何更好地替代同类产品的。</p>
<p>让我们开始吧。</p>
<h2 id="mcfly">如何使用 Mcfly</h2>
<p>你是否无情地按终端上的输入<code>上箭头键</code>，直到得到你之前运行的命令？我也有过这样的经历。我不知道我可以优化这个，所以我在相当长的一段时间里虔诚地使用它。</p>
<p>然后我了解到 <code>ctrl + r</code>。它允许你搜索你的命令历史，并且有通配符搜索。哇！！！</p>
<p>结果呢？我的手指敲击练习从第一天开始就结束了。我再次认为，对于这样一个小工具来说，这一定是用户体验的峰值。我大错特错了。</p>
<p>所以呢？嗯，有一个更好的<code>ctrl-r</code>给你。介绍一下 Mcfly 🦋。</p>
<p>除了常规的<code>ctrl+r</code>功能外，它还有一些额外的优点：</p>
<ol>
<li>这些建议是使用神经网络定制的，该网络考虑了你当前的工作目录和最近执行的命令。</li>
<li>它跟踪命令的退出状态（你可能不想再次运行一个失败的命令）、时间戳和其他有用的信息。</li>
<li>你可以使用<code>%</code>作为通配符来匹配多个字符。</li>
</ol>
<p>以下是我在两个不同的仓库中得到的建议，基于我的 <code>shell</code> 输入历史：</p>
<figure class="kg-card kg-card-image kg-card-hascaption">
    <img src="https://www.freecodecamp.org/news/content/images/2022/08/mcfly-in-git-project.png" alt="建议使用包括一个专门针对这个项目的构建脚本" class="kg-image" width="600" height="400" loading="lazy">
    <figcaption>建议使用包括一个专门针对这个项目的构建脚本</figcaption>
</figure>
<figure class="kg-card kg-card-image kg-card-hascaption">
    <img src="https://www.freecodecamp.org/news/content/images/2022/08/mcfly-in-different-git-project.png" alt="项目有一个不同的构建脚本" class="kg-image" width="600" height="400" loading="lazy">
    <figcaption>项目有一个不同的构建脚本</figcaption>
</figure>
<p>你可以从<a href="https://github.com/cantino/mcfly#installation">这里</a> 安装 Mcfly。</p>
<h2 id="cheatsh">如何使用 Cheat.sh</h2>
<p>谁喜欢看 <code>man</code>信息？我不喜欢。当我在纠结一个命令的时候，我最不想看的就是手册页。不是因为它没有帮助，而是因为它让人不知所措。</p>
<p>我经常只是需要简明的例子，可以快速上手。当我发现 <a href="https://tldr.sh/">TLDR pages</a> 时，我是最高兴的人。现在有了 Cheat（表），我就更高兴了。</p>
<p>Cheat 让你可以访问 <a href="https://github.com/cheat/cheatsheets/">cheatsheets</a>，这可能是你所需要的每个命令，只有例子，没有百科全书。</p>
<p>如果你不想安装这个工具，你可以像这样用 CURL 获得手册:</p>
<pre><code class="language-bash">curl cheat.sh/uptime
</code></pre>
<p>获取 sed 的手册</p>
<p>因此，你不是在你的机器上安装手册，而是只为你需要的命令获取信息。你可以访问 <a href="https://cheat.sh/">cheat.sh</a>，也可以在你的浏览器上使用它</p>
<p>以下是上述命令的输出情况：</p>
<figure class="kg-card kg-card-image kg-card-hascaption">
    <img src="https://www.freecodecamp.org/news/content/images/2022/08/Image-Pasted-at-2022-8-19-13-56.png" alt="下面是上述命令的输出情况" class="kg-image" width="600" height="400" loading="lazy">
    <figcaption>下面是上述命令的输出情况</figcaption>
</figure>
<p>你会在 <a href="https://github.com/cheat/cheat">codebase</a> 中找到很多的例子。</p>
<h2 id="gitopen">如何使用 Git Open</h2>
<p>我经常需要在浏览器中打开我正在做的项目的 GitHub 仓库。这可能是为了检查我提出的 Pull Request 的评论更新，改变仓库的设置，或者任何需要 GitHub 仓库页面的事情。</p>
<p>好吧，我们甚至有一个实用的工具来解决这个问题！</p>
<p>运行 <code>git open</code> 会在你的浏览器上打开你当前的工作仓库。默认情况下，它打开的是你所在分支的远程页面。你甚至可以为这些命令创建一个别名，以避免输入全部内容。</p>
<p>这里有一些别名设置供你参考（译者注：golang 开发者要改成别的）：</p>
<pre><code class="language-bash">alias go="git open"
alias blog="git open https://github.com/&lt;username&gt;/blog &lt;branch&gt;"
</code></pre>
<p>使用 zsh 别名打开远程 GitHub 资源库</p>
<p>在 GitHub 上查看 Git Open <a href="https://github.com/paulirish/git-open">这里</a>。</p>
<h2 id="bat">如何使用 Bat</h2>
<p>我们都使用过<code>cat</code>，对吗？Bat 就是这样，但它有语法高亮，漂亮的格式化和风格化选项，并支持 git diff。它非常通用，很容易与其他工具集成，并提供自定义主题选项。</p>
<p>让我们来看看。这是我们使用 <code>cat</code> 的 Express 服务器文件：</p>
<figure class="kg-card kg-card-image kg-card-hascaption">
    <img src="https://www.freecodecamp.org/news/content/images/2022/08/Image-Pasted-at-2022-8-19-16-26.png" alt="cat 命令的输出" class="kg-image" width="600" height="400" loading="lazy">
    <figcaption>cat 命令的输出</figcaption>
</figure>
<p>上面的输出没有语法高亮，降低了代码的可读性。让我们用<code>bat</code>做同样的事情：</p>
<figure class="kg-card kg-card-image kg-card-hascaption">
    <img src="https://www.freecodecamp.org/news/content/images/2022/08/Image-Pasted-at-2022-8-19-16-27.png" alt="bat 命令的输出" class="kg-image" width="600" height="400" loading="lazy">
    <figcaption>bat 命令的输出</figcaption>
</figure>
<p>这显然更具可读性。它自动应用了适当的语法高亮（无需任何配置），提供了文件名和行号。</p>
<p>请随意开始使用它<a href="https://github.com/sharkdp/bat">这里</a>。</p>
<h2 id="jq">如何使用 Jq</h2>
<p>Jq 是一个 JSON 的命令行处理工具。你可以对你的 JSON 进行切片和切块，进行投影以只显示某些字段，并从（巨大的）JSON 中只提取所需的信息。不再有满屏的终端输出了。</p>
<pre><code class="language-javascript">[
  {"value": 1, "rating": 2 },
  {"value": 2, "rating": 4 },
  {"value": 3, "rating": 5 }
]
</code></pre>
<p>输入数组样本</p>
<p>从一个数组中访问一个键看起来像这样：</p>
<pre><code class="language-shell">jq '.[0] | { value }'
</code></pre>
<p>我们要求的是数组中的第一个元素，并且只获取 <code>value</code> 字段：</p>
<pre><code class="language-javascript">{
  "value": 1
}
</code></pre>
<p>要了解更多，请前往他们的 <a href="https://stedolan.github.io/jq/tutorial/">官方教程</a>。</p>
<p>他们也有一个方便的在线网站。我已经在<a href="https://jqplay.org/s/E2-xscbiHba">这里</a>创建了一个片段。你可以自由地调整它，玩一玩。</p>
<p>你甚至可以用 <a href="https://github.com/simeji/jid">jid</a> 更进一步。它是一个利用 Jq 的交互式 JSON 提取器。它为你提供非常方便的建议和自动完成功能。</p>
<h2 id="">总结</h2>
<p>这些都是一些扩大我视野的实用工具，使我认识到总有更好的方法来做事情。你只需要不断上网搜索。从 <code>如何做 X（how to do X）</code> 和 <code>X 的更好替代品（better alternatives to X）</code> 开始。</p>
<p>在我的日常编程工作流程中，我经常使用这些实用工具。我希望其中至少有一个会对你有用。</p>
<p>我很想知道哪些工具对你的日常工作流程至关重要，你是否使用本文中提到的任何工具？</p>
<p>喜欢这篇文章吗？<a href="https://rrawat.com/newsletter">获得关于后端网络开发的资料</a> 💌。</p>
<!--kg-card-end: markdown--> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ 专注和深入工作——成为 10 倍开发者的秘密武器 ]]>
                </title>
                <description>
                    <![CDATA[ 原文：Focus and Deep Work — Your Secret Weapons to Becoming a 10X Developer [https://www.freecodecamp.org/news/focus-and-deep-work-your-secret-weapons-to-becoming-a-10x-developer-8e203a6ad291/] ，作者：Bar Franek [https://www.freecodecamp.org/news/author/barmang/] 换句话说，就是怎样才能成为互联网大厂程序员中的一员？ 不管你是一个正在忙着工作的职员，还是一个想要得到他人关注和技能提升的初级程序员；不管你是一个正打算变换路线，从公司离职去创业或者从事其他事情的领导者，还是一个刚毕业的没工作的大学生。这都没关系！ 只要你是一个程序员，没有什么技能比专注和钻研对你的成功更重要。 作者Cal Newport 的 《 Deep Work 》中写到： > “The Deep Work 假设：拥有深度工作的能力正变得越来越罕见，同时，它对我们的 ]]>
                </description>
                <link>https://www.freecodecamp.org/chinese/news/focus-and-deep-work-your-secret-weapons-to-becoming-a-10x-developer/</link>
                <guid isPermaLink="false">628364c860237306d2606dc6</guid>
                
                    <category>
                        <![CDATA[ 效率 ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ linger ]]>
                </dc:creator>
                <pubDate>Tue, 17 May 2022 09:07:42 +0000</pubDate>
                <media:content url="https://chinese.freecodecamp.org/news/content/images/2022/05/1652778417070.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>原文：<a href="https://www.freecodecamp.org/news/focus-and-deep-work-your-secret-weapons-to-becoming-a-10x-developer-8e203a6ad291/">Focus and Deep Work — Your Secret Weapons to Becoming a 10X Developer</a>，作者：<a href="https://www.freecodecamp.org/news/author/barmang/">Bar Franek</a></p><!--kg-card-begin: markdown--><p><strong>换句话说，就是怎样才能成为互联网大厂程序员中的一员？</strong></p>
<p>不管你是一个正在忙着工作的职员，还是一个想要得到他人关注和技能提升的初级程序员；不管你是一个正打算变换路线，从公司离职去创业或者从事其他事情的领导者，还是一个刚毕业的没工作的大学生。这都没关系！</p>
<p>只要你是一个程序员，没有什么技能比专注和钻研对你的成功更重要。</p>
<p>作者Cal Newport 的 《 Deep Work 》中写到：</p>
<blockquote>
<p>“The Deep Work 假设：拥有深度工作的能力正变得越来越罕见，同时，它对我们的经济生活也越来越重要......少部分拥有这种技能的人，在工作和生活中使用它，将会受益无穷。”</p>
<p>— Deep Work p.14</p>
</blockquote>
<p>如何变成一个被市场需要的开发者，我将使用一些《Deep Work》的观点并结合我自己的思想。如果你是一个在任何技术领域的人，我强烈建议您阅读它。</p>
<h3 id="">从恐惧代码到技术负责人</h3>
<p>编程，我是自学成才。但是，我是20岁才开始编程的。我一直觉得自己是一个最终能进入创造性领域的艺术家。</p>
<p>我做到了。大学毕业后，我创办了一家为小型本地企业提供图像和网页设计的公司。我是 Photoshop 的专家，并且觉得 HTML 和 CSS 是很难的。</p>
<p>更恼火的是，只要写一行 PHP（一种程序语言） ，我就得外包出去。</p>
<p>我被代码吓到了很长一段时间，在那期间，我都不碰它，都把相应的工作交给有计算机科学学位的人。</p>
<p>“敲错一个代码，客户的业务将会不能运行...”，我觉得。老实说，我不太靠谱（在没有版本控制之前，FTP都不能回退代码的）。</p>
<p>现在我是一家财富50强公司的技术负责人，所开发的是一个每月有数百万用户的产品。</p>
<p>我是怎样在短短几年内做到现在这样呢？🤔</p>
<p>我的“秘诀”就是专注和深入工作。没什么特别的。我花时间锻炼自己怎样长时间专注于一件特定的事情，不分心。</p>
<h3 id="">代码是一种艺术</h3>
<p>编程是一个创造性的追求。</p>
<p>对普通人来说，它是技术并且枯燥无味，但你是一个创造者。你正在创造世界上没有的东西。所谓“没有”，就是你脑海中对于应用程序的一个想法，又或者是产品经理的功能需求。</p>
<p>它不存在，但你要创造它。不是用绘画也不是用文字，而是用代码（好吧，有文字，只要不是保留字）。</p>
<p>如果你有一些想法，但要高水准的实现，那么，你就必须练习。</p>
<p>当你能更好的专注于某件事很长一段时间，输出的数量和质量都会提升。</p>
<p>艺术，音乐和写作都需要很长一段连续的时间。科普一下，在此期间，脑细胞之间的突触上的髓鞘变稠。编程也不例外。</p>
<p>你会在练习和掌控时间上越来越好。当你的练习越有效时，你可以在更短的时间内，获得更好的成绩。</p>
<p>是的。你能成为那个10倍高效的开发者（5倍，2倍还有1倍，也很棒）。我说明一下，我讨厌这种流行语 “摇滚明星”、“忍者”、“10倍开发者”。每一个开发人员都是的，但是公司和招聘人员很喜欢这样称呼。</p>
<p>尽管俗气，但是在 “10倍开发者” 理念背后还是有很多真理的。</p>
<p>它不是说一个人可以代替十个人，而是说一些开发者能在更少的时间更高质量的完成更多的事情。他们一直做到了这一点，并不是比别人更努力。</p>
<p>这种能力不是与生俱来。也不是你可以 “打开” 的东西。它是<strong>你可以而且必须练习和训练</strong>的技能。</p>
<p>我在招聘方面工作了几十次，我会告诉你公司都想拥有一个由10倍开发者组成的团队。但是，那是不现实的。</p>
<p>开发职位空缺多于合格的开发人员。公司连一般的合格的开发者都很难找到，更别说找（多少）倍开发者了。</p>
<blockquote>
<p>“高级管理人员认为，缺乏优秀的开发人才是他们成长的最大潜在危险之一。”  ——The Developer Coefficient</p>
</blockquote>
<p>找到优秀的人才真的很<strong>难</strong>。</p>
<p>大多数公司会招聘10倍开发者，但是他们也很乐意招聘5x、2x，甚至1x的开发者。</p>
<p>1x开发者（对，我就是）是可以完成工作的，不多不少。而且，还有大量关于天文成本的不良雇佣关系的报道。</p>
<h3 id="2">将编程技能与专注深入工作相结合所需的2个步骤</h3>
<p>是时候提升你的职业生涯了。你有大量的机会可以获得喜欢的工作并且得到很好的发展。</p>
<p>如果你正处在创业阶段，提供的也是相同的课程。因为对你们来说，更重要的是时间的有效利用。</p>
<p>它可以帮助您：从初级开发者到高级开发工程师；从0.5x开发者到5x开发工程师；一周只有10个小时额外时间也能发展副业。</p>
<p>苦难，就是你生存的毕竟之路。</p>
<blockquote>
<p>“想要经济自由，你就要掌握快速学习复杂事务的技巧。所以你需要深度工作。如果你不具备这项技能，那你很可能会随着技术的前进而落后。”<br>
— Deep Work p.13</p>
</blockquote>
<h3 id="">学习专注于事物是艰巨的。</h3>
<p>首先要意识到的是，学习专注不是一件容易的事情。你不能一开始就写出高质量代码的项目。特别是如果你从来没处理过在容易分心的事情上不分心。</p>
<p>学习专注需要练习。需要练习的任何事情都意味着困难。如果不是，那你可能是天生就擅长它。</p>
<p>你开始挣扎，不要紧张，我们将会从小事情开始。</p>
<h4 id="">不要将忙碌与生产力混淆</h4>
<p>深度工作不是将你自己锁在小黑屋里，强制自己一次漫无目的的浏览代码长达14小时。仅仅因为你正在做这件事，但并不意味着它就值得做。</p>
<p>你需要弄清楚哪些事情是重要的，哪些是不重要的。这超出了本文的范畴。如果你打算花时间学习如何专注于事物，那你就要做一些付出努力容易有高回报的事情。</p>
<p>它就像太阳和放大镜。</p>
<p>分心的工作就像太阳一样，能量分散到各个方向。所以你站在太阳下并不会受伤。</p>
<p>学会用放大镜集中那些分散的能量，毁坏力量就从0升到10。我们想把有限的力量留给重要的事情（太阳最终会落山）。</p>
<h3 id="">第一步——消除干扰</h3>
<p>同时处理多个任务是一个谎言。如果你认为，在你看各种消息或者阅读新闻时能写高质量的代码，你是在自欺欺人。</p>
<p>我们生活在一个注意力分散的世界。我们研究的技术是一把双刃剑。在收到一个新通知时，已经没有那种甜美的多巴胺了。</p>
<p>“帅，就像我看到 Hamiton。”，但是那对你专注的能力有害。</p>
<p><strong>消除干扰是专注和深度工作的基础。</strong></p>
<ul>
<li>
<p><strong>将手机处于静音状态</strong>，或者你在一个不需要通话的地方可以关闭手机。我使用Forest APP（一款锻炼专注力的软件）阻止我玩手机。面朝下，可以放在触手可及的地方。</p>
</li>
<li>
<p><strong>关闭无关紧要的消息</strong>。这是一个巨大的挑战，因为我有强迫症，必须清除我手机上没有阅读的消息清单。这些消息大都有噪音，所以关闭它对于我工作来说的确是一件好事。</p>
</li>
<li>
<p><strong>关闭其他的应用程序</strong>，就是那些能通过通知来分散你注意力的APP，比如：Outlook、微信。</p>
</li>
<li>
<p>这一项是最艰难的事情之一——<strong>关闭</strong>与你的任务无关的<strong>任何浏览器窗口</strong>。现在，<strong>做到不去浏览你热爱的网站</strong>。我喜欢HeyFocus应用程序（收费20美元），那里有很多免费的扩展程序。</p>
</li>
<li>
<p><strong>戴上耳机</strong>——这将有助于你不被旁人打扰，重复听着同一张专辑也是一个保持专注的有效途径。它可能是一个标志（通知你的大脑要开始工作了），或者是一件顺畅的事情（因为音乐能使你心情愉悦）。不管是哪一种，很多开发者都推荐这个。</p>
</li>
</ul>
<h3 id="">第二步——番茄技术（秘密武器）</h3>
<p>让你8小时内不能分心，你可能会觉得很难，不要担心。我们将会使用“番茄法”来应对每一天。</p>
<p>其实有很多方法，但是我们最推崇“番茄法”，下面我就会介绍它。</p>
<p>如果你想看官方文档，可以查阅《番茄技术》这本书，它讲的更详细更规范。</p>
<h4 id="25">工作25分钟（一个番茄）</h4>
<p>你将会工作25分钟，专心做一件事。 这段时间的工作就叫一个“番茄”。</p>
<p>使用计时器。我以前在学校用过一个旧的沙漏。如果你真的想爱上这个番茄工作法，那么就用上番茄计时器吧。</p>
<h4 id="5">然后休息5分钟</h4>
<p>休息时间一到，您必须走开。接一杯水喝；浏览黑客新闻；去洗手间。不管你做什么，反正工作已经结束了，完全跳出工作。</p>
<h4 id="">一个番茄里只能有一个任务</h4>
<p>这个任务可以是修复一个bug，或者做一个新功能，又或者是看视频学习新框架。</p>
<p>如果任务太大（就像“开发一款app”），你必须把它分成更小的任务块，那种大约25分钟能完成的任务块。</p>
<p>一些任务需要好几个番茄才能完成。编写功能模块可能需要3个番茄，而编写测试可能也需要两个。</p>
<p>又或者一些任务太小，你要把他们批量计划到一个番茄中（例如：回复5张JIRA门票）。</p>
<p>重点是，一项或多项任务，它们必须是同一种“类型”的工作。</p>
<p>顺便说一下，其实我们拖延的主要原因是，任务太巨大且完成太艰难，所以我们被吓到了。如果你的目标是“写一本书”，你可能永远都不会做。当你把它分成小的任务块，就像“写大纲或者写300字”，路线就会非常清晰。迈开脚就更容易更可行。</p>
<p>尽管这篇文章是关于怎样成为一个更好的开发者，而不是拖延症，但是他们在大多数情况下可以算是同一件事。</p>
<h4 id="">工作不分心</h4>
<p>参阅步骤1，如果你分心了，那么番茄就不算数了，你得重新开始。</p>
<h4 id="25">最多工作25分钟</h4>
<p>如果你从未使用过类似于番茄法这种方式，那么可能25分钟对你来说还是比较困难。那你就从10分钟开始，然后是15分钟，然后20、25。</p>
<p>当你真正掌握它时，你可以工作55分钟呢。</p>
<h4 id="">每天工作多个番茄</h4>
<p>第一次尝试工作无干扰，你可能一天只能达到25分钟。没关系，争取每天多一点就好了。</p>
<h3 id="">这如何使我成为一个更好的开发者呢</h3>
<p>我们现实点。如果你上班的时候，一会写代码，一会线上聊会天，一会发封邮件，再和同时聊会八卦，那么这将对你的工作和事业没有任何的帮助。</p>
<p>你只是看起来很忙，甚至还时不时的发布一些代码。</p>
<p>但是，事实上，比起专注力分散的一整天的工作，几个小时不分心的深度工作产出的质量和数量更高。</p>
<p>一开始是一个番茄。最后，你就会收获好几个番茄果实。</p>
<p>接着，你就会收获几天的番茄。</p>
<p>接着，收获几周、几月的番茄。</p>
<p>你会发现它越来越容易的变成一种流程（习惯），而且会更频繁的发生。</p>
<p>这是<strong>黄金</strong>。这就是你突破自我的时候。</p>
<p>这是让艰难的事情变得容易的时候。</p>
<p><strong>这是你编程技能成倍增长的时候。</strong></p>
<p>高质量程序员的市场需求比以往都大。通往成功最靠谱的途径就是深度专注的工作。</p>
<!--kg-card-end: markdown--> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ 开发者如何缓解焦虑提升效率？来自心理学研究者的建议 ]]>
                </title>
                <description>
                    <![CDATA[ 本指南基于作者 5 年的方法应用经验，这些方法或来自行为心理学，或来自工作效率的有关研究。我曾以一名开发者、导师、创作者的身份应用过这份指南，效果很好。 如果说读完这篇文章你只能记得一条学到的内容的话，它将是： > 有效的工作效率提升是以一定的科学原理为依托的，绝不是什么窍门儿，也不是任何花里胡哨的工具。 倘若你理解了这句话并将其予以运用，你将不会再为保持头脑清醒和注意力集中而困扰，而且当你身处一团乱麻时，这条建议尤为能够派得上用场。 这篇文章会讲什么  * 第一部分：过程 >> 工具  * 第二部分：当你无法摆脱拖延时该怎么办  * 第三部分：理智先行，执行力后行 话不多说，我们就直奔主题吧！ 第一部分：过程 >> 工具 每当你感到不知所措时，很大可能是因为你的工作流程有问题，不是工具。 一个合理的工作流程在任何时候都要远远胜过各种花里胡哨的工具。 你越是感到一切杂乱无序，你在工作过程中效率就会越低。反之，如果你的工作流程设计合理，你不仅能够比周围的人做更多的事情，还能保持更高的办事效率。 在我认识到这一点之前，我曾苦于追求“持久性的工作效率”。它的关键就在于 持久性  ]]>
                </description>
                <link>https://www.freecodecamp.org/chinese/news/how-to-get-things-done-lessons-in-productivity/</link>
                <guid isPermaLink="false">601fad336183a705401563f0</guid>
                
                    <category>
                        <![CDATA[ 效率 ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Michael He ]]>
                </dc:creator>
                <pubDate>Mon, 06 Dec 2021 09:00:00 +0000</pubDate>
                <media:content url="https://chinese.freecodecamp.org/news/content/images/2021/02/carl-heyerdahl-KE0nC8-58MQ-unsplash.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>本指南基于作者 5 年的方法应用经验，这些方法或来自行为心理学，或来自工作效率的有关研究。我曾以一名开发者、导师、创作者的身份应用过这份指南，效果很好。</p><p>如果说读完这篇文章你只能记得一条学到的内容的话，它将是：</p><blockquote>有效的工作效率提升是以一定的科学原理为依托的，绝不是什么窍门儿，也不是任何花里胡哨的工具。</blockquote><p>倘若你理解了这句话并将其予以运用，你将不会再为保持头脑清醒和注意力集中而困扰，而且当你身处一团乱麻时，这条建议尤为能够派得上用场。</p><h2 id="-">这篇文章会讲什么</h2><ul><li><strong>第一部分</strong>：过程 &gt;&gt; 工具</li><li><strong>第二部分</strong>：当你无法摆脱拖延时该怎么办</li><li><strong>第三部分</strong>：理智先行，执行力后行</li></ul><p>话不多说，我们就直奔主题吧！</p><h2 id="--1">第一部分：过程 &gt;&gt; 工具</h2><p>每当你感到不知所措时，很大可能是因为你的工作流程有问题，不是工具。</p><p>一个合理的工作流程在任何时候都要远远胜过各种花里胡哨的工具。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://chinese.freecodecamp.org/news/content/images/2021/03/image-2.png" class="kg-image" alt="image-2" width="600" height="400" loading="lazy"><figcaption>你越是感到一切杂乱无序，你在工作过程中效率就会越低。反之，如果你的工作流程设计合理，你不仅能够比周围的人做更多的事情，还能保持更高的办事效率。</figcaption></figure><p>在我认识到这一点之前，我曾苦于追求“持久性的工作效率”。它的关键就在于 <em>持久性</em> 一词。</p><p>每个人时不时地都能保持高效，可要想把这种高效保持下去就需要费点心思了。</p><p>以前，我能完成很多事情。但我总觉得自己漏了点什么。我的做事理念就是速度和执行力高于一切。这种理念在短期内是行之有效的，但是长期来看缺乏可持续性。</p><p>我从各种地方获悉了一些生活小窍门儿，也试着用过市面上所有的效率管理工具，包括下面这几款比较流行的：</p><ul><li><a href="https://evernote.com/" rel="nofollow">印象笔记</a>：毫不费力，让你的笔记有条有理。</li><li><a href="https://keep.google.com/" rel="nofollow">Google Keep</a>：随时记录你的想法。</li><li><a href="https://www.onenote.com/" rel="nofollow">One Note</a>: 适用于你的设备的数字笔记应用程序。</li><li><a href="https://www.any.do/" rel="nofollow">Any.Do</a>：一款可结合日历、计划器和提醒来使用的待办事项清单应用。</li><li><a href="https://todoist.com/" rel="nofollow">Todoist</a>：安排工作和生活的待办事项清单应用。</li></ul><p>哦对了，我还用了 <a href="https://trello.com/en-US" rel="nofollow">Trello</a> 前后装卸过 3 次，因为每个人都在说它特别特别好用。</p><p>但这点我不敢苟同。</p><p>每隔几个月，我都会换着用这些应用。</p><p>时不时地，我也会去电子化，该用全纸质。但在那些时间，我要么是把笔记本落在家里了，要么就是懒得背在身上，因为我的口袋根本就装不下一个笔记本。</p><p>但这一切都没有用，我还是感觉被待完成的任务压的喘不过气来。过了一段时间后，我认识到：</p><blockquote>做事流程不够好，工具再好，也于事无补。</blockquote><p>因此，我把做事的理念转向了专于流程。自此，无论是我的工作效率还是时间管理能力都大幅提升。</p><p>我下面要分享的 4 步简单的做事流程适用于所有应用，<strong>无论你更偏好用哪款应用，都没有关系</strong>。</p><p>我现在用的是 Google Keep。但当你接着往下读的时候，我希望你能自动把它替换为你最爱的那款应用，或是 “<em>Todoist</em>”，或是 “<em>One Note</em>”，或是别的，都没问题。</p><p>我们要专注的是如何从宏观上安排诸多任务，因为这才是我们使用任何工具时最应重视的一点。</p><p>是不是很有道理？</p><p>那我们就看看这 4 步具体是什么吧！</p><h3 id="1-">1) 找到你获取“真相”的唯一来源</h3><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://chinese.freecodecamp.org/news/content/images/2021/03/image-3.png" class="kg-image" alt="image-3" width="600" height="400" loading="lazy"><figcaption><a href="https://unsplash.com/@timonrets?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit" rel="nofollow">Image Credi</a><a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit" rel="nofollow">t</a> – 首先，你要确定自己的核心生产效率工具，然后把其它工具作为它的辅助。</figcaption></figure><p>我把 Google Keep 当作自己获取“真相”的唯一来源，然后把其它效率工具当作一种辅助。也就是说，Google Keep 是我做事前要前往的第一站。</p><p>我在上面记录的内容有</p><ul><li>购物清单</li><li>日志</li><li>健身计划</li><li>理财策略</li><li>想看的奈飞剧集</li><li>其它随时随地的想法</li></ul><p>以上每一类事项都有它们的专属标签。因此，我只需在手机上点几下或是在谷歌浏览器的标签页点击几下就能对我的待办事项了然于胸了（我的 Google Keep 在谷歌浏览器是保持日常打开状态的）。</p><p>接着，我会去日历上看看已确定的预约事项，顺便瞟一眼我每周在会议上花费的时间。</p><p>接着，我会打开 Trello 看看团队追踪合作。</p><p>再接着，我会交替使用 Notes 和 Google docs，分别进行个人写作和协作写作。有趣的是，我大部分的写作都是从手机上的 Google Keep 开始的。</p><p>包括这篇文章。</p><p>如果我看写的比较长了，我会转到我的笔记本电脑上去，从网页版的 Google Keep 把写作内容复制粘贴到 Notes 或是 Google Docs。</p><p>每当我感觉我需要用到特殊格式或是我想用我最爱的字体（<a href="https://fonts.google.com/specimen/Montserrat#pairings" rel="nofollow">Montserrat font</a>）写作时，我就知道我应该切换到一个写作工具上去了。</p><p>切换到另一个工具并非一定是件坏事。</p><p>尽管很多人不相信这一点。</p><p><strong>如果你现在立马就行动起来去找寻你唯一的“真相”来源，你的工作效率将会发生巨大改观</strong>。</p><p>但如果你仍无动于衷，那么当你开始感到手头的事情应接不暇时，你仍将苦于心烦气躁。相信我，你一定会有感到应接不暇的时候。</p><h3 id="2-">2) 不要去追求一个事事都能解决的应用</h3><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://chinese.freecodecamp.org/news/content/images/2021/03/image-4.png" class="kg-image" alt="image-4" width="600" height="400" loading="lazy"><figcaption><a href="https://unsplash.com/@miikola?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit" rel="nofollow">Image Credit</a> – 我们急于去追求最新的生产效率和时间管理工具，可单凭工具的使用并不能解决问题。</figcaption></figure><p>这一观点颇受争议。</p><p>之前曾有人站出来质疑过我，尤其是一款名为 Notion 的新应用走红以后（<a href="https://www.notion.so/login" rel="nofollow">Notion</a>）。</p><p>大多数人试图改造他们最爱的生产效率工具，让这些工具兼具写作功能、协作功能、日历功能等等。总之就是一个全能型应用。</p><blockquote>但现实是，没有哪款应用可以解决一切问题。</blockquote><p>很长一段时间以来，我也曾深陷“全能应用”这种错误观念之中。</p><p>相信我，挑选一个你获取“真相”的唯一来源，然后让其它工具予以辅助，远比找到一个“全能应用”好用的多。</p><ul><li>同时去用 Keep 和 Trello 是完全可以的。</li><li>同时去用 Notion 和 Notes 也是完全可以的。</li><li>同时去用待办事项提醒应用和日历应用也是完全可以的。</li></ul><p>这些工具未必是相互替代的，它们也可以相得益彰。</p><h3 id="3-">3) 不要纠结纸质 <em>还是</em> 电子 – 可以既纸质 <em>又</em> 电子</h3><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://camo.githubusercontent.com/d83aef78c831faccd046361cf7e9cadabe673e014eb018b0b4f4a87710892703/68747470733a2f2f696d616765732e756e73706c6173682e636f6d2f70686f746f2d313537393137323334323839342d6536643735316563333930633f63726f703d656e74726f70792663733d74696e7973726762266669743d6d617826666d3d6a706726697869643d4d5877784d5463334d3377776644463863325668636d4e6f66444a38664852336233786c626e7777664878382669786c69623d72622d312e322e3126713d383026773d32303030" class="kg-image" alt="Sun's out, bums out. Two zebras on the plains of Etosha before a storm rolls in." width="600" height="400" loading="lazy"><figcaption><a href="https://unsplash.com/@gerandeklerk?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit" rel="nofollow">Image credit</a> – 配合使用纸质工具和电子工具，让你的工作效率得到充分发挥。</figcaption></figure><p>偶尔隔一段时间，我会倾向在纸张上写作。</p><p>尤其是当我要计划一些重大目标时，我会更想把它们写在纸面上。我喜欢把各种事情以脑图的形式呈现在眼前。</p><p>此外，用我最爱用的笔去书写时，我的思路也会更加顺畅。</p><p>在用纸张书写时，我会先在纸上草草写下自己的想法，写完后再把它拍下来并添加到我 Google keep 的相关标签下。</p><p>所以说，当你打开我在 Google keep 上的 “<em>重大目标</em>” 标签时，你会发现一大堆的照片。</p><p>当然，在和同事在白板上探讨编程项目或是进行头脑风暴时我也会习惯采用上面提到的这种形式。</p><ul><li>写在纸上。</li><li>拍照。</li><li>添加到相关标签下。</li></ul><p>然后这张纸就进垃圾桶了。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://chinese.freecodecamp.org/news/content/images/2021/03/image-5.png" class="kg-image" alt="image-5" width="600" height="400" loading="lazy"><figcaption>这张照片就存在我的 Google Keep 中，它是我在一次头脑风暴中写下的，主题是行为心理学中可帮助创业者减轻拖延倾向的方法。</figcaption></figure><p>从多年以来的纸质书写经历中我发现，我只是在纸上写字的那一刻觉得纸质书写很享受。</p><p>过了几个星期后，我会发现我的办公区域全是废纸屑。</p><p>所以，拍下照片后我很快就会把纸张丢进垃圾桶。</p><p>这就既满足了我要用 planner（任何时间都远比小笔记本好用）的需求，又能满足我不时想在纸上写写画画的爱好。</p><blockquote>在我看来，没必要纠结是只用纸质还是只用电子。这个问题本身就很荒谬。</blockquote><p>我更关心的是如何才能帮助我减轻繁重的工作负担，两个都用且效果好的话也没什么不可。</p><p>当然，你可能只想用纸质或者只用电子，这也完全是可以的。你只需注意，要想保持高效，二者并非鱼和熊掌、不可兼得。</p><p>另外，有人曾推荐过 <em><a href="https://getrocketbook.com/" rel="nofollow">Rocketbook (a smart notebook)</a></em>。它是一种可以复写的笔记本，写下内容后，你可以将其上传云端，然后把整页纸重新擦干净。</p><p>尽管我从未用过，但还是想在这里说明一下，如果你觉得不错可以去看看。</p><h3 id="4-">4) 多去回顾总结 – 每周一次，每月一次，每年一次</h3><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://chinese.freecodecamp.org/news/content/images/2021/03/image-6.png" class="kg-image" alt="image-6" width="600" height="400" loading="lazy"><figcaption><a href="https://unsplash.com/@rpnickson?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit" rel="nofollow">Image Credit</a> – 要想建立强大的时间管理能力，你需要经常回顾总结。</figcaption></figure><p>在工作日，我每天早上都会在笔记本上浏览一遍我的 Google Keep，以便获悉当天的重要事项。</p><p>这点也是我避免因为手头事情越积越多而应接不暇的关键。</p><p>一天中，我会通过手机或是笔记本在 Google Keep 上添加事项。如此一直循环到周五。</p><p>每个周五，我都会去浏览一遍我的 Google Keep，清理掉那些没有完成的任务或是那些应该移到其它工具的任务。</p><p>如此周复一周。</p><p>遵循这个过程可以让你处理事情时不仅得心应手且事半功倍，但有时，拖延症会让你停滞不前。</p><h2 id="--2">第二部分：当你无法摆脱拖延时该怎么办</h2><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://chinese.freecodecamp.org/news/content/images/2021/03/image-7.png" class="kg-image" alt="image-7" width="600" height="400" loading="lazy"><figcaption>你可以从减轻完美主义倾向开始做起，然后再去搞清楚下一个一小步。最后当你什么工作都不想做时，就去调整你的行为。</figcaption></figure><p>你知道吗？<a href="https://www.inc.com/marla-tabaka/why-set-yourself-up-for-failure-ditch-new-years-resolution-do-this-instead.html" rel="nofollow">80% 的人都无法完成自己的新年目标</a>。是不是很惊人？</p><p>不幸的是，拖延症在其中扮演着重要角色。</p><p>但别担心，你可以通过下面三个方法来打败拖延症：减少你的“完美”目标；弄清楚自己下一步的行动；借助行为心理学调节自己的行为。</p><p>让我们一个一个来看。</p><h3 id="1-a-b-">1) 把你对第一步的要求从 “A+” 降低到 “B”</h3><p>如果你是一个完美主义者，你会产生拖延。如果你的目标过于宏大，以致不知如何迈出第一步，你也会产生拖延。</p><p>如果你是一个拖延型的完美主义者，你会经常感到疲惫不堪且沮丧无比，因为你的宏大目标一直都停留在你的脑子里，而你还尚未为之付诸任何行动。</p><p>之所以没有付诸行动，是因为你期望自己的每一步都走得尽善尽美。</p><blockquote>一个完美主义者要想解决拖延问题，就要从以 “B” 而非 “A+” 来要求自己的第一步开始做起。也就是说，你要退一步，让自己的第一步看着“还不错”就可以了，而非一定要“完完美美”。</blockquote><h3 id="2--1">2) 明确接下来的一小步</h3><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://camo.githubusercontent.com/baffd6a574018af6bf15584f493f6e7912850aa452931fe11bb9804d68be1f76/68747470733a2f2f696d616765732e756e73706c6173682e636f6d2f70686f746f2d313535383830303139392d3166343835373632303631623f63726f703d656e74726f70792663733d74696e7973726762266669743d6d617826666d3d6a706726697869643d4d5877784d5463334d3377776644463863325668636d4e6f664445356648786a6232356d64584e6c5a48786c626e7777664878382669786c69623d72622d312e322e3126713d383026773d32303030" class="kg-image" alt="68747470733a2f2f696d616765732e756e73706c6173682e636f6d2f70686f746f2d313535383830303139392d3166343835373632303631623f63726f703d656e74726f70792663733d74696e7973726762266669743d6d617826666d3d6a706726697869643d4d5877784d5463334d3377776644463863325668636d4e6f664445356648786a6232356d64584e6c5a48786c626e7777664878382669786c69623d72622d312e322e3126713d383026773d32303030" width="600" height="400" loading="lazy"><figcaption><a href="https://unsplash.com/@i_am_nah?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit" rel="nofollow">Image Credit</a> – 每当你感到不清楚下一步该干嘛时，你的意识就会阻碍你继续向前。每当你创建的任务含混不清时，你就为拖延症提供了可乘之机。</figcaption></figure><p>比如说，你的待办事项可能是这么写的：</p><blockquote>构建一个绝佳的作品集网页来助力自己找工作。还要设计一个惊艳众人的登录页面。</blockquote><p>但是：</p><ul><li><em>“绝佳”</em> 具体指哪方面有多好呢?</li><li>什么 <a href="https://lifetechpsych.com/beginner-programming-projects" rel="nofollow">类型的编程项目</a> 应该放在我的作品集中呢？</li><li>我是重新做一个自己的App比较好还是用一个现有的模版呢?</li><li>我需要学哪种语言呢？需要多长时间？什么时候学？怎么学？</li></ul><p>当你头脑中有太多个悬而未决的问题有待解决时，你的意识就会拒绝采取任何行动，从而陷入拖延之中。</p><p>要破解这一困境的办法是，花 90 秒去思考并回答这个问题：</p><blockquote>对于这个任务，我接下来想要实现的最小一步是什么呢？</blockquote><p>比如说：</p><ul><li>如果你在构建一个作品集，接下来的最小一步就是打开一个文档，写下一个粗略的计划。而不是打开 visual studio，<a href="https://lifetechpsych.com/how-long-cplusplus" rel="nofollow">捣鼓 C++ 里的各种小技巧</a>。</li><li>如果你在为编程小白编写一本教科书，你接下来的最小一步不是去写第一章，而是为整本书的各个章节列一个初始的大纲。</li><li>如果你刚接触编程，你要做的就是 <a href="https://lifetechpsych.com/free-learn-to-code" rel="nofollow">寻找你学习编程的渠道</a> 你最终可以落脚到某一个具体的渠道，而非东一榔头、西一棒槌，漫无目的地学了几个月后仍然感到前路迷茫。</li></ul><p>你的下一步行动越细微，就越可能实现。</p><p>而当你一小步一小步往前推进任务时，你就打败了拖延。</p><h3 id="3--1">3) 借助行为心理学的方法调整自己</h3><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://camo.githubusercontent.com/e12c6a7bf4f1ba7b29d8ca010958dae2b202ec43059b2383320ba808cfbc331f/68747470733a2f2f696d616765732e756e73706c6173682e636f6d2f70686f746f2d313439383031393535393336362d6131636264303762353136303f63726f703d656e74726f70792663733d74696e7973726762266669743d6d617826666d3d6a706726697869643d4d5877784d5463334d3377776644463863325668636d4e6f66446838664731685a326c6a66475675664442386648772669786c69623d72622d312e322e3126713d383026773d32303030" class="kg-image" alt="Anything that can go wrong will go wrong." width="600" height="400" loading="lazy"><figcaption><a href="https://unsplash.com/@acharki95?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit" rel="nofollow">Image Credit</a> – 拖延症是一个需要用心理学的方法来解决的心理学问题。</figcaption></figure><p>有些日子里，你就是会犯懒。</p><p>你也明白，不管你心里怎么想，你得去工作了，可你并没有采取任何行动。</p><p>你可以试试下面这些行为心理学的原理。</p><ul><li><strong>截止日期效应</strong>：打开网址 <a href="https://tomato-timer.com/" rel="nofollow">www.tomato-timer.com</a>，设置一个 5 分钟的倒计时，然后尽最快速度去开始着手你的下一个最小一步。大多数情况下，你会发现自己工作了不止 5 分钟。这就对了，因为在 <a href="https://www.psychologistworld.com/memory/zeigarnik-effect-interruptions-memory" rel="nofollow">蔡格尼克记忆效应</a> 作用下，你会倾向完成你已经开始的工作。</li><li><strong>负面增强，直到你开始工作为止</strong>：如果你发现自己不知为什么在这5分钟啥也没干计时器就截止了，那就重新开始计时。一条附加的建议是，打开计时器设置，设置一个你极其讨厌的提醒铃声。重复这个过程5遍，每一遍都通过看着倒计时触发铃声的方式来惩罚自己！</li><li><strong>重新反思你的动力</strong>：假如过了 5 遍之后，你还是什么也没干。那就说明你根本就没有动力去做这件事，你需要思考一个更加深层次的问题：</li></ul><blockquote>“我做完这件事对我有什么意义？”</blockquote><p>有时，去看看 <a href="https://lifetechpsych.com/developer-stories" rel="nofollow">别的开发者是如何改变自己的生活的</a> 或许能给你一些动力。</p><p>如果你还是对这件事的意义感到不明不白，那就不要做这件事了，你需要去寻找其它能够激发你动力的事情去做。</p><p>但要尤为注意的是，无论你完成了多少工作，高效绝不是 24 小时连轴转、毫不停歇地工作。</p><p>你需要权衡工作和休息以保证能够持续向前推进工作的开展。</p><h2 id="--3">第三部分：调节好精神再行动</h2><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://chinese.freecodecamp.org/news/content/images/2021/03/image-8.png" class="kg-image" alt="image-8" width="600" height="400" loading="lazy"><figcaption><a href="https://unsplash.com/@darthxuan?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit" rel="nofollow">Image Credit</a> – 如果你的工作流程设计合理的同时又能让你照顾好自己，你便能主宰自己的工作，减轻焦虑。</figcaption></figure><p>完成一些任务后并不总是意味着要接着做更多。有时，你需要的不再是更快、更好，而是照顾好自己的思想。</p><blockquote>“<em>自我护理绝不是自私的体现。每当我们倾听真我并对其予以需要的关怀时，我们并不仅是为了自己才那么做，也是为了与我们的生命有交集的诸多他人</em>。” - 帕克·帕尔默</blockquote><p>如果你不把自我护理摆在重要位置，你一定会累垮。相信我，真的有开发者累垮过。</p><p>而当累倒了好几次后，你就会开始质疑，或许自己并不是吃这碗饭的料。</p><p>你是。</p><p>只不过你的工作方式一点点蚕食了你的斗志。</p><p>下面是些简单的方法，你可以以它们为起点，对自己的关怀更多一些。这些小活动和人们听到生产力时所产生的期待不同。</p><p>但是你需要它们。</p><h3 id="--4">将你的工作地点和休息地点区别开来</h3><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://camo.githubusercontent.com/63f7bb5059fc5c2f65004e52ef0f00b83058699fb59c5b74e314cc8b17dee96d/68747470733a2f2f696d616765732e756e73706c6173682e636f6d2f70686f746f2d313530373133313932343937312d3862353461366537343665343f63726f703d656e74726f70792663733d74696e7973726762266669743d6d617826666d3d6a706726697869643d4d5877784d5463334d3377776644463863325668636d4e6f66444977664878795a5778686548786c626e7777664878382669786c69623d72622d312e322e3126713d383026773d32303030" class="kg-image" alt="68747470733a2f2f696d616765732e756e73706c6173682e636f6d2f70686f746f2d313530373133313932343937312d3862353461366537343665343f63726f703d656e74726f70792663733d74696e7973726762266669743d6d617826666d3d6a706726697869643d4d5877784d5463334d3377776644463863325668636d4e6f66444977664878795a5778686548786c626e7777664878382669786c69623d72622d312e322e3126713d383026773d32303030" width="600" height="400" loading="lazy"><figcaption><a href="https://unsplash.com/@katiebarrett?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit" rel="nofollow">Image Credit</a> – 拥有一个专门用于休息的地方能够帮你完全放松下来。</figcaption></figure><p>我发现，在一个地方休息之后，接着在这个地方工作会有些吃力。</p><p>同样，在一个地方工作之后，接着在这个地方休息会很难放松下来。</p><p>你并不必为此找到两个不同的房间。</p><p>你只需要有意识地去创造一种物理上的不同即可，如此你便可以从一个模式切换到另一个模式。如果没有这种区分，我会连续几周都感到晕头转向、身心疲惫。</p><h3 id="--5">一日一浴，体力充裕</h3><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://chinese.freecodecamp.org/news/content/images/2021/03/image-10.png" class="kg-image" alt="image-10" width="600" height="400" loading="lazy"><figcaption><a href="https://unsplash.com/@phammi?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit" rel="nofollow">Image Credit</a> – 每天洗个澡，看似简单，却足以让你恢复身心。</figcaption></figure><p>这条建议很容易实现。如果能在早上洗澡更好，但如果不行，你在快要结束前一日时也可以洗个睡前澡。这会让你感觉你这一天已经有所作为了。</p><h3 id="--6">烹饪疗法</h3><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://chinese.freecodecamp.org/news/content/images/2021/03/image-9.png" class="kg-image" alt="image-9" width="600" height="400" loading="lazy"><figcaption><a href="https://unsplash.com/@brookelark?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit" rel="nofollow">Image Credit</a> – 烹饪是让你自己重启的最佳方式之一。</figcaption></figure><p>尽管我并不经常烹饪，但我很喜欢烹饪。按照菜谱的指示操作并想出一些新点子的感觉非常神奇。</p><blockquote>“没有人在烹饪时是一个人。即便是在她最孤独的时候，一名厨房里的厨师也被先前的几代厨师、当下厨师的建议和菜单以及烹饪作家的智慧紧紧围绕着。” — 劳里·柯文</blockquote><p>做什么饭都可以，做出来的食物好吃或不好吃都没有关系。</p><p>起到帮助作用的是你远离尘世喧嚣的过程。烹饪时可以放点爵士乐，你不知不觉就被传送到另外一个宇宙了。</p><h3 id="--7">晒晒太阳，多少都无所谓</h3><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://camo.githubusercontent.com/17441a835f73e9c189af7916652e72514da0a4fb77fc0f5312734db55b491922/68747470733a2f2f696d616765732e756e73706c6173682e636f6d2f70686f746f2d313438333438393537313039372d3063613239356261336430383f63726f703d656e74726f70792663733d74696e7973726762266669743d6d617826666d3d6a706726697869643d4d5877784d5463334d3377776644463863325668636d4e6f664445776648786f59584277655355794d4774705a48786c626e7777664878382669786c69623d72622d312e322e3126713d383026773d32303030" class="kg-image" alt="san diego" width="600" height="400" loading="lazy"><figcaption><a href="https://unsplash.com/@frankiefoto?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit" rel="nofollow">Image Credit</a> – 有时，迈步到阳光下就是你所需的高效触发器。</figcaption></figure><p>我曾从不相信天气会对一个人的心情有很大影响，但它的确会。</p><p>待在室内太久会让你感到万事都很无望。当患上 <a href="https://en.wikipedia.org/wiki/Cabin_fever" rel="nofollow">幽闭烦躁症</a> 时，你会像只发了疯的浣熊似的在你的生活空间暴躁不安、横冲直撞。</p><p>要解决这个问题，你也并不一定非得踏出门外。我发现如果我每天早上都去打开窗户，我就完全不会有幽闭烦躁症的感觉。</p><p>你无需一面巨大的窗户，也无需到室外长走，只需要留出几分钟的时间安静地一人享受一会儿阳光就够了。</p><h2 id="--8">写在最后</h2><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://camo.githubusercontent.com/aa36a3850ae5ffe6503c3b384ed90270f542dfd013c8979ad3ea5e2e09f5220c/68747470733a2f2f696d616765732e756e73706c6173682e636f6d2f70686f746f2d313535323037323039322d3766396238643633656663623f63726f703d656e74726f70792663733d74696e7973726762266669743d6d617826666d3d6a706726697869643d4d5877784d5463334d3377776644463863325668636d4e6f6644563866465a7059335276636e6c385a5735384d48783866412669786c69623d72622d312e322e3126713d383026773d32303030" class="kg-image" alt="68747470733a2f2f696d616765732e756e73706c6173682e636f6d2f70686f746f2d313535323037323039322d3766396238643633656663623f63726f703d656e74726f70792663733d74696e7973726762266669743d6d617826666d3d6a706726697869643d4d5877784d5463334d3377776644463863325668636d4e6f6644563866465a7059335276636e6c385a5735384d48783866412669786c69623d72622d312e322e3126713d383026773d32303030" width="600" height="400" loading="lazy"><figcaption><a href="https://unsplash.com/@attentieattentie?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit" rel="nofollow">Image Credit</a> – 有些行动虽然微小、不起眼，但却可以让你为身临大战做好准备。</figcaption></figure><blockquote>“有些事情可能并不起眼，但在涟漪效应下，这些小事情也能发挥大作用。”– <a href="https://www.brainyquote.com/authors/matt-bevin-quotes" rel="nofollow">马特·贝文</a></blockquote><p>回顾一下你刚刚读到的内容。</p><p>你会发现每一条建议听起来都非常简单，因为它们本身都是非常微小的事情。</p><p>但将它们所有结合在一起却能让我处理事情的效率大大提升。如果你能遵循这些原则，你也可以实现同样的转变。</p><p>记得：</p><ul><li>过程 &gt;&gt; 工具</li><li>打败拖延症，否则你就会为它所控</li><li>自我护理调节精神比毫不停歇的工作更重要</li></ul><h2 id="--9">感谢阅读</h2><p>如果你喜欢这篇分享，以下是更多推荐。</p><p><strong><a href="https://lifetechpsych.ck.page/" rel="nofollow">加入我的电子邮件社区</a></strong>：我会为编码小白和初级开发者分享一些技巧，以帮助他们更快成长，并使他们信心加倍。如果你有兴趣，欢迎<a href="https://lifetechpsych.ck.page/" rel="nofollow">加入社区</a>。</p><p><a href="https://twitter.com/LifeTechPsych" rel="nofollow"><strong>在Twitter上关注我</strong></a>：需要更多高效工作的技巧？或是有任何疑问？我的 Twitter 账号最为活跃，欢迎随时 <a href="https://twitter.com/LifeTechPsych" rel="nofollow">与我联系</a>。我的私信已打开。</p><p><strong><a href="https://www.freecodecamp.org/news/author/lifetechpsych/" rel="nofollow">阅读更多文章</a></strong>：如果你想阅读更多文章，也欢迎 <a href="https://www.freecodecamp.org/news/author/lifetechpsych/" rel="nofollow">查看我博客上的其他文章</a>。</p><p><em>小贴士</em> - 我喜欢做研究，所以我倾向用行为心理学和神经科学的概念来支撑我的建议和方法。</p><p>原文：<a href="https://www.freecodecamp.org/news/how-to-get-things-done-lessons-in-productivity/">How to Be Productive, Feel Less Overwhelmed, and Get Things Done</a>，作者：<a href="https://www.freecodecamp.org/news/author/lifetechpsych/">Endy Austin</a></p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ 如何编写浏览器扩展（含示例项目） ]]>
                </title>
                <description>
                    <![CDATA[ 在本文中，我们将讨论浏览器扩展——它们是什么、它们如何工作，以及如何构建。 我们将通过实际编写自己的扩展（超级有趣！）来完成，它允许我们通过单击一个按钮将任何代码片段复制到剪贴板。 开始之前：  * 你需要对 JavaScript 有基本的了解  * 你需要 Firefox 浏览器（或任何其他浏览器也可以） 什么是浏览器扩展 浏览器扩展是你添加到浏览器中的内容，它通过扩展浏览器的容量来增强你的浏览体验。 例如，考虑一下你可能已在设备上安装的广告拦截器，这可以通过在你上网时屏蔽广告来改善你的浏览体验。 如何编写浏览器扩展 现在让我们从编写一个非常基本的扩展开始。 首先，我们将创建一个文件夹，在其中创建一个名为 manifest.json 的文件。 什么是 manifest 文件？ manifest 文件是任何浏览器扩展中的必备文件。此文件包含有关扩展程序的基本数据，如名称、版本等。 现在在 manifest.json 文件中复制以下代码段： {   "manifest_version":2,   "version":"1.0",   "name":"Test", }  ]]>
                </description>
                <link>https://www.freecodecamp.org/chinese/news/write-your-own-browser-extensions/</link>
                <guid isPermaLink="false">618253eb4aadd7063f2ba246</guid>
                
                    <category>
                        <![CDATA[ 浏览器 ]]>
                    </category>
                
                    <category>
                        <![CDATA[ 效率 ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Chengjun.L ]]>
                </dc:creator>
                <pubDate>Thu, 11 Nov 2021 07:00:00 +0000</pubDate>
                <media:content url="https://chinese.freecodecamp.org/news/content/images/2021/11/browsers.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>在本文中，我们将讨论浏览器扩展——它们是什么、它们如何工作，以及如何构建。</p><p>我们将通过实际编写自己的扩展（超级有趣！）来完成，它允许我们通过单击一个按钮将任何代码片段复制到剪贴板。</p><p>开始之前：</p><ul><li>你需要对 JavaScript 有基本的了解</li><li>你需要 Firefox 浏览器（或任何其他浏览器也可以）</li></ul><h2 id="-">什么是浏览器扩展</h2><p>浏览器扩展是你添加到浏览器中的内容，它通过扩展浏览器的容量来增强你的浏览体验。</p><p>例如，考虑一下你可能已在设备上安装的广告拦截器，这可以通过在你上网时屏蔽广告来改善你的浏览体验。</p><h2 id="--1">如何编写浏览器扩展</h2><p>现在让我们从编写一个非常基本的扩展开始。</p><p>首先，我们将创建一个文件夹，在其中创建一个名为 <code>manifest.json</code> 的文件。</p><h3 id="-manifest-">什么是 manifest 文件？</h3><p>manifest 文件是任何浏览器扩展中的必备文件。此文件包含有关扩展程序的基本数据，如名称、版本等。</p><p>现在在 <code>manifest.json</code> 文件中复制以下代码段：</p><pre><code class="language-json">{
  "manifest_version":2,
  "version":"1.0",
  "name":"Test",
}
</code></pre><h3 id="--2"><strong>如何加载扩展文件</strong></h3><p>对于 Firefox 用户，请按照以下步骤操作。</p><p>在地址栏中，搜索：</p><pre><code>about:debugging#/runtime/this-firefox</code></pre><p>你将看到一个 <em>Load Temporary Add-on（加载临时加载项）</em>的选项。单击该选项并从目录中选择 <code>manifest.json</code> 文件。</p><p>对于 Chrome 用户，在地址栏中搜索：</p><pre><code>chrome://extensions.</code></pre><ul><li>启用开发者模式并切换到它</li><li>单击 Load unpacked 按钮并选择扩展目录</li></ul><p>太棒了，你已成功安装扩展程序。但该扩展目前没有做任何事情。现在让我们为扩展添加一些功能。为此，我们将像这样编辑 <code>manifest.json</code> 文件：</p><pre><code class="language-json">{
  "manifest_version":2,
  "version":"1.0",
  "name":"Test",
  "content_scripts":[
    {
     "matches":["&lt;all_urls&gt;"],
     "js":["main.js"]
    }
  ]
}</code></pre><p>在上面的代码中，我们向 <code>manifest.json</code> 添加了一个内容脚本。内容脚本可以操作网页的文档对象模型。我们可以使用内容脚本将 JS（和 CSS）注入到网页中。</p><p><code>"matches"</code> 包含应添加内容脚本的域和子域列表，<code>js</code> 是要加载的 JS 文件的数组。</p><p>现在在同一目录中创建一个 <code>main.js</code> 文件，并添加以下代码：</p><pre><code class="language-js">alert("The test extension is up and running")</code></pre><p>现在重新加载扩展程序，当你访问任何 URL 时，你将看到一条警报消息。</p><p><strong>不要忘记在编辑代码时重新加载扩展。</strong></p><h2 id="--3">如何自定义你的浏览器扩展</h2><p>现在让我们为扩展程序添加更多有趣的东西。</p><p>我们现在要做的是创建一个网络扩展程序，将我们访问的网页的所有图像更改为我们选择的图像。</p><p>为此，只需将任何图像添加到当前目录，并将 <code>main.js</code> 文件更改为：</p><pre><code class="language-js">console.log("The extension is up and running");

var images = document.getElementsByTagName('img')

for (elt of images){
   elt.src = `${browser.runtime.getURL("pp.jpg")}`
   elt.alt = 'an alt text'
}</code></pre><p>让我们看看这里发生了什么：</p><pre><code class="language-js">var images = document.getElementsByTagName('img')</code></pre><p>这行代码选择了网页中所有带有 <code>img</code> 标签的元素。</p><p>然后我们使用 for 循环遍历数组图像，在 <code>runtime.getURL</code> 函数的帮助下将所有 <code>img</code> 元素的 <code>src</code> 属性更改为一个 URL。</p><p>这里 <code>pp.jpg</code> 是我的设备当前目录下的图片文件名。</p><p>我们通过将 <code>manifest.json</code> 文件编辑为以下内容来通知我们的内容脚本关于 <code>pp.jpg</code> 文件：</p><pre><code class="language-js">{
  "manifest_version":2,
  "version":"1.0",
  "name":"Test",
  "content_scripts":[
   {
    "matches":["&lt;all_urls&gt;"],
    "js":["main.js"]
   }
  ],
  "web_accessible_resources": [
        "pp.jpg"
  ]
}
</code></pre><p>然后只需重新加载扩展程序，并访问你喜欢的任何 URL。现在你应该看到所有图像都被更改为当前工作目录中的图像。</p><h3 id="--4">如何将图标添加到你的扩展程序</h3><p>在 <code>manifest.json</code> 文件中添加以下代码：</p><pre><code class="language-json">"icons": {
  "48": "icon-48.png",
  "96": "icon-96.png"
}
</code></pre><h3 id="--5">如何向扩展程序添加工具栏按钮</h3><p>现在我们将在浏览器的工具栏中添加一个按钮，用户可以使用此按钮与扩展程序交互。</p><p>要添加工具栏按钮，请将以下几行添加到 <code>manifest.json</code> 文件中：</p><pre><code class="language-json">"browser_action":{
   "default_icon":{
     "19":"icon-19.png",
     "38":"icon-38.png"
   }
  }</code></pre><p>所有图像文件都应该存在于你的当前目录中。</p><p>现在，如果我们重新加载扩展程序，应该会在浏览器的工具栏中看到扩展程序的图标。</p><h3 id="--6">如何为工具栏按钮添加监听事件</h3><p>也许我们想在用户点击按钮时做一些事情——假设我们想在每次点击按钮时打开一个新标签。</p><p>为此，我们将再次将以下内容添加到 <code>manifest.json</code> 文件中：</p><pre><code class="language-json">"background":{
        "scripts":["background.js"]
  },
  "permissions":[
      "tabs"
  ]
</code></pre><p>然后我们将在当前工作目录中创建一个名为 <code>background.js</code> 的新文件，并在文件中添加以下几行：</p><pre><code class="language-js">function openTab(){
    
    var newTab = browser.tabs.create({
        url:'https://twitter.com/abhilekh_gautam',
        active:true
    })
}

browser.browserAction.onClicked.addListener(openTab)
</code></pre><p>现在重新加载扩展！</p><p>每当有人单击该按钮时，它都会调用 <code>openTab</code> 函数，打开一个带有链接到我的 Twitter 个人资料的 URL 的新选项卡。此外，当设置为 true 时，活动键使新创建的选项卡成为当前选项卡。</p><p>请注意，你可以在后台脚本中使用浏览器提供的 API。有关 API 的更多信息，请参阅文章：<a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API">JavaScript API</a>。</p><p>现在我们已经了解了浏览器扩展的一些基础知识，让我们创建一个我们作为开发人员可以在日常生活中使用的扩展。</p><h2 id="--7">项目</h2><p>好的，现在我们要写一些日常生活中用得上的东西。我们将创建一个扩展程序，允许你通过单击从 StackOverflow 复制代码片段。 因此，我们的扩展程序将向网页添加一个 <code>Copy</code> 按钮，该按钮将代码复制到剪贴板。</p><h3 id="demo"><strong>Demo</strong></h3><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/10/demo.png" class="kg-image" alt="demo" width="600" height="400" loading="lazy"></figure><p>首先，我们将创建一个新文件夹/目录，我们将在其中添加一个 <code>manifest.json</code> 文件。</p><p>将以下代码添加到文件中：</p><pre><code class="language-json">
  "manifest_version":2,
  "version":"1.0",
  "name":"copy code",
  "content_scripts":[
    {
     "matches":["*://*.stackoverflow.com/*"],
     "js":["main.js"]
    }
  ]
}</code></pre><p>查看 <code>content script</code> 中的 <code>matches</code>——扩展仅适用于 StackOverflow 的域名和子域名。</p><p>现在在同一目录中创建另一个名为 <code>main.js</code> 的 JavaScript 文件，并添加以下代码：</p><pre><code class="language-js">var arr =document.getElementsByClassName("s-code-block")

for(let i = 0 ; i &lt; arr.length ; i++){
 var btn = document.createElement("button")
 btn.classList.add("copy_code_button")
 btn.appendChild(document.createTextNode("Copy"))
 arr[i].appendChild(btn)
 //styling the button
 btn.style.position = "relative"
 
 if(arr[i].scrollWidth === arr[i].offsetWidth &amp;&amp; arr[i].scrollHeight === arr[i].offsetHeight)
  btn.style.left = `${arr[i].offsetWidth - 70}px`

  else if(arr[i].scrollWidth != arr[i].offsetWidth &amp;&amp; arr[i].scrollHeight === arr[i].offsetWidth)
   btn.style.left = `${arr[i].offsetWidth - 200}px`
 else 
   btn.style.left = `${arr[i].offsetWidth - 150}px`
  
 if(arr[i].scrollHeight === arr[i].offsetHeight)
   btn.style.bottom = `${arr[i].offsetHeight - 50}px`
   
 else
   btn.style.bottom = `${arr[i].scrollHeight - 50}px`
 //end of styling the button
   
   console.log("Appended")
}</code></pre><p>首先，我选择了所有类名为 <code>s-code-block</code> 的元素——但为什么呢？ 这是因为当我检查 StackOverflow 的站点时，发现所有代码片段都保存在一个具有该名称的类中。</p><p>然后我们遍历所有这些元素，并在这些元素中添加一个按钮。最后，我们正确定位和设置按钮样式（样式尚不完美——这只是一个开始）。</p><p>当我们使用上面的过程加载扩展并访问 StackOverflow 时，应该看到一个 copy 按钮。</p><h3 id="--8">如何为按钮添加功能</h3><p>现在，当单击按钮时，我们希望将整个片段复制到剪贴板。为此，请将以下代码行添加到 <code>main.js</code> 文件中：</p><pre><code class="language-js">var button = document.querySelectorAll(".copy_code_button")
 button.forEach((elm)=&gt;{
  elm.addEventListener('click',(e)=&gt;{
    navigator.clipboard.writeText(elm.parentNode.childNodes[0].innerText)
    alert("Copied to Clipboard")
  })
 })</code></pre><p>首先，我们使用 <code>querySelectorAll</code> 选择添加到站点的所有按钮。然后我们在点击按钮时监听 click 事件。</p><pre><code class="language-js">navigator.clipboard.writeText(elm.parentNode.childNodes[0].innerText)
</code></pre><p>上面的代码将代码复制到我们的剪贴板。每当复制片段时，我们都会通过消息 <code>Copied to clipboard</code> 来提醒用户，这样就完成了。</p><h2 id="--9"><strong>结语</strong></h2><p>Web 扩展可以通过多种方式发挥作用，我希望在本文的帮助下，你能够编写自己的扩展。</p><p>所有代码都可以在这个 <a href="https://github.com/Abhilekhgautam/Copy-Code">GitHub 仓库</a>中找到。如果你想建议一些好的样式或新功能（如剪贴板历史记录等），欢迎创建 pull request。</p><p><strong><strong>Happy Coding!</strong></strong></p><p>原文：<a href="https://www.freecodecamp.org/news/write-your-own-browser-extensions/">How to Write Your Own Browser Extension [Example Project Included]</a>，作者：<a href="https://www.freecodecamp.org/news/author/abhilekh/">Abhilekh Gautam</a></p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ 如何克服程序员的障碍？5 个建议帮助你保持高效率 ]]>
                </title>
                <description>
                    <![CDATA[ 作为程序员，我们可能有一些类似的经历。 一个是分号（;）、方括号（[]）和括号（{}）带来的困扰——谁没花过几个小时去寻找它们放错位置或者哪里遗漏了呢？ 另一个是当我们不想做任何事情的时候，学会利用代码编译的时间偷懒休息。 但是，最普遍的经历是被称为 coder's block 的情况，也就是程序员的障碍，它可能让你无缘无故地写不出任何有用的代码。 就像作家的障碍一样，它可能会突然困扰程序员，并且几乎是不可能克服的。我知道这个情况，因为它曾经在我身上发生过很多次。所以，我经常有挫败感，做一些职业测验 [https://www.training.com.au/ed/career-quiz/]，因为我想自己肯定在职业路线上走入了误区。 幸运的是，我找到了几种方法来克服程序员的障碍。自那以后，我的工作一直很顺利。我想它们适用于任何容易陷入到编码障碍的人。 你可以每天使用下面五种方法，保持生产力，并摆脱程序员的障碍。 在纸上开始每个项目 几乎每次我在编写项目遇到麻烦的时候，我都能追溯到一个特定的原因。这是因为我一开始就想去关注项目的所有细节。 当你这样做的时候，即使是一个普通的 ]]>
                </description>
                <link>https://www.freecodecamp.org/chinese/news/how-to-beat-coders-block-and-stay-productive/</link>
                <guid isPermaLink="false">60e1bb080f76ab0660b14067</guid>
                
                    <category>
                        <![CDATA[ 效率 ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Lai Weiqing ]]>
                </dc:creator>
                <pubDate>Sat, 03 Jul 2021 12:00:00 +0000</pubDate>
                <media:content url="https://chinese.freecodecamp.org/news/content/images/2021/07/coders-block-tips.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>作为程序员，我们可能有一些类似的经历。</p>
<p>一个是分号（;）、方括号（[]）和括号（{}）带来的困扰——谁没花过几个小时去寻找它们放错位置或者哪里遗漏了呢？</p>
<p>另一个是当我们不想做任何事情的时候，学会利用代码编译的时间偷懒休息。</p>
<p>但是，最普遍的经历是被称为 coder's block 的情况，也就是程序员的障碍，它可能让你无缘无故地写不出任何有用的代码。</p>
<p>就像作家的障碍一样，它可能会突然困扰程序员，并且几乎是不可能克服的。我知道这个情况，因为它曾经在我身上发生过很多次。所以，我经常有挫败感，做一些<a href="https://www.training.com.au/ed/career-quiz/">职业测验</a>，因为我想自己肯定在职业路线上走入了误区。</p>
<p>幸运的是，我找到了几种方法来克服程序员的障碍。自那以后，我的工作一直很顺利。我想它们适用于任何容易陷入到编码障碍的人。</p>
<p>你可以每天使用下面五种方法，保持生产力，并摆脱程序员的障碍。</p>
<h2 id="">在纸上开始每个项目</h2>
<p>几乎每次我在编写项目遇到麻烦的时候，我都能追溯到一个特定的原因。这是因为我一开始就想去关注项目的所有细节。</p>
<p>当你这样做的时候，即使是一个普通的编码项目，你也很容易被它庞大的规模所吓倒。另外，在没有具体想法的情况下就开始编写代码总是会导致灾难。</p>
<p>相反，首先要在纸上勾勒出项目的粗略轮廓，这是有经验的程序员习惯做的事情，但初级程序员往往会选择跳过。</p>
<p>你所要做的就是写出你尝试创建的程序的目的，然后是列一个你认为满足所有需求的子功能列表。</p>
<p>这个简单的动作可以帮助你将项目分解为看起来并不会令人生畏的较小的逻辑块，而且它让你有机会提前发现可能会在以后减慢你的进度的明显问题。</p>
<p>当你这样做完以后，你可以把工作大纲转换成自己喜欢的在线日历，这能帮你可视化构成项目的所有小任务。</p>
<p>对我来说，有一个完整的项目时间表，我就可以更轻松地一次专注于工作的一个逻辑部分。</p>
<p>可能是因为它消除了一个庞大项目给人的压力，或者减轻了完成每个部分的时间压力，这种方法有助于缓解我们的焦虑。</p>
<h2 id="">在沙箱中找到乐趣</h2>
<p>有时候克服程序员的障碍的最佳方法是做出一些东西——任何有效的东西。所以，如果我感觉脑子转不过来，我就会在沙箱中尝试构建一些有趣的东西。</p>
<p>因为我更多是做 Web 前端开发，所以我的首选站点是 <a href="https://codesandbox.io/">CodeSandbox</a> 和 <a href="https://codepen.io/">CodePen</a>。可能还有其他站点更适合你的需求。</p>
<p>比如，<a href="https://repl.it/">Replit</a> 支持超过 50 种编程语言来编写代码。如果你遇到困难，你甚至可以在他们的社区里寻求帮助。</p>
<p>有时候，和其他程序员来回碰撞，提出想法，可以帮助你打破阻碍你继续工作的思维僵局。</p>
<h2 id="">维护一个待办事项列表</h2>
<p>当我想在某个项目取得进展的时候，没有一个简单任务的列表，也会让我产生程序员障碍。</p>
<p>换句话说，当你在做一些特别具有挑战性的事情而陷入困境的时候，你也不希望就这样被困住，什么都不能做。</p>
<p>为了避免这种情况，你应该在每个项目的生命周期内维护一个实时更新的待办任务列表。我使用 <a href="https://www.scrum.org/resources/what-is-a-product-backlog">Scrum 产品待办列表</a>（即使我不需要和团队协作的时候，我也会用它）。</p>
<p>在列表里列出代码重构和外观更改之类的任务——换句话说，即简单且低优先级的任务。当你被一些难的任务困住的时候，你可以先解决这些简单的事情，这也是在推进你的项目。</p>
<p>有时候，完成简单任务有助于你重新找到成就感，打开思维。</p>
<h2 id="">有策略地休息</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/03/tired-coder.jpg" alt="tired-coder" width="600" height="400" loading="lazy"><br>
<em>Image: Monstar Studio / Adobe Stock</em></p>
<p>如果你花点时间搜索“程序员的障碍”，你会看到很多文章都建议你在面对编程挑战时先休息一下。</p>
<p>好吧，休息也是一把双刃剑，因为一不小心你就会拖延，这样休息会导致更大的问题。</p>
<p>当我第一次去探索克服程序员的障碍的技巧的时候，我就意识到了这一点。刚开始，我对我的休息时间非常负责——当我想理清头绪时，只需要散步五分钟或走到咖啡机面前。</p>
<p>但很快，我发现自己在找理由让自己在所坚持的事情上分心，比如我花了半天时间在网上搜索价格合理的显卡。</p>
<p>所以，休息是你尝试突破程序员的障碍的好方法，但是你需要有策略地休息。</p>
<p>我最后发现，使用有时间限制、远离计算机的休息作为我大脑有意重置过程的最后一步非常有效。当我陷入困境的时候，我就会像下面这样做：</p>
<ul>
<li>花 15 分钟解决问题</li>
<li>花 5 分钟从头开始回顾所有事情</li>
<li>再花 15 分钟解决问题</li>
<li>走开至少 10 分钟，做一些与编码无关的事情</li>
<li>重复上述步骤</li>
</ul>
<p>几乎每次我都能在休息 10 分钟后找到我想要的答案。再继续休息下去你可能会分心，以至于会忘记休息前结束的地方和逻辑思路。这就是为什么只能短暂休息，然后立即要重新开始的原因。</p>
<p>如果你够幸运的话，你可能不用经常重复上述过程。这样你就可以保持专注，避免在非生产性任务上浪费太多时间。</p>
<p>但是要小心，不要完全跳过休息时间。你确实需要时不时地暂停工作，以放松大脑。</p>
<p>我习惯在上午的日程安排中少休息会儿，抽出一些时间跟随 YouTube 上的<a href="https://www.top10.com/workout-channels-on-youtube">锻炼频道</a>做运动。</p>
<h2 id="">总是留下面包屑痕迹</h2>
<p>对于程序员的障碍来说，“预防为主，治疗为辅”这句老话再正确不过了。这就是我养成了在编码项目中控制何时以及如何停止工作的习惯的原因。</p>
<p>我这样做是因为我发现当我试图从中断的地方重新开始的时候时，我正在做的那些被打断和没完成的事情只会让我感觉到头疼。</p>
<p>相反，如果我需要停止做某件事，我会留下特定和详细的笔记告诉我接下来要做什么。即使很匆忙，我也会留下面包屑的痕迹，这样我回来时就不必从头回溯做了什么工作了。</p>
<p>它为我省去了重新进入“编程模式”的麻烦，因为我不必费力地想上次中断的地方在哪。而且我不会在寻找重新开始的位置时过度分析已经完成的代码的漏洞。</p>
<p>这两种情况都会让你慢下来，并导致你陷入程序员的障碍。自从我开始给自己留下一些面包屑的痕迹以后，我就再也没有遇到过这两个问题了。</p>
<h2 id="">成为一个势不可挡的程序员</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/03/cheerful-positive-coder.jpg" alt="cheerful-positive-coder" width="600" height="400" loading="lazy"></p>
<p><em>Image: deagreez / Adobe Stock</em></p>
<p>我不能向你保证这五种方法可以让你远离程序员的障碍。但我可以告诉你的是，它们会帮助你远离导致程序员的障碍的一些常见情况。</p>
<p>自从我在编程时运用这些方法之后，我就没有在某个问题上停留超过一两个小时——这是来自一个不止一次想要放弃编程、转行的人的经验。</p>
<p>即使它们对你的效果只有一半，你也会成为一个势不可挡的程序员！</p>
<p><em>Featured image: DragonImages / Adobe Stock</em></p>
<!--kg-card-end: markdown--><p>原文：<a href="https://www.freecodecamp.org/news/how-to-beat-coders-block-and-stay-productive/">How to Beat Coder's Block – Five Tips to Help You Stay Productive</a>，作者：<a href="https://www.freecodecamp.org/news/author/andrej/">Andrej Kovacevic</a></p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ 二八定律（帕累托原则） ]]>
                </title>
                <description>
                    <![CDATA[ 你可能听说过有人说“你的 20% 的客户为你带来了 80% 的收入”，或者说“某个国家的 20% 的人拥有那个国家 80% 的财富”。 这些陈述引用了帕累托原则或二八定律。该原则的基本意思是一小部分原因导致大部分结果。 让我们深入研究并更详细地了解帕累托原则及其相关概念。 什么是帕累托原则 在二十世纪四十年代，一位名叫约瑟夫·朱兰（Joseph Juran）的工程师兼管理顾问了解了意大利经济学家维尔弗雷多·帕累托（Vilfredo Pareto）的工作。帕累托注意到，意大利大约 80% 的土地仅由 20% 的人口拥有。 朱兰观察到这种模式适用于经济学、商业、数学和其他科学的许多领域。他将该原则应用于质量控制问题，并指出商业和制造中 80% 的问题可归因于仅 20% 的原因。 朱兰是帕累托原理的命名者，并将其部分描述为“重要的少数和琐碎的多数”。这意味着较少的原因/人是重要的和有影响的，而许多结果受这些少数原因的影响。 在我们继续之前，有趣的事实是：传说是 Vilfredo Pareto 首先在他的花园中注意到这种分布。他看到他的豌豆植株中约有 20% 产生了约 80% 的果 ]]>
                </description>
                <link>https://www.freecodecamp.org/chinese/news/the-80-20-rule-pareto-principle/</link>
                <guid isPermaLink="false">60c47f6e6a50ee0507a98c86</guid>
                
                    <category>
                        <![CDATA[ 效率 ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Miya Liu ]]>
                </dc:creator>
                <pubDate>Sat, 12 Jun 2021 07:20:00 +0000</pubDate>
                <media:content url="https://chinese.freecodecamp.org/news/content/images/2021/06/5ff753e775d5f706921c9c3c.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>你可能听说过有人说“你的 20% 的客户为你带来了 80% 的收入”，或者说“某个国家的 20% 的人拥有那个国家 80% 的财富”。</p><p>这些陈述引用了帕累托原则或二八定律。该原则的基本意思是一小部分原因导致大部分结果。</p><p>让我们深入研究并更详细地了解帕累托原则及其相关概念。</p><h2 id="-"><strong>什么是帕累托原则</strong></h2><p>在二十世纪四十年代，一位名叫约瑟夫·朱兰（Joseph Juran）的工程师兼管理顾问了解了意大利经济学家维尔弗雷多·帕累托（Vilfredo Pareto）的工作。帕累托注意到，意大利大约 80% 的土地仅由 20% 的人口拥有。</p><p>朱兰观察到这种模式适用于经济学、商业、数学和其他科学的许多领域。他将该原则应用于质量控制问题，并指出商业和制造中 80% 的问题可归因于仅 20% 的原因。</p><p>朱兰是帕累托原理的命名者，并将其部分描述为“<strong>重要的少数</strong>和<strong>琐碎的多数</strong>”。这意味着较少的原因/人是重要的和有影响的，而许多结果受这些少数原因的影响。</p><p>在我们继续之前，有趣的事实是：传说是 Vilfredo Pareto 首先在他的花园中注意到这种分布。他看到他的豌豆植株中约有 20% 产生了约 80% 的果实。据说正是这让他产生了将该原理更广泛地应用于经济学和财富分配的想法。</p><h2 id="--1">那么帕累托原则与编程有什么关系呢</h2><h3 id="-bug">修复 bug</h3><p>这一切都很好，你可能会想——但如果你是一名开发人员，你为什么要关心呢？</p><p>嗯，二八定律也适用于编程的各个领域。可以这样想：80% 的错误可以通过修复导致错误的问题中的 20% 来解决。</p><p>因此，与其处理每个出现的错误，不如努力找出导致最多问题的错误。当你发现这些错误时，修复它们，然后你的大部分（大约 80%）的问题都会得到解决。</p><h3 id="--2"><strong>效率</strong></h3><p>在团队中，有些成员可能比其他成员更有效率。一些人像冠军一样专注于他们的代码，并在几个小时内完成其他开发人员可能需要一整天（或更长时间）才能完成的工作。</p><p>因此，通常情况下，20% 的团队成员完成了大约 80% 的工作。</p><h3 id="--3">写代码</h3><p>在开发项目时，通常需要为该项目分配大约 20% 的时间来完成大约 80% 的工作。</p><p>相反的，项目的剩余 20% 占用了你分配的其他 80% 的时间。</p><p>换句话说，构建应用程序的简单和通用部分不需要太多时间。但是实现复杂的功能、修复错误和解决问题——整个项目的一小部分——很容易消耗更多的时间。</p><h2 id="--4">帕累托原则如何帮助你提高工作效率</h2><p>希望你了解了二八定律的原理。那么如何在日常生活中使用它呢？它适用于你我这样的大众，还是只适用于经济学家和数学家？</p><p>你绝对可以将这一原则应用到你的生活中，以帮助你提高工作效率并专注于重要的事情。</p><p>例如，如果你是一名经理，请确定最重要的任务和职责，如果你亲自处理它们将产生最多的结果。其他任何事情都应该从你的日程安排中委派出去或删除。</p><p>如果你是一名作家，并且想帮助尽可能多的人，请进行一些研究，看看你提出的 10 个主题中的哪一个将是搜索量最大且与人们最相关的主题。写下前几个主题，并将这些文章写得非常好。</p><p>如果你是一名自由职业者，并且你的一些客户给你的工作比其他人给你的多，请确保你培养这些关系并照顾好这些客户（因为，你猜对了，他们可能会提供给你收入的 80%）。</p><p>希望现在你明白了专注于最重要、最相关、最有影响力的约 20% 的事情是如何产生最大成果的。</p><p>虽然这种分布可能并不总是恰好是 80%/20%，但你明白了这个原理：一小部分原因通常对大部分结果负责。</p><h2 id="--5">帕累托原则、帕累托分布和帕累托效率之间有什么区别</h2><p>正如我们在本文中所讨论的，<strong>帕累托原则</strong>指的是少数原因导致大量结果的观察结果。</p><p><strong>帕累托分布</strong>指的是数学分布本身——例如，意大利 80% 的土地由 20% 的人拥有。这种分布在许多不同的领域都可以观察到，例如经济学、数学、商业等。</p><p>帕累托分布是统计学中的<strong>幂律分布</strong>，这意味着，在两个量之间的函数关系中，当一个量受到影响或变化时，另一个量相对于该初始变化成比例地变化。</p><p>例如，如果将正方形的边长加倍，则该正方形的面积将增加四倍。</p><p>最后，<strong>帕累托效率</strong>是指所有相关方都处于最佳状态的情况，并且在不减损其他方的情况下，任何一方都不可能变得更好。</p><p>例如，如果三个人共享一个蛋糕，如果将蛋糕分成三个相等的部分，并在他们之间分配，则他们达到帕累托效率状态。他们中没有人可以拥有一块更大的蛋糕，因为这意味着其他人中的一个必须拥有更小的蛋糕。</p><p>然而，如果你把一块蛋糕分成四块，而你只有三个人，事实上，你可以把最后一块分成三份，给每个人多一点蛋糕。这种情况被称为<strong>帕累托改进</strong>，因为在不损害任何一方的情况下，所有相关方都有改善状态的空间。</p><p>就是这样！希望现在你了解帕累托原则或二八原则的全部内容。也许现在你可以使用它来确定日常生活中的任务优先级。</p><p>原文：<a href="https://www.freecodecamp.org/news/the-80-20-rule-pareto-principle-explained-in-plain-english/">The 80-20 Rule – The Pareto Principle Explained in Plain English</a>，作者：<a href="https://www.freecodecamp.org/news/author/abbey/">Abbey Rennemeyer</a></p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
