<?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[ FengJiaJun - 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[ FengJiaJun - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/chinese/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Sat, 23 May 2026 08:28:41 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/chinese/news/author/fengjiajun/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Python 基础教程之应用领域 ]]>
                </title>
                <description>
                    <![CDATA[ 如果你想学习 Python，或者如果你最近开始学习 Python，你也许会这么问自己： “我到底可以使用 Python 做什么？” 这是一个棘手的问题去回答，因为已经有许多 Python 的程序。 但是随着时间的迁移，我发现 Python 有三个主要的流行应用程序：  * Web 开发  * 数据科学 - 包括机器学习，数据分析和数据可视化  * 脚本编写 我们依次讨论它们。 Web开发 基于 Python 的 web 框架（比如 Django 和 Flask ）最近变得非常流行。 这些 web 框架帮助你使用 Python 创建服务器端代码（后台代码），即运行在你服务器上的代码，相对于运行在用户的设备、浏览器上（前端代码）。如果你不熟悉后端代码和前端代码的区别，请参考下面的脚注。 但是等一下，为什么我需要一个 web 框架呢？ 那是因为 web 框架在构建共同后端逻辑非常方便，包括映射不同的 URLS 到 Python 代码块，处理数据库和产生用户在浏览器中看到的 ]]>
                </description>
                <link>https://www.freecodecamp.org/chinese/news/what-can-you-do-with-python-the-3-main-applications/</link>
                <guid isPermaLink="false">5f5f2c28cd07b005bfb5b1fd</guid>
                
                    <category>
                        <![CDATA[ Python ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web开发 ]]>
                    </category>
                
                    <category>
                        <![CDATA[ 机器学习 ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ FengJiaJun ]]>
                </dc:creator>
                <pubDate>Mon, 14 Sep 2020 08:50:28 +0000</pubDate>
                <media:content url="https://chinese.freecodecamp.org/news/content/images/2021/04/photo-1580927752452-89d86da3fa0a.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>如果你想学习 Python，或者如果你最近开始学习 Python，你也许会这么问自己：</p><p><strong>“我到底可以使用 Python 做什么？”</strong></p><p>这是一个棘手的问题去回答，因为已经有许多 Python 的程序。</p><p>但是随着时间的迁移，我发现 Python 有三个主要的流行应用程序：</p><ul><li>Web 开发</li><li>数据科学 - 包括机器学习，数据分析和数据可视化</li><li>脚本编写</li></ul><p>我们依次讨论它们。</p><h3 id="web-"><strong>Web开发</strong></h3><p>基于 Python 的 web 框架（比如 <strong>Django</strong> 和 <strong>Flask</strong> ）最近变得非常流行。</p><p>这些 web 框架帮助你使用 Python 创建服务器端代码（后台代码），即运行在你服务器上的代码，相对于运行在用户的设备、浏览器上（前端代码）。如果你不熟悉后端代码和前端代码的区别，请参考下面的脚注。</p><h4 id="-web-"><strong>但是等一下，为什么我需要一个 web 框架呢？</strong></h4><p>那是因为 web 框架在构建共同后端逻辑非常方便，包括映射不同的 URLS 到 Python 代码块，处理数据库和产生用户在浏览器中看到的 HTML 文件。</p><h4 id="-web--1"><strong>我应该用哪一个 web 框架？</strong></h4><p>Django 和 Flask 是两个最受欢迎的 Python web 框架。如果你刚刚入门 Python,我建议你使用他们其一。</p><h4 id="django-flask-"><strong>Django 和 Flask 之间的区别是什么？</strong></h4><p>这里有一篇 Gareth Dwyer 编写的关于这个问题的<a href="https://www.codementor.io/garethdwyer/flask-vs-django-why-flask-might-be-better-4xs7mdf8v" rel="nofollow">出色文章</a>，所以我在这里引用它：</p><p><strong><em>&lt;开始引用&gt;</em></strong></p><p>主要对比：</p><ul><li>Flask 提供了简单性，灵活性和细粒度的控制。It is unopinionated （它让你可以决定你想要实现的东西）。</li><li>Django 提供全方位的体验：你可以开箱即用式地获得管理面板、数据库接口、<a href="https://stackoverflow.com/questions/1279613/what-is-an-orm-and-where-can-i-learn-more-about-it" rel="nofollow">ORM [对象关系映射]</a>以及目录结构。</li></ul><p>你可能应该选择：</p><ul><li>Flask，如果你专注于体验和学习机会，或者如果你想要去控制更多使用的组件（比如你想要使用哪些数据库和你想要如何与它们交互）。</li><li>Django,如果你专注于最终产品。特别是如果你正在开发一个简单易用的应用比如新闻网站、电子商店、博客，并且你想要有一种简单，显而易见的方法去搭建这个应用。</li></ul><p><strong><em>&lt;结束引用&gt;</em></strong></p><p>换一种说法，如果你是一个初学者，Flask 可能是更好的选择。因为它需要处理的组件更少。同时，如果你想要更多的定制化，Flask 是更好的选择。</p><p>在另一方面，如果你正在寻找简单易用的方式构建程序，Django 将会让你更快完成。</p><p>现在如果你想学习 Django，我推荐你一本书《Django for Beginners》。你可以从<a href="http://csdojo.io/dj" rel="nofollow">这里</a>找到它。</p><p>你也可以找到免费的章节案例在<a href="https://djangoforbeginners.com/" rel="nofollow">这本书里</a>。</p><p>好的，让我们开始下一个的话题。</p><h3 id="-"><strong>数据科学 - 包括机器学习，数据分析和数据可视化</strong></h3><h4 id="--1"><strong>首先，回顾下机器学习是什么 。</strong></h4><p>我认为最好的方式解释什么是机器学习，就是给你一个简单的样例。</p><p>假如你想要开发一个程序去自动检测数图片里面的内容。</p><p>你想要你的程序去识别这是一只狗。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://chinese.freecodecamp.org/news/content/images/2020/09/image-3.png" class="kg-image" alt="image-3" width="600" height="400" loading="lazy"><figcaption>图 1</figcaption></figure><p>另一张图片，你想要你的程序去识别这是一张桌子。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://chinese.freecodecamp.org/news/content/images/2020/09/image-2.png" class="kg-image" alt="image-2" width="600" height="400" loading="lazy"><figcaption>图 2</figcaption></figure><p>你或许会说，好的，我可以写一些代码去完成这个功能。比如，如果图片中有很多白色像素，那么我们可以说这里是一只狗。</p><p>或者，你可以找出如何检测图片中的边缘。然后，你可能会说，如果有很多直边，那就是一张桌子。</p><p>然而，这种方法很快就会变得棘手。如果图片里有一只白狗没有棕色毛发呢？如果图片只展示桌子的圆形部分呢？</p><p><strong>这就是机器学习的用武之地。</strong></p><p>机器学习通常实现一种算法，可以自动检测给定的输入模型。</p><p>你可以传入1000张狗的图片和1000张桌子的图片到机器学习算法中。之后算法将会去学习狗和桌子之间的差异。之后你传入一张新的狗或者桌子的图片，算法将能够识别出它属于哪一个。</p><p>我认为这个机器学习算法就是某种与婴儿学习新鲜事物具有相似性。婴儿是如何学习到一个事物是狗还是桌子呢？可能是从一堆样例中学习到的。</p><p>你应该不会去明确告诉一个婴儿：“如果某个动物毛茸茸的并且有着浅棕色毛发，那么它就很可能是一只狗。”；</p><p>你可能会这么说：“这是一只狗，这也是一只狗。并且这是一张桌子，这也是一张桌子。”</p><p>机器学习算法的工作方式类似这样。</p><p>你可以将相同的想方法应用于：</p><ul><li>推荐系统（例如 YouTube、Amazon、Netflix）</li><li>人脸识别</li><li>语音识别</li></ul><p>以及其他应用程序。</p><p>你可能听过的流行的机器学习算法包括：</p><ul><li>神经网络</li><li>深度学习</li><li>支持向量机</li><li>随机森林</li></ul><p>你可以使用上门任意一种算法解决我之前解释的图片标记问题。</p><h4 id="-python"><strong>适用于机器学习的 Python</strong></h4><p>有很多 Python 语言的机器学习类库和框架。</p><p>两个最流行的框架是 <strong>scikit-learn</strong> 和 <strong>TensorFlow</strong>。</p><ul><li>scikit-learn 内置了一些更加流行的机器学习算法。我在上面提到了其中一些。</li><li>TensorFlow 更像是一个低级别类库，它可以让你自定义机器学习算法。</li></ul><p>如果你刚刚开始进行机器学习的项目，我将会建议你首先使用 scikit-learn。如果你开始遇到效率问题，那么我将会建议你开始研究 TensorFlow。</p><h4 id="--2"><strong>我应该如何学习机器学习？</strong></h4><p>为了学习机器学习的基础，我将会推荐<a href="https://www.coursera.org/learn/machine-learning" rel="nofollow">斯坦福大学的</a>或者<a href="https://work.caltech.edu/telecourse.html" rel="nofollow">加州理工学院的</a>机器学习课程。</p><p>请注意，你需要微积分和线性代数的基本知识才能理解这些课程中的某些资料。</p><p>之后我将使用 <a href="https://www.kaggle.com/" rel="nofollow">Kaggle</a> 去训练你从其中一门课程中学习到的知识。这是一个人们可以对于一个特定问题的最好的机器学习算法进行竞赛的网站。他们也为初学者提供不错的课程。</p><h3 id="--3"><strong>关于数据分析和数据可视化呢?</strong></h3><p>为了帮助你理解这些知识点是什么，让我给你几个简单案例。</p><p>假设你在一家在线销售某些产品的公司工作。</p><p>作为数据分析师，你可能回绘制一个条形图。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://camo.githubusercontent.com/1f326ac69b63959b26cd02248d86dd9225bf2d20/68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f312a3632542d727468654b506568675a64505445704b77772e706e67" class="kg-image" alt="68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f312a3632542d727468654b506568675a64505445704b77772e706e67" width="600" height="400" loading="lazy"><figcaption>条形图 1 - Python 生成的</figcaption></figure><p>从这幅图我们可以得知，在这个特定的星期日，男性购买了400多种产品，女性购买了350多种产品。</p><p>作为数据分析师，你可能会针对这种差异提出一些可能的解释。</p><p>一个明显的解释是这个产品对于男性更具有吸引力。另一个可能的解释是样本数量太小了，并且这种差异是具有偶然性的。还有另一个可能的解释是，由于某种原因男人倾向于只在星期日购买更多该产品。</p><p>为了了解这些解释哪些事正确的，你可能会绘制另一些图表比如下面这个。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://camo.githubusercontent.com/a72faf983bef39cdbddcee1f70053286c8695bb0/68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f312a56674e66714b3558784e664878783653345646436a512e706e67" class="kg-image" alt="68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f312a56674e66714b3558784e664878783653345646436a512e706e67" width="600" height="400" loading="lazy"><figcaption>线形图 1 - Python 生成的</figcaption></figure><p>我们将查看整整一周的数据，而不是仅显示周日的数据。正如你说看到的，从这个线形图，我们可以看到这种差异在不同的日子是相当一致的。</p><p>从这个小分析，你也许会得出如下结论，关于这种差异的最令人信服的解释是，相较于女性，该产品更受男性欢迎。</p><p>另一方面，如果你看到如下另一个图表呢？</p><figure class="kg-card kg-image-card"><img src="https://camo.githubusercontent.com/79d1e7e8e2eeee29188424b27abf5da11747e25f/68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f312a644d70755f66642d54484e58524a68484971324f33672e706e67" class="kg-image" alt="68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f312a644d70755f66642d54484e58524a68484971324f33672e706e67" width="600" height="400" loading="lazy"></figure><p>线形图2 - 也是由Python生成的</p><p>那么，你怎么解释周日的差异？</p><p>你也许会说，男人可能出于某个原因倾向于在周日购买这个产品。或者，这也许只是一种巧合，男人购买更多产品在周日。</p><p>因此，这是数据分析在现实世界中的简化示例。</p><p>我在 Google 和 Microsoft 工作时所做的数据分析工作与该示例非常相似，只是更为复杂。我实际上在 Google 公司使用 Python 去处理这种分析问题，然而在 Microsoft 公司我使用 JavaScript 技术。</p><p>我在两家公司都是用SQL从数据库中抽取数据。之后，我将会使用 Python 和 Matplotlib （在 Google 公司）或者 JavaScript和D3.js（在 Microsoft 公司）去可视化和分析数据。</p><h4 id="-python-"><strong>使用Python做数据分析和可视化</strong></h4><p>最流行的数据可视化类库是 <a href="https://matplotlib.org/" rel="nofollow">Matplotlib</a>。</p><p>这是一个很好的入门库，因为：</p><ul><li>入门简单</li><li>其他一些库，例如 [seaborn] <a href="https://seaborn.pydata.org/" rel="nofollow">9</a> 也以此为基础。因此，学习 Matplotlib 将有助于你今后学习这些其他库。</li></ul><p><strong>我应该怎么学习使用 Python 进行数据分析和可视化？</strong></p><p>你首先应该学习数据分析和可视化的基础知识。当我在网上寻找好的资源时，找不到任何资源。因此，我最终制作了有关此话题的 YouTube 视频：</p><p>我还最终完成了<a href="https://goo.gl/fZ5oVX">关于 Pluralsight 的主题的完整课程</a>，你可以通过注册 10 天的免费试用期来免费获取。</p><p>我建议这两种方式都采取。</p><p>在学习了数据分析和可视化的基础知识之后，从 Coursera 和 Khan Academy 等网站学习统计基础知识也将有所帮助。</p><h3 id="--4"><strong>脚本编写</strong></h3><h4 id="--5"><strong>什么是脚本编写？</strong></h4><p>脚本编写通常指的是编写自动化简单任务的小型程序。</p><p>所以，根据我个人经验给你一个参考样例。</p><p>我曾经在一家日本的拥有邮件维护系统的公司工作过。我们用这个系统来回答客户通过电子邮件发送给我们的问题。</p><p>当我在那工作的时候，我的任务是计算包含某些关键词的邮件个数，以便我们可以分析我们收到的邮件。</p><p>我们本来可以手动完成，但是我编写了一个简单的程序/简单的脚本去自动完成该任务。</p><p>实际上我们使用 Ruby 作为程序后端，但是 Python 也可以作为这个任务的不错的语言。Python 很适合这种任务，主要是因为它具有相对简单的语法并且易于编写。</p><h3 id="--6"><strong>关于嵌入式应用呢？</strong></h3><p>我并不是嵌入式应用专家，但是我知道 Python 可与 Raspberry Pi 一起使用。Raspberry Pi 似乎在硬件爱好者中很流行。</p><h3 id="--7"><strong>关于游戏编程呢？</strong></h3><p>你可以使用 PyGame 的库来开发游戏，但它不是最受欢迎的游戏引擎。你可以使用它来构建一个喜好的项目，但是如果你想正式学习游戏开发，我个人不会建议选择它。</p><p>相反，我建议使用 Unity C＃（最受欢迎的游戏引擎之一）入门。你可以使用它构建很多平台支持的游戏，包括 Mac、Windows、iOS 以及 Android。</p><h3 id="--8"><strong>关于桌面应用呢？</strong></h3><p>你可以使用功能 Python 的 Tkinter 模块，但是它并不是最受欢迎的选择。</p><p>取而代之的是，似乎 Java，C＃和C ++ 之类的语言更受欢迎。</p><p>最近一些公司也开始使用 JavaScript 来创建桌面应用。</p><p><a href="https://slack.engineering/building-hybrid-applications-with-electron-dc67686de5fb" rel="nofollow">例如，Slack 公司的桌面应用是由 Electron 构建的</a>。Electron 允许你使用 JavaScript 构建桌面应用。</p><p>对于我个人而言，如果我正在构建一个桌面应用，我将会选择使用 JavaScript 语言。如果你使用 JavaScript 的话，它可以让你重用Web版本中的某些代码。</p><p>然后，我并不是一个桌面应用的专家，所以请给我留言，告诉我你支持还是反对我的观点。</p><h3 id="python-3-python-2-"><strong>Python 3 还是 Python 2？</strong></h3><p>我建议使用 Python 3，因为它是较新版本，并且是目前最受欢迎的选择。</p><h3 id="--9"><strong>脚注：关于后端代码与前端代码的注释（以防你不熟悉这些术语）：</strong></h3><p>假设你想制作类似 Instagram 的产品。</p><p>你需要去创建你想要支持的每一个类型设备的前端代码。</p><p>你或许会使用如下技术，比如：</p><ul><li>Swift for iOS</li><li>Java for Android</li><li>JavaScript for web browsers</li></ul><p>每组代码将在各自类型的设备/浏览器上运行。这将是一组用于确定应用程序的布局、单击时的按钮样式等的代码。</p><p>然而，你仍然需要能够存储用户的信息和图片。你将会想要存储这些信息到你的服务器上，而不仅仅是存储到你的用户的设备上，以至于可以让每个用户的关注者可以访问到他/她的图片。</p><p>这就是后端代码/服务器端代码出现的地方。你将会需要写一些后台代码去完成下面的事情：</p><ul><li>追踪谁关注了谁</li><li>压缩照片以免占用太多存储空间</li><li>在 <em>discovery</em> 功能中向每个用户推荐照片和新用户</li></ul><p>所以，这就是前端和后台代码之间的差异。</p><p>顺便说一下，Python 并不是编写后端/服务器端代码的唯一的选择。还有很多流行的选择，包括基于 JavaScript 的 Node.js。</p><p>喜欢这篇文章吗？ 然后，你可能也喜欢我的 YouTube 频道。</p><p>我在 YouTube 有一个编程教育频道，叫作 CS Dojo，有 440,000 多名订阅者，在这里我可以创作更多类似本文的内容。</p><p>非常感谢你阅读我的文章！</p><p>原文：<a href="https://www.freecodecamp.org/news/what-can-you-do-with-python-the-3-main-applications-518db9a68a78/">What exactly can you do with Python? Here are Python's 3 main applications</a>，作者：YK Sugi</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ 30 行 Python 代码实现 Twitch 主播上线实时通知 ]]>
                </title>
                <description>
                    <![CDATA[ 大家好 :) 今天我将开始写作一个新的文章系列，特别面向 Python 初学者。简言之，我将会尝试更多新的工具，编写尽可能少的代码，来完成一个有趣的项目。 例如，我们将要在今天学习使用 Twilio API、Twitch API、在 Heroku 上发布项目。我将会教你用 30 行代码写一个“Twitch 直播”短信通知工具，而且一个月只需要花费 12 美分。 前提 你只需要懂得怎么运行 Python 程序，以及会操作基本的 git 命令行（commit & push）。如果你需要学习一下这些知识点，可以看看下面两篇文章： 《Python 3 安装与设置指南》 [https://realpython.com/installing-python/] 《Git 最佳入门教程》 [https://www.freecodecamp.org/news/git-commands/] fromAdrian Hajdin [https://www.freecodecamp.org/news/author/adrianhajdin/]. 将会学到的知识  * Twitch API  * Twi ]]>
                </description>
                <link>https://www.freecodecamp.org/chinese/news/a-python-project-in-30-lines-of-code-how-to-set-up-an-sms-notification-when-your-favorite-twitcher-is-streaming/</link>
                <guid isPermaLink="false">5d8f03bffbfdee429dc5fee6</guid>
                
                    <category>
                        <![CDATA[ Python ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ FengJiaJun ]]>
                </dc:creator>
                <pubDate>Mon, 18 May 2020 05:14:00 +0000</pubDate>
                <media:content url="https://chinese.freecodecamp.org/news/content/images/2019/09/68747470733a2f2f696d616765732e756e73706c6173682e636f6d2f70686f746f2d313536313733363737382d3932653532613737363965663f69786c69623d72622d312e322e3126713d383026666d3d6a70672663726f703d656e74726f7079266373.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>大家好 :) 今天我将开始写作一个新的文章系列，特别面向 Python 初学者。简言之，我将会尝试更多新的工具，编写尽可能少的代码，来完成一个有趣的项目。</p><p>例如，我们将要在今天学习使用 Twilio API、Twitch API、在 Heroku 上发布项目。我将会教你用 30 行代码写一个“Twitch 直播”短信通知工具，而且一个月只需要花费 12 美分。</p><h3 id="-">前提</h3><p>你只需要懂得怎么运行 Python 程序，以及会操作基本的 git 命令行（commit &amp; push）。如果你需要学习一下这些知识点，可以看看下面两篇文章：</p><p><a href="https://realpython.com/installing-python/">《Python 3 安装与设置指南》</a></p><p><a href="https://www.freecodecamp.org/news/git-commands/">《Git 最佳入门教程》</a> &nbsp;from &nbsp;<a href="https://www.freecodecamp.org/news/author/adrianhajdin/">Adrian Hajdin</a>.</p><h3 id="--1">将会学到的知识</h3><ul><li>Twitch API</li><li>Twilio API</li><li>Heroku 发布项目</li><li>安装 Heroku scheduler 插件</li></ul><h3 id="--2">将要构建的项目</h3><p>要求很简单：我们想要在某个主播正在直播的时候接收到一条短信通知，我们想要知道主播何时上线以及何时退出直播，并且这个通知程序全天都在自动运行。</p><p>我们将把整个项目分成 3 个部分。首先，我们看看如何通过程序知晓一个特定主播上线了，然后看看如何接收一条主播上线的通知短信，最后我们需要让这段代码每隔 X 分钟执行一次，这样我们就不会错过喜欢的主播的动态啦。</p><h3 id="--3">主播是否正在直播？</h3><p>我们可以这样了解主播是否正在直播：访问主播的 URL，看看是否有 'Live' 徽章</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2019/08/Capture-d-e-cran-2019-08-14-a--15.49.31.png" class="kg-image" alt="Capture-d-e-cran-2019-08-14-a--15.49.31" width="600" height="400" loading="lazy"><figcaption>主播直播时候的截图</figcaption></figure><p>这个过程涉及到网络爬虫，而且这个功能不是 20 行左右的 Python 代码能完成的。Twitch 使用了非常多的 JS 脚本代码，一个简单的 request.get() 是不足以达到我们要求的。</p><p>对于使用爬虫去爬取直播信息，我们将会借助 Chrome 浏览器抓取这个网页的内容，如截图所示。这种方式是可行的，但是代码需要 30 行以上。如果你想要了解更多，可以参考我最近的文章<a href="https://www.daolf.com/posts/avoiding-being-blocked-while-scraping-ultimate-guide/">网页抓取指南</a>。</p><p>除了抓取 Twitch 网页这种方式外，我们还可以使用 Twitch 的 API。有的读者可能不了解 API 这个术语，这里我们解释一下：API 是应用程序编程接口，允许网站向任何人（主要是开发者）公开网站的特性和数据。Twitch 的 API 是通过 HTTP 协议对外开放，也就是说我们可以通过一个简单的 HTTP 请求去获取到大量信息以及做许多事情。</p><h3 id="-api-key">获取你的 API KEY</h3><p>首先，你需要去创建一个 Twitch 的API Key。许多 API 服务需要对访问者进行身份认证，以避免有人滥用 API，或者以限制某些人访问某些功能。</p><p>请按照以下步骤获取你的 API Key:</p><ul><li>创建一个Twitch账号</li><li>创建一个Twitch &nbsp;<a href="https://dev.twitch.tv/">开发者账号</a> &nbsp;-&gt; 右上角“通过Twitch注册”</li><li>登录后跳转到信息中心</li><li>“注册你自己的应用”</li><li>名称 -&gt; 随便填一个, Oauth 重定向 URL -&gt; <a href="http://localhost">http://localhost</a>, 类别 -&gt; 随便选一个</li></ul><p>在屏幕底端，你可以看到你的 client-id，将它保存好，稍后会使用。</p><h3 id="--4">主播正在直播么？</h3><p>我们手上有了 API key,我们现在就可以查询 Twitc h的 API 获取我们想要的信息，让我们开始用代码实现它吧。下面的代码给 Twitch 的 API 传递了正确的参数并且打印响应信息。</p><pre><code class="language-python"># requests is the go to package in python to make http request
# https://2.python-requests.org/en/master/
import requests

# This is one of the route where Twich expose data, 
# They have many more: https://dev.twitch.tv/docs
endpoint = "https://api.twitch.tv/helix/streams?"
# In order to authenticate we need to pass our api key through header
headers = {"Client-ID": "&lt;YOUR-CLIENT-ID&gt;"}
# The previously set endpoint needs some parameter, here, the Twitcher we want to follow
# Disclaimer, I don't even know who this is, but he was the first one on Twich to have a live stream so I could have nice examples
params = {"user_login": "Solary"}

</code></pre><p>输出信息就像下面这样：</p><pre><code class="language-json">{
   'data':[
      {
         'id':'35289543872',
         'user_id':'174955366',
         'user_name':'Solary',
         'game_id':'21779',
         'type':'live',
         'title':"Wakz duoQ w/ Tioo - GM 400LP - On récupère le chall après les -250LP d'inactivité !",
         'viewer_count':4073,
         'started_at':'2019-08-14T07:01:59Z',
         'language':'fr',
         'thumbnail_url':'https://static-cdn.jtvnw.net/previews-ttv/live_user_solary-{width}x{height}.jpg',
         'tag_ids':[
            '6f655045-9989-4ef7-8f85-1edcec42d648'
         ]
      }
   ],
   'pagination':{
      'cursor':'eyJiIjpudWxsLCJhIjp7Ik9mZnNldCI6MX19'
   }
}
</code></pre><p>这个数据格式是一种易于阅读的 JSON 格式。<code>data</code> 是一个包含所有当前直播的数组对象。<code>type</code> 键表示这个直播间正在直播，此外 <code>type</code> 的值还可以为空。（比如，在报错的时候）</p><p>因此如果我们想要在 Python 里创建一个表示当前主播是否正在直播的布尔变量，我们需要去加上如下代码：</p><pre><code class="language-python">json_response = response.json()
# We get only streams
streams = json_response.get('data', [])
# We create a small function, (a lambda), that tests if a stream is live or not
is_active = lambda stream: stream.get('type') == 'live'
# We filter our array of streams with this function so we only keep streams that are active
streams_active = filter(is_active, streams)
# any returns True if streams_active has at least one element, else False
at_least_one_stream_active = any(streams_active)

</code></pre><p>此时，<code>at_least_one_stream_active</code> 变量是 True 的时候表示你喜欢的主播正在直播。</p><p>让我们现在看看如何获得短信通知。</p><h3 id="--5">现在给我发一条短信！</h3><p>那么为了给我们自己发送一条短信，我们将使用 Twilio API。访问<a href="https://www.twilio.com/try-twilio">there</a> 并且创建一个账号。当需要你手机验证的时候，填入你想要在此项目中接受短信的手机号码。这样你就可以使用 Twilio 为新用户提供的 15 美元的免费信用额度。一条短信1美分，足以支撑你的机器运行一年了。</p><p>访问<a href="https://www.twilio.com/console">console</a>，你将会看到自己的Account SID和Auth Token。请保留好它们以备后用。同时点击红色按钮"获得试用账号"，进行下一步，将试用账号也保存好以备后用。</p><p>使用 Python API 发送短信很简单，有软件包帮你一系列事情。使用 <code>pip install Twilio</code> 导入相应的包并且执行下面的代码：</p><pre><code class="language-python">from twilio.rest import Client
client = Client(&lt;Your Account SID&gt;, &lt;Your Auth Token&gt;)
client.messages.create(
    body='Test MSG',from_=&lt;Your Trial Number&gt;,to=&lt;Your Real Number&gt;)

</code></pre><p>只需要这么点代码，你就可以给自己发一条通知短信了，是不是很棒？</p><h3 id="--6">整合所有代码</h3><p>现在我们来整合所有代码，压缩到不到 30 行 Python 代码。</p><pre><code class="language-python">import requests
from twilio.rest import Client
endpoint = "https://api.twitch.tv/helix/streams?"
headers = {"Client-ID": "&lt;YOUR-CLIENT-ID&gt;"}
params = {"user_login": "Solary"}
response = request.get(endpoint, params=params, headers=headers)
json_response = response.json()
streams = json_response.get('data', [])
is_active = lambda stream:stream.get('type') == 'live'
streams_active = filter(is_active, streams)
at_least_one_stream_active = any(streams_active)
if at_least_one_stream_active:
    client = Client(&lt;Your Account SID&gt;, &lt;Your Auth Token&gt;)
    client.messages.create(body='LIVE !!!',from_=&lt;Your Trial Number&gt;,to=&lt;Your Real Number&gt;)
</code></pre><p>只留下了16行代码！</p><h3 id="--7">避免重复通知</h3><p>这段代码的效果很好，但是如果这段代码在服务器上每分钟执行一次，我们喜欢的主播一开启直播，我们就会每分钟都收到一条短信。</p><p>我们需要让程序知道它已经给我们发了主播上线直播的短信通知，别再重复发短信了。</p><p>好的消息是 Twilio API 提供检索历史消息的方法，因此我们仅仅需要检索发送的历史消息中是否包含我们已经发送过的主播正在直播的消息。</p><p>如下是我们要做的伪代码：</p><pre><code>if favorite_twitcher_live and last_sent_sms is not live_notification:
    send_live_notification()
if not favorite_twitcher_live and last_sent_sms is live_notification:
    send_live_is_over_notification()
</code></pre><p>使用这种方法，我们将会在直播开始和结束后都接收到短信。这样我们就不会收到重复信息了。- 现在完美了么？让我们继续编码吧：</p><pre><code class="language-python"># reusing our Twilio client
last_messages_sent = client.messages.list(limit=1)
last_message_id = last_messages_sent[0].sid
last_message_data = client.messages(last_message_id).fetch()
last_message_content = last_message_data.body
</code></pre><p>现在让我们再一次将代码合起来：</p><pre><code class="language-py">import requests
from twilio.rest import Client
client = Client(&lt;Your Account SID&gt;, &lt;Your Auth Token&gt;)
endpoint = "https://api.twitch.tv/helix/streams?"
headers = {"Client-ID": "&lt;YOUR-CLIENT-ID&gt;"}
params = {"user_login": "Solary"}
response = request.get(endpoint, params=params, headers=headers)
json_response = response.json()
streams = json_response.get('data', [])
is_active = lambda stream:stream.get('type') == 'live'
streams_active = filter(is_active, streams)
at_least_one_stream_active = any(streams_active)
last_messages_sent = client.messages.list(limit=1)
if last_messages_sent:
    last_message_id = last_messages_sent[0].sid
    last_message_data = client.messages(last_message_id).fetch()
    last_message_content = last_message_data.body
    online_notified = "LIVE" in last_message_content
    offline_notified = not online_notified
else:
    online_notified, offline_notified = False, False

</code></pre><p>完成了！</p><p>你现在拥有一段不到 30 行的 Python 代码，可以在你喜欢的主播上线或者离线的时候发送短信通知给你而且不会重复发送信息给你。</p><p>我们现在需要一种方法去托管代码，并且每X分钟执行一次这个程序。</p><h3 id="--8">托管代码的需求</h3><p>我们将使用 Heroku 去托管、执行该代码。Heroku 是一种简便的托管 app 到 web 的方式。Heroku 的缺点是比起其他的解决方案，价格方面会昂贵一些。幸运的是，他们有一个慷慨的免费计划允许我们做我们所有想做的事。</p><p>如果你之前没有<a href="https://www.heroku.com/">Heroku 账户</a>，那就创建一个吧。你同时也需要 <a href="https://devcenter.heroku.com/articles/heroku-cli#download-and-install">下载并且安装Heroku客户端</a>。</p><p>现在你需要将你的 Python 脚本放到自己的文件夹内，记得加一个 <code>requirements.txt</code> 文件在里面。文件内容的开头如下：</p><pre><code>requests
twilio
</code></pre><p>这样可以确保 Heroku 下载正确的依赖程序。</p><p><code>cd</code> 进入到该文件夹内同时执行 <code>heroku create --app &amp;lt;app name&amp;gt;</code>。</p><p>如果你进入到你的<a href="https://dashboard.heroku.com/apps">app dashboard</a> 你将会看到你的新 APP。</p><p>我们现在需要去初始化一个 git 仓库并且 push 代码到 Heroku：</p><pre><code>git init
heroku git:remote -a &lt;app name&gt;
git add .
git commit -am 'Deploy breakthrough script'
git push heroku master
</code></pre><p>如今你的 app 已经传到 Heroku，但是它还不可以干任何事。由于这个小脚本无法接受 HTTP 请求，访问 <code>&lt;app name&gt;.herokuapp.com</code> 没法做任何事。但是这并不是一个问题。</p><p>为了让这个脚本全天候执行，我们需要使用一个简单的 Heroku 插件"Heroku Scheduler"。在你的 app 操作空间点击 "Configure Add-ons" 来安装插件。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2019/08/Capture-d-e-cran-2019-08-15-a--12.50.40.png" class="kg-image" alt="Capture-d-e-cran-2019-08-15-a--12.50.40" width="600" height="400" loading="lazy"></figure><p>接下来在搜索框输入 Heroku Scheduler：</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2019/08/Capture-d-e-cran-2019-08-15-a--12.53.12.png" class="kg-image" alt="Capture-d-e-cran-2019-08-15-a--12.53.12" width="600" height="400" loading="lazy"></figure><p>点击搜索结果，并且按下 'Provision' 按钮</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2019/08/Capture-d-e-cran-2019-08-15-a--12.50.59.png" class="kg-image" alt="Capture-d-e-cran-2019-08-15-a--12.50.59" width="600" height="400" loading="lazy"></figure><p>如果你返回到你的 APP 主界面，你将会看到 Heroku Scheduler：</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2019/08/Capture-d-e-cran-2019-08-15-a--12.54.16.png" class="kg-image" alt="Capture-d-e-cran-2019-08-15-a--12.54.16" width="600" height="400" loading="lazy"></figure><p>点击 'Heroku Scheduler' 链接去配置一个任务，点击 'Create Job' 按钮，在这里选择 '10 minutes' 的选项，之后选择执行命令 <code>python &amp;lt;name_of_your_script&amp;gt;.py</code>，最终红点击 'Save job' 按钮。</p><p>虽然到目前为止我们在 Heroku 上使用的所有东西都是免费的，但是 Heroku Scheduler 将会花费 25 美元每个月。而我们的程序是要秒级执行的。因为该脚本需要每 &nbsp;3 秒执行一次，所以每 10 分钟运行该项目，一个月下来将会花费 12 美分。</p><h3 id="--9">建议</h3><p>我希望你喜欢这个项目，并且喜欢自己动手操作的过程。我们通过这不到 30 行代码实现了很多功能。不过这个项目还不够完美，这里我有一些改善的建议：</p><ul><li>发送更多的关于当前直播的信息（正在打的游戏，围观者数等）</li><li>当主播下线的时候，发送直播时长</li><li>不仅仅去发送短信，还可以发送邮件</li><li>同时去监控多个主播</li></ul><p>如果你有其他好主意，欢迎留言告诉我</p><h3 id="--10">总结</h3><p>我希望你喜欢上这篇文章并且通过这篇文章学到东西。我相信这样的项目是学习新工具和新概念的最好方式。最近我做了<a href="https://www.scrapingninja.co/">web scraping API</a>，在做的过程中我也学到很多。</p><p>如果你喜欢这种学习方式并且你想要做更多的事情，请在评论区留言。</p><p>我有许多别的想法，并且我希望你将会喜欢上它们。如果你使用这段代码实现了别的东西，请一定分享给我啊。我相信这段代码有很多可能性。<br>Happy Coding.</p><p>Pierre</p><h3 id="--11">不要错过我下一篇文章</h3><p>你可以订阅我的<a href="https://www.daolf.com/stay_updated/">栏目</a>。</p><p>原文：<a href="https://www.freecodecamp.org/news/20-lines-of-python-code-get-notified-by-sms-when-your-favorite-team-scores-a-goal/">A Python project in 30 lines of code: how to set up an SMS notification when your favorite Twitcher is streaming</a>，作者：<a href="https://www.freecodecamp.org/news/author/pierreda/">Pierre de Wulf</a></p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ 想去谷歌、亚马逊和苹果工作？请收下这份简历写作指南 ]]>
                </title>
                <description>
                    <![CDATA[ 在这篇文章里，我想和大家详细分享一下我是怎么制作简历，获得 Google、Facebook、Amazon、Microsoft、Apple 等公司的面试机会的。 就是这份简历让我获得招聘者的青睐！ 2017 年，我上大四时制作的简历我通过海投（即在线申请）获得了这些大公司的面试机会。 在线申请是一种最常见的求职方式，同时也是一种效率很低的方式——因为竞争太激烈了。然而，我所有的面试机会都是通过在线申请获得的。 我是如何做到的？ 我会在这篇文章中一点点地分享：  * 我在制作简历时是如何取舍的  * 为什么我相信这份简历可以帮助我获得面试机会  * 你如何制作一份更好的简历 我之所以写这篇文章，是因为我刚开始找工作的时候经常碰壁。那时候我希望有一份特别出色的示例简历让我参考，给我帮助。 本文分为如下几个章节：  1. 采用最常见的求职方式，却得不到面试机会——我第一次求职失败的趣事  2. 评估简历制作：向前一步——思考提高获得面试机率的不同策略  3. 结合示例，学习如何书写一份出色的简历——逐行分析下列要点：  * 第一印象需要的必要元素  * 你是谁  * 联系方 ]]>
                </description>
                <link>https://www.freecodecamp.org/chinese/news/writing-a-killer-software-engineering-resume/</link>
                <guid isPermaLink="false">5e3bdb2bca1efa04e196b0cf</guid>
                
                <dc:creator>
                    <![CDATA[ FengJiaJun ]]>
                </dc:creator>
                <pubDate>Thu, 06 Feb 2020 15:38:11 +0000</pubDate>
                <media:content url="https://chinese.freecodecamp.org/news/content/images/2020/02/1_FGBGYSyUz0yhcjms6B_ULg-2.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>在这篇文章里，我想和大家详细分享一下我是怎么制作简历，获得 Google、Facebook、Amazon、Microsoft、Apple 等公司的面试机会的。</p><p>就是这份简历让我获得招聘者的青睐！</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://camo.githubusercontent.com/2487ee539366c0d49aa8418c3ba197d8ba1e29d2/68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f4935423645564171776b586e474b386c6b706b64724d776f51616959786b4d312d682d44" class="kg-image" alt="68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f4935423645564171776b586e474b386c6b706b64724d776f51616959786b4d312d682d44" width="600" height="400" loading="lazy"><figcaption>2017 年，我上大四时制作的简历</figcaption></figure><p>我通过<strong>海投</strong>（即在线申请）获得了这些大公司的面试机会。</p><figure class="kg-card kg-image-card"><img src="https://camo.githubusercontent.com/94f97e9d812ee338acf575cd12854d165143fab8/68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f7458503447675245314e35526b5867596d34467138474e3844786b567a4169416e733348" class="kg-image" alt="68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f7458503447675245314e35526b5867596d34467138474e3844786b567a4169416e733348" width="600" height="400" loading="lazy"></figure><p>在线申请是一种最常见的求职方式，同时也是一种效率很低的方式——因为竞争太激烈了。然而，我所有的面试机会都是通过在线申请获得的。</p><p>我是如何做到的？</p><p>我会在这篇文章中一点点地分享：</p><ul><li>我在制作简历时是如何取舍的</li><li>为什么我相信这份简历可以帮助我获得面试机会</li><li>你如何制作一份更好的简历</li></ul><p>我之所以写这篇文章，是因为我刚开始找工作的时候经常碰壁。那时候我希望有一份特别出色的示例简历让我参考，给我帮助。</p><p>本文分为如下几个章节：</p><ol><li><strong>采用最常见的求职方式，却得不到面试机会</strong>——我第一次求职失败的趣事</li><li><strong>评估简历制作：向前一步</strong>——思考提高获得面试机率的不同策略</li><li><strong>结合示例，学习如何书写一份出色的简历</strong>——逐行分析下列要点：</li></ol><ul><li>第一印象需要的必要元素</li><li>你是谁</li><li>联系方式</li><li>教育背景</li><li>工作经历</li><li>个人项目</li><li>掌握技能</li></ul><h2 id="-">采用最常见的求职方式，却得不到面试机会</h2><h4 id="--1">在线申请</h4><p>你可能搜索到各个公司发布的在线申请职位的链接。典型的求职网站会列举一系列的职位名称。看到这些名称你觉得自己都能胜任，然而，当你打开链接，阅读岗位描述和岗位最低要求时，你可能就懵了。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://camo.githubusercontent.com/88fa9a3af55131748fdf10550cd47ba3de5601c2/68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f5a6b4e6c7259354959707a326276326a51573333447965657478617144577a5a42785947" class="kg-image" alt="68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f5a6b4e6c7259354959707a326276326a51573333447965657478617144577a5a42785947" width="600" height="400" loading="lazy"><figcaption>Google Careers 页面</figcaption></figure><p>以下是一则招聘启事，工作描述中有一大串单词，你或许从未听说过，或许可能听说过，或许希望自己曾经听说过。页面右上角有一个可爱的<strong>“申请”</strong>按钮。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://camo.githubusercontent.com/0668092cea1c8d9cd60f82c6a8504155d2c8d459/68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f4d35774e38454233625238716e786156623842644e4c387945716f417347487a634f7136" class="kg-image" alt="68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f4d35774e38454233625238716e786156623842644e4c387945716f417347487a634f7136" width="600" height="400" loading="lazy"><figcaption>Google 的工作描述</figcaption></figure><figure class="kg-card kg-image-card"><img src="https://camo.githubusercontent.com/8b9befe62bebd3f960042c6755de4f389328ffd3/68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f305a725a5946526b72754e5458346b4c4a444634424551696b695076416e565358647330" class="kg-image" alt="68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f305a725a5946526b72754e5458346b4c4a444634424551696b695076416e565358647330" width="600" height="400" loading="lazy"></figure><p>尽管不太确定自己是否能够胜任，你还是点击了“申请”按钮，因为你需要一份工作。</p><p>所以你填写了申请表格，点击“提交”按钮，并且等待和期盼着一个积极的答复。</p><p>你的申请结果会有多种：</p><ul><li>电话面试？（哇！有可能会得到这份工作耶！）</li><li>马上被拒绝？（该死，从头再来吧）</li><li>石沉大海？（天哪，至少要礼貌性地拒绝我一下吧）</li></ul><h4 id="--2">不断重复，直到成功......对吗？</h4><p>遗憾的是，大部分人在找工作或实习时都会经历这样的过程。</p><p>同时申请几家公司，被拒绝或石沉大海；向更多公司申请，继续被拒绝或石沉大海......就这样一直重复又重复。</p><p>我们为什么要这么对自己？我们花费大量时间去做重复性的工作，却一遍又一遍得到同样的、令人失望的结果。</p><p>因为这是每一个人为了获得面试都要去做的事，对吧？因为我们至少正在朝着正确的方向努力，并拥有一线希望，对吧？不然还能有什么方法获得面试机会？</p><h2 id="--3">评估简历制作：向前一步</h2><blockquote>“挫折和失败是通往成功的两块最稳靠的踏脚石。”——戴尔·卡耐基（Dale Carnegie）, 《如何赢得朋友及影响他人》一书的作者</blockquote><p>我们可以思考通过这两种方式去处理申请面试失败的问题：</p><ul><li>将你的申请/简历放到显微镜下</li><li>对你申请面试机会的过程提出质疑</li></ul><p>这篇文章专注于第一点，因为无论你最终通过什么方式获得面试机会，<strong>基本上每个公司都会以你的简历作为评估的基础</strong>。因此，我们将在显微镜下检查我的简历，专注学习如何书写一份出色的简历。</p><p>通过在线申请获得一个面试机会是极具挑战性的，因为你的简历必须经过很多阶段才能够提交到招聘经理的手中。</p><p>你的简历必须得通过<a href="https://www.themuse.com/advice/a-job-hunters-guide-to-getting-your-resume-past-the-ats-and-into-human-hands" rel="nofollow">在线关键词过滤器</a>，在招聘者 6 秒钟的审核筛选中脱颖而出，并且符合招聘经理的期望——他将决定你是否值得一个面试机会。</p><p>尽管困难重重，我还是通过在线申请获得了所有的面试机会。<strong>怎么做到的？</strong><em>尝试和犯错</em>。从大学二年级开始，我申请了数百个不同的软件工程职位。</p><p>在刚开始在线申请的时候，我被拒绝了很多次。但随着时间的推移，我学会了如何去适应失败。到大四的时候，我几乎每给一家公司投简历都能获得面试机会。</p><p>而帮助我获得面试机会的简历正是文章开头的那份。</p><p>我花了<strong>四年</strong>时间去迭代和实际测试才最终制作出这份简历。我从这些经历中整理出一份<strong>简历书写原则</strong>清单，希望帮助你优化软件开发者简历。正是这些原则帮助我找到理想的工作，它们也可以帮助你找到理想的工作。</p><p>尽管我花费了<strong>四</strong>年时间才明白这些原则，但是你不必经历我的坎坷，你现在就可以从这篇文章学习它们。</p><p>我的目标是成为“如何获得软件工程师面试机会”相关问题的一站式服务中心，这样你就不必浪费大量时间参考网络搜索结果，以寻求“如何编写简历以获得软件工程师面试机会”的最佳答案。</p><p>你可以将宝贵的时间花费在书写一份出色的简历上。</p><p>从现在开始，从这篇文章开始，从我的经历中吸取经验，让我们开始逐步分析我的简历！</p><h2 id="--4">结合示例，学习如何书写一份出色的简历</h2><blockquote>“方法可以有一百万种或更多，但原则只有几个。抓住原则的人可以有效地选择自己的方法，而尝试方法但忽略原则的人，一定会遇到问题。”——拉尔夫·沃尔多·爱默生（Ralph Waldo Emerson）</blockquote><p>让我们再来看一下这份简历：</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://camo.githubusercontent.com/7e4a8f769a9fa26b8c78e04882158e150b641df6/68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f76626b5a41634f793249446b717949364f676143437349427572675566326d7552704f67" class="kg-image" alt="68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f76626b5a41634f793249446b717949364f676143437349427572675566326d7552704f67" width="600" height="400" loading="lazy"><figcaption>简历：突出显示重点部分</figcaption></figure><h3 id="--5">第一印象需要的必要元素</h3><p><strong>一页就够了</strong></p><p>招聘者不会花一天时间去阅读你的简历。他们浏览一份简历的平均时间不足 6 秒。所以，你的简历应该<strong>简短</strong>且<strong>简洁</strong>。</p><p><strong>章节（标题、教育经历、工作经历、软件项目、技能）</strong></p><p>从上到下按照“优先级”布局各个部分。“个人项目”部分对于正在寻找软件工程职位的人来说是一个独特的必备部分。</p><p><strong>统一的布局+章节字体</strong></p><p>确保每个部分整体看起来协调，以提高可读性。<strong>可读性</strong>是非常重要的。</p><p>那么为什么这种简历会被看中呢？我们来探索一下编号的要点。</p><h3 id="-1-">你是谁（1）</h3><p><em>目标读者：需要制作简历的人们</em></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://camo.githubusercontent.com/ebc10fa0d78f3de80e9432cee707119603f0a2a8/68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f47735863337a30713637444f724c4574687445762d7a6265614843735a69636c584d3248" class="kg-image" alt="68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f47735863337a30713637444f724c4574687445762d7a6265614843735a69636c584d3248" width="600" height="400" loading="lazy"><figcaption>简历：姓名部分</figcaption></figure><p>这部分很简单，用<strong>清晰易读的大字体</strong>把你的名字放在简历的顶端。</p><p>姓名没有必要使用花哨的颜色或者字体，用朴实简单的字体就好。因为你想让招聘者知道你是谁，所以就要让他们在一英里外就能看到你的名字。招聘者需要做的工作越少，就越开心，他们开心了才更有可能给你提供面试机会。</p><p><strong>概括：</strong>让招聘者方便浏览并找到你的名字。</p><h3 id="-2-">联系方式（2）</h3><p><em>目标读者：需要制作简历的人们</em></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://camo.githubusercontent.com/8ad5a9ee321ccf6643af925bcb51e0c50ad4b41f/68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f386469616d374b5757372d77446f4671797135505a726f655a636a4e74464c362d2d354e" class="kg-image" alt="68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f386469616d374b5757372d77446f4671797135505a726f655a636a4e74464c362d2d354e" width="600" height="400" loading="lazy"><figcaption>简历：联系方式部分</figcaption></figure><p>你的联系方式应该和你的名字一样容易识别。这很重要，是全世界最重要的事情之一，<strong>请不要搞砸这件事</strong>，不然招聘者怎样才能联系到你？</p><p><strong>概况：</strong>填写正确的联系方式，否则没有人会联系你。</p><h3 id="-3-">教育背景（3）</h3><p><em>目标读者：拥有学位的，需要制作简历的人们</em></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://camo.githubusercontent.com/4e9023d9b02d2194d26a47a75fa55891f93beeec/68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f3462495a47314c71772d48337a4951584d48724f6a745331794a515946684f6e49364444" class="kg-image" alt="68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f3462495a47314c71772d48337a4951584d48724f6a745331794a515946684f6e49364444" width="600" height="400" loading="lazy"><figcaption>简历：教育背景的小标题部分</figcaption></figure><p>如果你正在读大学或者上过大学，那么教育背景应该是你简历正文的第一部分，因为上大学是一项巨大的成绩。根据美国劳工统计局的数据，2017 年，在 16 到 24 岁之间的高中毕业生中只有 66.7% 的人就读高等院校。所以，你要以此为荣并且把教育背景加入到简历中！</p><p>一看到教育背景，招聘者就会明白你受过教育，这是至关重要的，因为技术在不断发展。此外，该部分内容也说明了你之前的成功，因此，请确保要将教育背景加入到你的简历中。</p><p><strong>概括：</strong>填写你在哪里接受过高等教育</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://camo.githubusercontent.com/02f41fdd92d46f97c485034b74c9dcac69c5734e/68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f344c366d4f50646f6c4d47626545743675345a6b644649334e41373632484d746f516653" class="kg-image" alt="68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f344c366d4f50646f6c4d47626545743675345a6b644649334e41373632484d746f516653" width="600" height="400" loading="lazy"><figcaption>简历：教育背景的课程部分</figcaption></figure><p>确保简历中包含与你申请的职位<strong>相关的</strong>学科。尽管有关“意大利美食史”的课程听起来非常吸引人，但是它不应该出现在一份应聘计算机科学领域的工作的简历中。</p><p>这样会极大地帮助招聘者尽快决定你是否适合这个职位。如前所述，一个开心的招聘者会更愿意给你面试机会。</p><p><strong>概括：</strong>仅包含相关的课程信息。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://camo.githubusercontent.com/8a9be3579d9740d83f6041d853e3ab4174552d8e/68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f4a6a58447245793848665a5046484768554b6d6a4a42766f4e53314a77354959395a3457" class="kg-image" alt="68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f4a6a58447245793848665a5046484768554b6d6a4a42766f4e53314a77354959395a3457" width="600" height="400" loading="lazy"><figcaption>简历：教育背景的 GPA 部分</figcaption></figure><p>在我们讨论 GPA（绩点）之前，提醒一下大家简历的主要目的。</p><p>简历的主要目的是简洁地突出你的知识、技能和成就。你想在简历中加入自己引以为傲的东西，而且想给招聘者留下深刻的印象。你想以最好的方式描绘自己的个人形象，让招聘者和人事经理想要面试你。</p><p>现在回到 GPA。你的 GPA 是否打动人，这很明显。如果 GPA 低于 3.0，甚至可能毁掉你的面试机会，那么不要将它放到简历中。</p><p>如果你的 GPA 在 3.0-3.2 之间，这就需要斟酌了。根据个人经验，我曾经与一些要求 GPA 不低于 3.2 的公司交谈过，但是这些公司主要是金融公司或者量化公司。大部分软件公司很少考虑你的 GPA。如果你的 GPA 高于 3.2，那么就把它写在简历上吧。</p><p>如果你的 GPA 比较低，也不用担心，这时候就考验你的创造力了！由于我大一的工程课程和人文课程的成绩不理想，我的总体 GPA 只有 3.2。但是，当我完成大一学业并开始主修本专业的课程，我的专业 GPA（根据专业课程计算得出）为 3.44，GPA 得到了显著提高。</p><p>（译者注：国内同学们在处理简历中的 GPA 部分时应基于国内的实际情况。）</p><p>其实可以用很多方法展示自己的优势，即使有时候你感觉障碍重重。我在这里只是介绍了一个包装自己的示例，还有很多方法等着你去挖掘。充分接受你的失败和成就，因为它们成就了你。在写简历的时候保持诚恳和真实，并且始终专注于突出自己的优势。</p><p><strong>概括：</strong>你的 GPA 并不能定义你。简历的目的是展现自己的最佳状态。永远不要忘记这一点！做到这一点要有创造力，不要说谎。</p><h4 id="-4-">工作经历（4）</h4><p><em>目标读者：有软件工程工作经验的学生</em></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://camo.githubusercontent.com/1734075deefb04b52cef686160879c6162a2421d/68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f45346e774253483651644e5730514566557031434339546c733150777275647856394931" class="kg-image" alt="68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f45346e774253483651644e5730514566557031434339546c733150777275647856394931" width="600" height="400" loading="lazy"><figcaption>简历：工作经历部分</figcaption></figure><p>如果你是一个没有任何工作经验的大学生，不要害怕！这是我大四的时候申请全职工作的简历。我很幸运能够从暑期实习中积累相关的工作经验，但是工作经历对于赢得面试邀请并不是绝对必要的。如果你没有什么工作经历可写，那就直接跳到“个人项目”部分。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://camo.githubusercontent.com/3a5de6efa6c14e8f2ebfa7a4c8701b64430d15b2/68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f384b6278355a774c77383967333279706432514a57455a684f574374744d6b7556372d44" class="kg-image" alt="68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f384b6278355a774c77383967333279706432514a57455a684f574374744d6b7556372d44" width="600" height="400" loading="lazy"><figcaption>简历：工作经历的小标题部分</figcaption></figure><p>拥有过去的工作经历是很棒的，但是，当你在寻找一份软件工程工作的时候，并不是什么工作经历都需要放到简历里。只需要把与你想要申请的工作<em>相关的</em>经历放在简历里。例如，如果你曾在零售业做过收银员或在食品行业做过服务生，不要将它们加入到简历中！你在处理钱或者供应食物方面的能力并不能说明你能胜任一名软件工程师。</p><p>招聘者的目标是匹配应聘者与岗位招聘需求。因此，你一定要写明与当前申请的岗位相关的工作经历。</p><p>这意味着你要制作一系列简历，每一份都是针对你所感兴趣的不同工作专门制作的。这就像申请大学一样，申请不同的大学，需要写不同的申请书。每所大学都有自己的价值观、文化和愿景，因此几乎不可能编写一份通用的、适合所有大学的申请书。因此，你需要根据自己申请的工作来制作相应的简历。</p><p>最后，请注意工作经历的日期。从最近的工作经历开始，降序排列。对于大学生而言，这意味着要包含最新并且相关的工作经历。没有人关心你初中或者高中取得的成就。如果工作经历已经过时，那就不要把它放在简历里。</p><p><strong>概括：</strong>为你要申请的每个工作制作相应版本的简历。不要把同一份简历用来申请不同的工作。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://camo.githubusercontent.com/06618298c57b6bb0121aff8df45e4024d7e189d3/68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f626279376c4a514b465169516f38365a647a344b3077334e554f3470673942633179436a" class="kg-image" alt="68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f626279376c4a514b465169516f38365a647a344b3077334e554f3470673942633179436a" width="600" height="400" loading="lazy"><figcaption>简历：工作经历的描述部分</figcaption></figure><p>简历中最难的部分就是工作描述，因为你要以有意义且令人印象深刻的方式完全囊括过去工作经历的成就。</p><p>让你的工作描述有意义且令人印象深刻指的是什么？指的是，让招聘者认为：“这个人拥有的能力就是我们正在寻找的，这个人在过去的工作中发挥了重大作用，我们想面试这个人，也可能会雇佣他。”</p><p><strong>工作经历部分的主要目的是展示你在一个重要组织中工作时所产生的影响和价值。</strong> 你的目标是向招聘人员表明，你可以做这份工作，而且可以把它们做好。</p><p>为了在简历中最好地展示我的成就，我采用了如下强大的公式。该公式由 Google 前人事运营高级副总裁拉斯洛·波克（Laszlo Bock）提出：</p><blockquote>“通过……实现了……的效果，提高或者改善（衡量标准）……。” — 拉斯洛·波克</blockquote><p>在我的简历的本节的第一个重点中，你可以清楚地看到这一点。</p><p><strong>通过集成油量表传感器并设置电池节电状态，将设备的电池寿命提高了 8%。</strong></p><p>我们分解一下这句话：</p><p><strong>实现了……的效果——</strong>提高了设备的电池寿命</p><p><strong>提高或者改善（衡量标准）……——</strong>8%</p><p><strong>通过……——</strong>集成油量表传感器并设置电池节电状态</p><p>我的简历中的每个句子几乎都以某种形式使用了该公式。</p><p>为了帮助你完成这个过程，我罗列了你可以并且应该使用的动词：</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://camo.githubusercontent.com/d8ae68568de67b4bd24fb3ec46f5141a6b668ddd/68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f3038554e43597632364435687a383748462d586b48497a442d473150426a365830507345" class="kg-image" alt="68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f3038554e43597632364435687a383748462d586b48497a442d473150426a365830507345" width="600" height="400" loading="lazy"><figcaption>动词词库</figcaption></figure><p>你可以这么使用：</p><ul><li>通过 ___将___提高/减少了___（Increased/Reduced ___ by ___ through/by ___）</li><li>为___重新设计___（Redesigned ___ for ___）</li><li>通过___为___实施___（Implemented ___ for ___ by ___）</li><li>通过___将___提高了___（Improved ___ by ___ through ___）</li><li>为了___将___应用于___（Utilized ___ to ___ for ___）</li><li>通过___为___集成___（Integrated ___ by ___ for ___）</li><li>通过___为___合并___（Incorporated ___ for ___ by ___）</li></ul><p><strong>概括：</strong>使用“通过……实现了……的效果，提高或者改善（衡量标准）……”句式，这是向招聘人员/人事经理展示你能力的最有效、最直观的方式。<br></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://camo.githubusercontent.com/f2645cb2380f1bc8614efd70e57553b6ecadab1f/68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f6b654f2d416e586f53536543526646796e4f6c726e4d7870717338323243575a434c4246" class="kg-image" alt="68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f6b654f2d416e586f53536543526646796e4f6c726e4d7870717338323243575a434c4246" width="600" height="400" loading="lazy"><figcaption>简历：工作经历中所用技术知识部分</figcaption></figure><p>最后，我在每一项工作经历末尾写下所使用的技能，进而使招聘者能够真正了解我熟悉的技术。</p><p>这样，我的简历底部有一处简洁但是清晰的“掌握技能”部分。招聘人员看到简历底部的时候，可以看到我熟悉的计算机语言，从而立即了解到我的能力。如果他们希望了解我是否熟悉特定的工具、框架、类库，那么他们可以在我的个人项目中找到。</p><p><strong>概括：</strong> 当你在线上申请工作的时候，在简历的工作经历中写明你使用过的技术，这会帮助你通过关键词过滤，也会使招聘人员对你具备的经验和知识有更清晰的了解。</p><h4 id="-5-">个人项目部分（5）</h4><p><em>目标读者：正在寻找软件工程实习/全职职位的学生 + 软件工程职位申请人</em></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://camo.githubusercontent.com/d4e27fc92375988adba1e43070a126e247efa99d/68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f6e434273337053734f4a58676d484432526c63426e433333556267356976356f714f2d36" class="kg-image" alt="68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f6e434273337053734f4a58676d484432526c63426e433333556267356976356f714f2d36" width="600" height="400" loading="lazy"><figcaption>简历：个人项目部分</figcaption></figure><figure class="kg-card kg-image-card"><img src="https://camo.githubusercontent.com/76f41db921ad97a48b2afeb7a1437f416925deec/68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f5a6e3452666e50584c41594a38396b6e4e51726f37585a63545641502d4d44654f754932" class="kg-image" alt="68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f5a6e3452666e50584c41594a38396b6e4e51726f37585a63545641502d4d44654f754932" width="600" height="400" loading="lazy"></figure><p>或许我反复提及这个部分，你会更理解这部分的重要性，<strong>特别是对于那些没有工作经历的人来说</strong>。</p><blockquote>个人项目对于激发招聘者和人事经理的兴趣来说非常重要，因为它展示了你对编程充满热情。</blockquote><p>个人项目可以是任何与编程相关的项目，无论是 Python 脚本、Java 程序、Web 页面、移动应用还是其他。这些项目表明你对计算机科学真正感兴趣，而且强烈希望成为一名软件工程师，因为你愿意在学业任务之外创造一些自己的东西。</p><p>自己独自开发的项目会给人留下深刻印象。它表明你乐于拓展计算机科学知识，并且你不害怕为此付出额外的努力。总的来说，这种方式极好地展现了你的主动性和真正兴趣。</p><p>个人项目的另一个益处是你必将获得到真实工作环境中需要的技能。虽然你在学校中用不到，但是在工作中却会用到标准框架/类库，了解全栈 Web 开发，创建移动应用，搭建开发环境或者使用 VIM 高效编程。</p><blockquote><strong>建议：</strong>制作一个个人网站，展示和记录你的个人项目。这是一个小技巧，可以将你的简历从一页纸“虚拟化延伸开来”。</blockquote><p>再说一遍，个人项目可以展示出你付出热情和努力去掌握一些技能，而这些技能正是你尚未获得的工作所要求的。你的软件工程简历<strong>必须</strong>包括这个部分。</p><blockquote>“无论如何，请构建一些 iPhone 应用、Web 应用！坦白说，只要你在构建项目，完成了多少不重要。你可以在一周内完成相当多的项目。这意味着，大约工作 3-4 个周末，你的简历就可以从一般般地变得极为出彩。说真的，我已经看到很多人都在这样做。”——盖勒·麦克道尔（Gayle McDowell）, 前谷歌工程师，《程序员面试金典》作者</blockquote><p>如果你<strong>真的</strong>想要去一家公司工作，那么让你脱颖而出的最佳方式就是编写一个与你申请的工作直接相关的个人项目。</p><p>我通过学习 Udacity 上的免费在线交互式计算机图形学课程，得到了在 Autodesk 公司实习的机会。这个课程教会我使用 JavaScript 类库 three.js。碰巧的是，Autodesk 开设了一个软件工程实习职位，以寻找具有全栈网站和 three.js 知识的人（就是我啦）。</p><p>请谨慎使用该策略，因为它并不完美。这仅对像 Autodesk 这样没有通用软件工程实习岗位的公司（例如 Google、Facebook 和 Microsoft）有效。当你处于职业生涯早期的时候，最好归纳学习计算机科学不同领域的知识。不过，如果你想要去一个特定公司，这是一个值得尝试的方法。</p><p><strong>概括：</strong>个人项目是迫切需要的。如果你还没有准备好，现在马上去准备！你不会失去什么，反而会赢得一切。</p><h4 id="-6-">掌握技能（6）</h4><p><em>目标读者: 任何正在寻找软件工程工作的人</em></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://camo.githubusercontent.com/b47292402c3a1321fc3efbb69590294e33ee017c/68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f70427470475156747a78563651514f3748756e6649394a494a467677545a765654533942" class="kg-image" alt="68747470733a2f2f63646e2d6d656469612d312e66726565636f646563616d702e6f72672f696d616765732f70427470475156747a78563651514f3748756e6649394a494a467677545a765654533942" width="600" height="400" loading="lazy"><figcaption>简历：掌握技能部分</figcaption></figure><p>标题说明了一切。保持本节的内容简单、简洁和干净。列举出所有你想要招聘者知道的你拥有的相关技能。你在此处列出的技能与职位描述中“资格”部分中的关键技术词越匹配，那你获得面试的机会就越大！</p><p>这将使你轻松通过在线关键字扫描器。<strong>然而，并不是通过关键字扫描器就万事大吉了</strong>。最终还是招聘人员查看你的简历，决定要不要给你面试机会。但如果他们认为你很适合这份工作，会更愿意邀请你面试！</p><p>这部分还要注意一点，不要仅仅为了表明自己很合适这份工作，就在工作描述中列出所有的关键字。在面试的时候，你提及的技能，招聘人员都会问你。</p><p>写清楚你的熟悉程度，给自己留点余地。由于你可能并没有每天练习你知道的所有语言，因此，在该部分写明语言熟练程度，可以帮助招聘人员及时了解到你最熟练的语言以及你熟悉的其他语言。</p><p>我选择使用两个等级描述自己的熟练程度：</p><ul><li><strong>精通</strong>——我非常熟悉该语言，使用起来很舒服，可以立即进行面试。</li><li><strong>熟悉</strong>——我过去使用过的语言，目前可能不熟悉，但是可以在一定的时间内重拾起来。</li></ul><p>也可以使用以下等级：</p><ul><li>高级、中级、基础（Advanced/Intermediate/Basic）</li><li>专业级、高级、中级（Expert/Advanced/Intermediate）</li><li>熟练、精通、熟悉（Fluent/Proficient/Familiar）</li><li>工作知识、基础知识（Working Knowledge/Basic Knowledge）</li></ul><p><strong>概括：</strong>当在线申请特定工作时，请对照工作描述在简历中添加必要的技术关键字，以加大获得面试的机会。</p><h2 id="--6">要点梳理</h2><ul><li>确保你的姓名和联系方式正确且清晰。</li><li>确保包括你的教育背景，如果你的 GPA 偏低，那就别写上或者用创造性方式写上。</li><li>利用“通过……实现了……的效果，提高或者改善（衡量标准）……”公式有效地展示你在过去的工作中做出的贡献。</li><li>创建个人项目——特别是如果你之前没有从事过技术工作。</li></ul><h2 id="--7">最后的思考</h2><p>尽管这份简历让我赢得了众多软件工程公司的面试机会，但我并不能保证，如果你遵循我在此说明的所有原则和方法，你就可以收到面试邀请。</p><p>这是我在 2017 年大四时候的简历，展示了我求职软件工程师的旅程和对该职位的兴趣。复制它对你并无裨益，因为技术在不断发展，人才招聘也在不断变化。因此，你不应抄袭，而是参考我的简历。</p><p>你可以参考我的简历和本文，以此为基础更好地写作简历，更有效地与人沟通。你应专注于学习如何最好地向他人展示你的技能和成就。这本身就是一项无价的终身技能，无论你走到哪里，都会需要它。</p><p>当你编写你的简历的时候，记住——做你自己！</p><p>制作简历是列举<strong>自己的</strong>成就、成绩和兴趣。你的目标展示出最棒的自己。最后，希望你享受这个过程！</p><p>我是从 <a href="https://careercup.com/resume" rel="nofollow">CareerCup</a> 获得这个简历模板的，如果你有兴趣，也可以使用。该网站由《程序员面试金典》的作者盖勒·麦克道尔（Gayle McDowell）创建。</p><p>根据我的个人经验，简历<strong>最重要的</strong>是内容，所以上面讨论的编写简历原则可以应用于任何模板。</p><p>原文：<a href="https://www.freecodecamp.org/news/writing-a-killer-software-engineering-resume-b11c91ef699d/">https://www.freecodecamp.org/news/writing-a-killer-software-engineering-resume-b11c91ef699d/</a>，作者：Terrence Kuo</p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
