<?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[ Casey Cui - 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[ Casey Cui - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/chinese/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Sat, 09 May 2026 13:42:15 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/chinese/news/author/casey/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ 什么是 Web3？解读未来的去中心化网络 ]]>
                </title>
                <description>
                    <![CDATA[ 如果你读到这篇文章，那么你已经是当代互联网世界的一员了。我们现在使用的网络和10年前大不相同。所以，互联网是怎么演化的，更重要的是 ——— 接下来它会如何发展？为什么我们需要在意这些问题呢？ 历史教会我们，这些变化都会是重要的。 我将在这篇文章里讲述互联网的演化、发展走向，以及为什么了解这些事情很重要。 想象一下网络是如何与你的日常生活息息相关的。网络如何改变了社会，还有社交媒体平台、手机应用......而现在，网络正在经历又一个模式的转换。 互联网的演化 互联网在近年来变化非常大，很多应用都完全脱离早年 [https://en.wikipedia.org/wiki/History_of_the_Internet] 的样子了。互联网的演化一般来说被分为三个阶段：Web 1.0, Web 2.0 和 Web 3.0。 什么是 Web 1.0？ Web 1.0 是互联网的第一个迭代。参与者是消费互联网内容的人群，而创造者是那些典型的网站开发者。当时的网站内容基本只有文字和图片的形式。Web 1.0 大致从1991年延续至2004年。 Web 1.0 时期的网站是由静态网页组成的 ]]>
                </description>
                <link>https://www.freecodecamp.org/chinese/news/what-is-web3/</link>
                <guid isPermaLink="false">635b527c509503074debeb68</guid>
                
                    <category>
                        <![CDATA[ Web3 ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Casey Cui ]]>
                </dc:creator>
                <pubDate>Fri, 28 Oct 2022 03:29:00 +0000</pubDate>
                <media:content url="https://chinese.freecodecamp.org/news/content/images/2022/10/web3-future-of-web.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文：</strong> <a href="https://www.freecodecamp.org/news/what-is-web3/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">What is Web3? The Decentralized Internet of the Future Explained</a>
      </p><!--kg-card-begin: markdown--><p>如果你读到这篇文章，那么你已经是当代互联网世界的一员了。我们现在使用的网络和10年前大不相同。所以，互联网是怎么演化的，更重要的是 ——— 接下来它会如何发展？为什么我们需要在意这些问题呢？</p>
<p>历史教会我们，这些变化都会是重要的。</p>
<p>我将在这篇文章里讲述互联网的演化、发展走向，以及为什么了解这些事情很重要。</p>
<p>想象一下网络是如何与你的日常生活息息相关的。网络如何改变了社会，还有社交媒体平台、手机应用......而现在，网络正在经历又一个模式的转换。</p>
<h2 id="">互联网的演化</h2>
<p>互联网在近年来变化非常大，很多应用都完全脱离<a href="https://en.wikipedia.org/wiki/History_of_the_Internet">早年</a>的样子了。互联网的演化一般来说被分为三个阶段：Web 1.0, Web 2.0 和 Web 3.0。</p>
<h3 id="web10">什么是 Web 1.0？</h3>
<p>Web 1.0 是互联网的第一个迭代。参与者是消费互联网内容的人群，而创造者是那些典型的网站开发者。当时的网站内容基本只有文字和图片的形式。Web 1.0 大致从1991年延续至2004年。</p>
<p>Web 1.0 时期的网站是由静态网页组成的，并没有动态的html。数据和内容由静态文件系统提供而非数据库，网站也几乎没有交互功能。</p>
<p>你可以把 Web 1.0 当作只读互联网。</p>
<h3 id="web20">什么是 Web 2.0？</h3>
<p>我们大多数人主要经历的互联网就是 Web 2.0。你可以把它当作用来互动与社交的网络。</p>
<p>在 Web2 的世界里，你不需要成为一名开发者才能参与创作。许多应用程序的出现让任何人都能轻松地成为内容创作者。</p>
<p>你可以制作并且向世界分享你的所思所想。你也可以上传一个视频，让成千上万的人看到它，并产生交流、互动和评论。</p>
<p>Web2 非常简单，正因为它的简单让越来越多的人更容易地成为创作者。</p>
<p>互联网当前的形式在各方面都非常出色，但在某些领域我们还有很多提升空间。</p>
<h3 id="web20"><strong>Web 2.0 变现与安全性</strong></h3>
<p>在 Web2 的世界里，大部分流行的应用在它们的生命周期中都遵循一个通用的模式。想一想你日常用的那些应用，以及以下示例如何适用于它们。</p>
<h4 id=""><strong>应用变现</strong></h4>
<p>想象一下 Instagram、Twitter、LinkedIn 或 YouTube 等流行应用程序的早期阶段，以及如今的它们和当初有多么不同。这个变化过程通常是这样的：</p>
<ol>
<li>公司推出应用</li>
<li>它可以吸引尽可能多的用户</li>
<li>然后将其用户群体货币化/变现</li>
</ol>
<p>当开发人员或公司发布了流行的应用程序时，随着该应用程序越来越受欢迎，用户体验通常是非常流畅的。这就是它们能够迅速获得吸引力的主要原因。</p>
<p>起初，许多软件公司并不担心变现问题。他们完全专注于增长和锁定新用户 ——— 但最终他们必须开始盈利。</p>
<p>他们还需要考虑外部投资者的作用。通常，风险投资等的注入会限制我们今天使用的许多应用程序的生命周期，并且最终对用户体验产生负面影响。</p>
<p>如果一家构建应用程序的公司接受风险投资，其投资者通常期望获得数十或数百倍的投资回报。</p>
<p>这意味着，公司通常无法采用自然的可持续增长模式，而是经常被推向两条路径：广告投放或出售个人数据。</p>
<p>对于谷歌、Facebook、Twitter 等许多 web2 公司来说，更多的数据会带来更个性化的广告。这会带来更多的点击量，并最终带来更多的广告收入。用户数据的开发利用和集中处理是我们今天所知所用的网络如何运行的核心。</p>
<h4 id=""><strong>安全与隐私</strong></h4>
<p>Web2 应用程序反复经历<a href="https://en.wikipedia.org/wiki/List_of_data_breaches">数据泄露</a>。甚至有<a href="https://haveibeenpwned.com/">网站</a>致力于追踪这些违规行为，并在你的数据遭到泄漏时告诉你。</p>
<p>在 web2 的世界中，你无法控制你的数据或数据的存储方式。事实上，公司经常在未经用户同意的情况下跟踪和保存用户数据。然后，所有这些数据都由负责这些平台的公司拥有和控制。</p>
<p>生活在担心言论自由会产生负面影响的国家的用户也处于危险之中。</p>
<p>如果政府认为有人发表了与他们的宣传相悖的观点，政府通常会关闭服务器或没收银行账户。借助集中式服务器，政府可以轻松干预、控制或关闭相应的应用程序。</p>
<p>由于银行也是数字化的并且处于集中控制之下，政府也经常对其进行干预。在动荡、极端通货膨胀或其他政治不稳定时期，他们可以关闭对银行账户的访问或限制资金的使用。</p>
<p>Web3 旨在通过从根本上重新思考我们如何从头开始构建应用程序并与应用程序交互，来解决上述的这些缺点。</p>
<h2 id="web30">什么是 Web 3.0？</h2>
<p>web2 和 web3 之间存在一些根本的差异，但去中心化是其核心。</p>
<p>Web3 用一些新特性增强了我们今天所知的互联网。 web3 是：</p>
<ul>
<li>可验证的</li>
<li>免信任的</li>
<li>自治的</li>
<li>无需许可的</li>
<li>分布式和健壮的</li>
<li>有状态的</li>
<li>原生内置支付</li>
</ul>
<p>在 web3 中，开发人员通常不会将应用程序构建和部署在单个服务器上，或将其数据存储在单个数据库中（通常由某个云服务供应商托管）。</p>
<p>相反，web3 应用程序要么运行在区块链、有许多点对点节点（服务器）的去中心化网络上，要么运行在形成<a href="https://thegraph.com/blog/modeling-cryptoeconomic-protocols-as-complex-systems-part-1">加密经济协议</a>的区块链和去中心化网络的组合上。这些应用程序通常被称为 dapps（去中心化应用程序），你会在 web3 里经常看到这个术语被使用。</p>
<p>为了构建稳定和安全的去中心化网络，网络参与者（开发人员）受到激励并竞相为使用该服务的人们提供最优质的服务。</p>
<p>当你听说 web3 时，你会注意到加密货币通常是对话的一部分。这是因为加密货币会在大部分的协议中扮演重要角色。它为任何想要参与创建、管理、贡献或改进其中一个项目的人提供经济激励（代币）。</p>
<p>这些协议通常可以提供各种不同的服务，例如计算、存储、带宽、身份、托管以及过去通常由云服务供应商提供的其他 Web 服务。</p>
<p>人们可以用各种方式、通过在技术和非技术层面参与协议来谋生。</p>
<p>该服务的消费者通常为使用该协议付费，类似于他们今天向 AWS 等云服务供应商付费的方式。 只是在 Web3 中，钱直接流向网络参与者。</p>
<p>在这种情况下，就像许多类型的去中心化模式一样，你不会再看到那些不必要且通常效率低下的中间媒介了。</p>
<p>许多网络基础设施协议，如 <a href="https://filecoin.io/blog/filecoin-circulating-supply/">Filecoin</a>、<a href="https://livepeer.com/">Livepeer</a>、<a href="https://www.arweave.org/">Arweave</a> 和 <a href="https://thegraph.com/blog/the-graph-grt-token-economics">The Graph</a>（我在 Edge &amp; Node 用的就是这个）已发行使用代币管理协议的功能。这些代币还会奖励给网络多个级别的参与者。 甚至像 <a href="https://ethereum.org/en/">Ethereum</a> 这样的原生区块链协议也以这种方式运行。</p>
<h3 id=""><strong>原生支付</strong></h3>
<p>代币还引入了完全无边界且相当流畅的原生支付层。 Stripe 和 Paypal 等公司在电子支付方面已经创造了数十亿美元的价值。</p>
<p>这些系统过于复杂，仍然无法在参与者之间实现真正的国际间操作。 他们还需要你交出你的敏感信息和个人数据才能使用它们。</p>
<p>加密<a href="https://everest.link/category/0xc00f480db7754ce2e0f992a1080598e53fc511a0/">钱包</a>比如 <a href="https://metamask.io/">MetaMask</a> 和 <a href="https://toruswallet.io/">Torus</a> 将简单、匿名和安全的国际支付和交易集成在 Web3 应用中，使你能更便捷地使用这些功能。</p>
<p>使用像 Solana 这样的网络进行交易，只需几百毫秒的等待时间和一美分的几分之一的交易成本。 与当前的金融系统不同，用户不必通过传统的那些复杂步骤来与网络进行交互。他们需要做的就是下载或安装一个钱包，他们就可以开始发送和接收付款，而无需任何关卡。</p>
<h3 id="">创立公司的新方式</h3>
<p>代币也带来了代币化的思想和<a href="https://www.oreilly.com/library/view/what-is-the/9781492072973/ch01.html">代币经济</a>的实现。</p>
<p>以创立一家软件公司为例。有人提出了一个想法，但为了开始实施，他们需要资金支持。</p>
<p>为了赚钱，他们接受了风险投资并将公司的一部分作为抵押。这项投资立即引入了与原来的目标不一致的激励措施，从长远来看，这些激励措施与构建最佳用户体验并不相符。</p>
<p>此外，如果公司真的成功了，任何参与其中的人都需要很长时间才能价值变现，这通常会导致工作多年而没有任何真正的投资回报。</p>
<p>相反，想象一下，一个全新的、令人兴奋的项目被宣布，它解决了一个真正的问题。 从第一天开始，所有人都可以参与构建或投资。 公司宣布发行x个代币，并将其中10%的部分给那些早期建设者，将10%出售给公众，其余留作未来贡献者的支付金和项目资金。</p>
<p>股东们可以使用他们的代币对项目未来的走向进行投票，帮助构建项目的人可以在代币发行后出售他们的部分资产来赚钱。</p>
<p>相信该项目的人可以购买并持有所有权，而认为该项目正朝着错误方向发展的人可以通过出售他们的股份来发出（危机）信号。</p>
<p>因为区块链数据都是完全公开的，购买者对市场的走向也完全知情。 这与购买私人或集中式企业的股权形成鲜明对比，在这些企业中，许多事情往往是保密的。</p>
<p>这已经是 web3 领域里正在发生的事情了。</p>
<p>一个例子是应用程序 <a href="https://radicle.xyz/blog/introducing-rad.html">Radicle</a>(一个去中心化的 GitHub 替代品)，它允许利益相关者参与他们项目的<a href="https://everest.link/category/0x46aff9a161267c2c01f5ce1b6e3b717a77f21480/">管理</a>。<a href="https://gitcoin.co/">Gitcoin</a> 是另一种允许开发人员通过参与和处理开源问题而获得加密货币报酬的网站。<a href="https://docs.yearn.finance/faq#governance">Yearn</a> 允许利益相关者参与决策和对提案进行投票。<a href="https://uniswap.org/blog/uni/">Uniswap</a>, <a href="https://superrare.com/rare">SuperRare</a>, <a href="https://thegraph.com/blog/the-graph-grt-token-economics">The Graph</a>, <a href="https://audius.co/">Audius</a>, 和无数其他协议和项目已发行代币作为实现所有权、参与管理的一种方式。</p>
<p>提供了另一种方式来建立传统意义上的公司的 <a href="https://linda.mirror.xyz/Vh8K4leCGEO06_qSGx-vS5lvgUqhqkCz9ut81WwCP2o">DAOs</a>（一个去中心化自治组织），正获得来自传统开发人员的和风投公司的巨大驱动力和投资。</p>
<p>这些类型的组织被代币化，颠覆了组织结构的理念，为大部分利益相关者提供真实、流动和公平的所有权，并以新颖有趣的方式调整激励措施。</p>
<p>例如，<a href="https://www.fwb.help/">Friends with Benefits</a> 是一个由 web3 建设者和艺术家们组成的 DAO，大约成立一年，在撰写本文时市值约为 1.25 亿美元，最近获得了来自 <a href="https://a16z.com/">a16z</a> 的<a href="https://tittlepress.com/crypto/1146487/">1000 万美元</a>投资。</p>
<p>描述 DAOs 就可以占用整篇文章，但现在我只想说，我认为它们是构建产品和（传统意义上的）公司的未来。 <a href="https://coopahtroopa.mirror.xyz/_EDyn4cs9tDoOxNGZLfKL7JjLo5rGkkEfRa_a-6VEWw">这篇好文章</a>是当前 DAO 的概览。</p>
<h3 id="web3"><strong>Web3 中的身份</strong></h3>
<p>在 web3 中，<a href="http://sinahab.com/identity-and-reputation-in-web-3/">身份</a>也与我们今天习惯的方式大不相同。大多数情况下，在 web3 应用程序中，身份将与与应用程序交互的用户钱包地址相关联。</p>
<p>与 OAuth 或电子邮件 + 密码（几乎总是要求用户交出敏感信息和个人信息）等 web2 身份验证方法不同，钱包地址是完全匿名的，除非用户决定公开地将自己的身份与其绑定。</p>
<p>如果用户选择在多个 dapps 中使用同一个钱包，他们的身份也可以在应用程序之间无缝转移，这让他们随着时间的推移建立自己的声誉。</p>
<p><a href="https://ceramic.network/">Ceramic</a> 和 <a href="https://idx.xyz/">IDX</a> 等协议和工具已经允许开发人员在其应用程序中构建自我主权身份，用来取代传统的身份验证和身份层。以太坊基金会还有<a href="https://notes.ethereum.org/@djrtwo/sign-in-with-ethereum-RFP">一个有效的 RFP</a>用来定义“使用以太坊登录”的规范，这将有助于提供一个更简化和更有记录的方式来做到这一点。 <a href="https://twitter.com/BrantlyMillegan/status/1402388133086367751">这</a>也是一个很好的方法，它概述了一些增强传统身份验证流程的方法。</p>
<h2 id="web3">如何在 Web3 构建项目？</h2>
<p>我是一名开发人员，最近刚从传统开发背景过渡到 web3 领域。 所以我想通过开发来体验在 Web3 世界的感觉。 我也想了解我们当前可以构建哪些类型的应用程序。</p>
<p>我全心投入进去，并且决定在几篇博客文章中记录我正在做的一些事情。</p>
<p><a href="https://www.freecodecamp.org/news/break-into-ethereum-crypto-web3-as-a-developer/">作为开发人员如何使用以太坊、加密和 Web3</a> ——— 这是一个来自开发人员的大致介绍，适用于希望进入该行业的开发人员。</p>
<p><a href="https://www.freecodecamp.org/news/full-stack-ethereum-development/">以太坊全栈开发完全指南</a> ——— 这个教程会教你如何构建你的第一个 dapp。</p>
<p><a href="https://dev.to/dabit3/the-complete-guide-to-full-stack-solana-development-with-react-anchor-rust-and-phantom-3291">使用 React、Anchor、Rust 和 Phantom 进行全栈 Solana 开发的完全指南</a> ——— 本指南深入介绍 Solana，向你展示如何构建全栈 dapp。</p>
<p>如果你有兴趣了解更多有关 web3 的信息，可以查看以下帖子：</p>
<p><a href="https://dev.to/dabit3/the-new-creator-economy-daos-community-ownership-and-cryptoeconomics-lnl">新的创造者经济 —— DAO、社区所有权和加密经济学</a></p>
<p><a href="https://www.notboring.co/p/the-value-chain-of-the-open-metaverse">Metaverse 的价值链</a></p>
<p><a href="https://coopahtroopa.mirror.xyz/gWY6Kfebs9wHdfoZZswfiLTBVzfKiyFaIwNf2q8JpgI">微观经济的兴起</a></p>
<!--kg-card-end: markdown--> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ 自学编程 16 个月后，我从销售员成功转型为程序员 ]]>
                </title>
                <description>
                    <![CDATA[ 2015 年 8 月 18 日，我正在多伦多飞往哥本哈根的单程飞机上，准备开启在哥本哈根商学院为期两学期的交换生活。 那天是我哥哥的生日，所以我对这个日期记得格外清晰。他在机场度过这个生日，因为全家人都在机场为我送行，他们原以为我只是去八个月。 过去我对哥本哈根的唯一了解来自 CPH Open on Thrasher Magazine's YouTube channel [https://www.youtube.com/watch?v=EYOCa7kusJg]  这个频道。幸运的是，我完完全全爱上了这个城市，于是在第一个学期之后我决定要在哥本哈根待更久时间。我没有选择在加拿大实习，而是尽可能在哥本哈根找一份实习工作。 在哥本哈根工作 我之前没有好好计划这件事，所以开始找销售发展代表的实习工作。我之前在某节课上听说过这个初级职位，因为之前的工作经历都与销售和客服有关，我以为这会非常合适。 我投了简历给一家初创企业，四小时不到，他们的销售经理就跟我通电话了。这是我第一次感受到创业公司的快节奏！一个月后我入职了。这也是我第一次接触到专业程序员。 虽然我只在高中的 Visual Ba ]]>
                </description>
                <link>https://www.freecodecamp.org/chinese/news/how-i-landed-my-first-developer-job-without-an-application/</link>
                <guid isPermaLink="false">5fb1307d5f583f05650910be</guid>
                
                    <category>
                        <![CDATA[ 职业发展 ]]>
                    </category>
                
                    <category>
                        <![CDATA[ 自学编程 ]]>
                    </category>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Casey Cui ]]>
                </dc:creator>
                <pubDate>Sun, 28 Mar 2021 08:36:00 +0000</pubDate>
                <media:content url="https://chinese.freecodecamp.org/news/content/images/2021/04/photo-1484417894907-623942c8ee29-1.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>2015 年 8 月 18 日，我正在多伦多飞往哥本哈根的单程飞机上，准备开启在哥本哈根商学院为期两学期的交换生活。</p><p>那天是我哥哥的生日，所以我对这个日期记得格外清晰。他在机场度过这个生日，因为全家人都在机场为我送行，他们原以为我只是去八个月。</p><p>过去我对哥本哈根的唯一了解来自 <a href="https://www.youtube.com/watch?v=EYOCa7kusJg" rel="nofollow">CPH Open on Thrasher Magazine's YouTube channel</a> 这个频道。幸运的是，我完完全全爱上了这个城市，于是在第一个学期之后我决定要在哥本哈根待更久时间。我没有选择在加拿大实习，而是尽可能在哥本哈根找一份实习工作。</p><h2 id="-">在哥本哈根工作</h2><p>我之前没有好好计划这件事，所以开始找销售发展代表的实习工作。我之前在某节课上听说过这个初级职位，因为之前的工作经历都与销售和客服有关，我以为这会非常合适。</p><p>我投了简历给一家初创企业，四小时不到，他们的销售经理就跟我通电话了。这是我第一次感受到创业公司的快节奏！一个月后我入职了。这也是我第一次接触到专业程序员。</p><p>虽然我只在高中的 Visual Basic 课程里接触过软件开发，但是我对技术一直有着很深的兴趣。</p><p>这份工作让我第一次有了和程序员共事的机会。他们的工作听起来非常酷。他们谈论一些专业术语和技术——React，Ember，Scala，Python，TypeScript，样板代码，编译器，渲染......开发软件竟然需要了解这么多内容，这听起来令人害怕。</p><p>接下来的一年半时间，我继续在销售职位上打拼，最终升职成了客户主管。在这份工作中，我感到我的沟通能力、时间管理能力、表现能力都得到了很大的提升。</p><h2 id="-freecodecamp">发现 freeCodeCamp</h2><p>虽然我作为一名客户主管还算成功，但是我对自己未来是否愿意在销售业发展还是存在疑问。而且在母语非英语的国家里做英语销售，职业选择也有所限制。</p><p>我开始拓展阅读，寻找新爱好或者挑战。我就是在这时发现了 freeCodeCamp 的博客的（当时还建在 Medium 上）。我花了几天时间才意识到 freeCodeCamp 并不仅仅是一个博客，它是一个在线免费学习编程的平台！其实从它的名字就可以看出来。</p><p>在做完几道 HTML 题之后，我已经完全着迷了。那时我就决定在空闲时间完成 freeCodeCamp 的课程，为了在遥远将来的某天能成为一名开发人员，和我的同事讨论 React。我喜欢这个想法。</p><h2 id="--1">艰难地学习基础知识</h2><p>我很快地学习了 HTML 和 CSS，在我开始尝试完成一个项目之前我都相当自信。搭建一个作品集网站？小菜一碟！</p><p>离开了 freeCodeCamp 的编辑器，我突然感到非常迷茫。从头开始写项目似乎变成了不可能的任务，我好像把学到的东西忘得一干二净了。我突然认为自己不可能成为一名真正的程序员。</p><p>而此时，寻求帮助是我做出的最好的决定。我的一位同事耐心地教我使用 VS Code，构建 HTML 文档并链接相应的 CSS 文件。拙劣地完成了作品集网站后，我把这项任务勾选成了“已完成”，虽然我的成果和其他人的相比非常糟糕。</p><p>在历时一个半月学完 HTML 和 CSS 课程后，我终于开始学习我期待已久的 JavaScript 课程。</p><h2 id="-javascript">学习 JavaScript</h2><p>开始时很简单，但没过多久我又感觉到迷茫和受挫了。学完了 JavaScript 的所有模块后，我没有自信和韧劲去挑战更难的 JavaScript 项目。相反，我选择了容易的路线，开始学习 Codecademy 的 JavaScript 课程。</p><p>这对巩固基础知识当然是有帮助的，毕竟反复练习是关键。然而，在学习过程中我犯的最大错误就是没有回过头去尝试那些更难的项目。</p><p>学完 Codecademy 的所有模块后，我又买了 Udemy 上的 “The JavaScript Bootcamp” 准备继续学 JavaScript。鉴于这已经是我第三次梳理基础知识，课程结束后我感到自己对 JavaScript 更有把握了。</p><h2 id="-pleo">进入 Pleo</h2><p>在这时我直接开始学习 Node，紧接着学习了一门 React 课。</p><p>在两门课之间的某个时间，我在 <a href="https://www.pleo.io/" rel="nofollow">Pleo</a> 找到一份客户经理的工作。作为发展如此迅速的创业公司的一员非常令人兴奋。更令人兴奋的是，遇到如此多年轻有天赋的开发人员，并有机会向他们学习。</p><p>在做了三个月左右时，主管和我讨论我的职业规划。我非常坦诚地告诉她，我不想再在销售行业发展了。我想尽全力自学编程，争取在未来某天成为一名程序员。</p><p>没有人想在自己组里一个初级销售代表的口中听到这些话。但是令我惊讶的是，她非常支持我的决定，并且愿意尽力帮助我达成目标。</p><h2 id="--2">尝试编程挑战</h2><p>和公司的一位技术总监聊过之后，我了解到我需要完成招聘流程中所要求的前端编程任务，才能继续从销售部到产品部的转行。</p><p>尝试这件事的想法令人害怕又充满动力。也是从这时起，我开始在办公室待到更晚。我不想浪费时间骑自行车回家，所以每到下午五点，我会赶紧找点晚餐吃，尽快回到工位，开始我假装作为程序员的一天。</p><p>我终于在圣诞假期前上完了 React 课，并且开始做一些没头没尾的个人项目。我知道我需要把学到的知识应用于实际中，但我发现我很难完成没有最终目标的项目。</p><p>假期里时间变得充裕，我便又开始看之前遇到的前端挑战了。我对自己有能力提交一个有价值的成果仍然表示怀疑，但是因为有目标，我想我说不定最终能完成一些东西。</p><p>幸运的是，我们公司的前端挑战很像那门 React 课程里的期末项目，所以我可以复用很多之前的代码和组件。我感觉我有点像在作弊。</p><p>我还是提交了我的项目，并积极地等待回应。公司的两名高级工程师评审我的代码，我感到非常害怕，准备好接受一些严苛的反馈。</p><p>几周后我拿到了结果，我提交的作品还不算太糟！我收到了一些非常有可行性的批评和建议。我的一位同事甚至在下班后留下来和我逐行讲解那些反馈信息。代码评审会议进行得非常顺利，于是我们决定每周都约一次，直到我有能力转行成一名真正的开发人员。</p><h2 id="-pull-request">我的第一次 Pull Request</h2><p>接下来的几个月里，销售主管和技术总监时不时来监督我的进程。四月时，我有了一个可以进入内部工具组工作的机会，后勤系统有一些不紧急但还是需要处理的 issue。</p><p>我非常兴奋——这是我得到和产品部合作经验的绝佳方式，而且已经明确了这个任务并不会妨碍到销售工作。一想到能接触到生产环境的代码，我就感觉非常疯狂！</p><p>在简短的入组介绍并得到公司 GitHub 页面的权限之后，我开始处理第一个 issue。</p><p>我需要给合规组加一个可编辑输入字段。我毫无头绪。 我以前的确知道怎么加输入框，也粗略地了解表单在 React 里是如何运作的，但是我好像从没在任何教程里看过和这段代码类似的东西。</p><p>我突然感觉自己掉进了问题的深渊里：怎么写 TypeScript？分支是什么？我怎么提交 Pull Request？这些库都是做什么用的？我到底怎么写代码并且发给其他用户？要是我破坏了重要的功能怎么办？</p><p>我花了好几天才搞明白，但是因为有了工程师主管的耐心与帮助，我终于成功提交了两段能发布的代码。这是我编程之旅上巨大的里程碑。</p><h2 id="--3">职业转变</h2><p>在接下来的五个月里，我继续在办公室待到很晚，9 到 17 点做销售工作，17 点之后开始做开发者，直到我对自己写的代码满意之后才离开。</p><p>可想而知，我对销售工作的热情每天都在减少，我开始想要有个正式的职业转变。</p><p>当然，这个转变并不是很顺利。没人知道把一个销售转到产品部意味着什么。首先，我必须完成销售目标。我想这对绝大部分销售部门来说都很正常——无论如何要完成自己的工作配额。</p><p>经过多次来回周旋之后，我终于被允许在 8 月 1 号正式转岗，只要我能完成销售配额。这就像是隧道尽头的亮光。我马上就要签一份软件工程师的合同，这对我来说挺难想象的。接下来几周过得飞快。在 7 月 31 号 17 点这一刻后，我不再是客户经理了。</p><p>适应新角色需要一个转变期，这就像在交易所工作的股票经纪人突然变成图书管理员一样。</p><p>抛开一切不说，我没有任何一天不期待来上班的。我继续在内部工具组工作，搭建合规组和用户支持的后台系统。</p><h2 id="--4">我学到的东西</h2><p>之前的销售工作经历对我现在的工作非常有帮助。很强的沟通能力、时间管理能力和表达能力，对于一个开发人员也是无价的。但我发现很多开发人员普遍缺乏这些品质。</p><p>我意识到自己真的非常幸运，能这么快就得到了写生产代码的机会。这毫无疑问是我在学习编程过程中的巨大跳跃，也扩展了我对现实中开发工作的理解，这些在网课中是无法得到的。</p><p>有一位导师极大地帮我加快学习进度，也帮助我坚持写项目，所以我才能一直处于学习状态。如果我没有周围那么多的支持，我想自己可能还在花费整个晚上和周末看教程或者搭建“<a href="https://github.com/braedongough/random-pokemon-generator">随机生成皮卡丘</a>”之类的项目吧。</p><p>我下决心要把所有空闲时间用在个人发展上。我想人们很容易低估这个过程的时间成本。有指导者是一个巨大的帮助，即便只是有一个偶尔能回答你的问题的人，也能让你不用花数个小时陷在沮丧情绪中。千万不要害怕寻求帮助。</p><p>回过头来看，我希望我能花更多时间搭建一些小项目，应用我所学的知识。我频繁地开始做项目但又半途而废，因为我一直认为自己不能用正确的方式写完代码。</p><p>花时间艰难地研究一些东西对我的学习过程更有帮助。学一些交互性的编程网课确实更安心，但这对你把编程知识应用于现实世界有一定的限制。我确实踩过坑。</p><p>我花了一段时间才意识到，并没有人知道什么是正确的（学习）方式，那些都是人为编造的。作为一个编程新手，能以新角度看问题也是有价值的吧。</p><p>如果我希望过去的我能得到一则建议，那它会是“更努力地边学边应用”。特别是在你学习的过程中，并没有什么现实代码或者做事的正确方式。任何你能在过程中学以致用的机会都是有价值的。</p><p>不一定要等到有人给你薪酬，你才觉得自己是一名开发人员。只要你开始写代码，你就已经是了。</p><p>看完希望能交个朋友！如果有任何问题或者有推荐的书籍，欢迎给我发<a href="mailto:braedongough@gmail.com">邮件</a>，在 <a href="https://www.linkedin.com/in/braedon-gough-ba92a048/" rel="nofollow">LinkedIn</a> 上找我，或者关注我的 <a href="https://twitter.com/bbbraedddon" rel="nofollow">Twitter</a>！</p><p>原文：<a href="https://www.freecodecamp.org/news/how-i-landed-my-first-developer-job-without-an-application/">How I Landed My First Developer Job Without Writing a Single Application</a>，作者：Jean-Marc Möckel</p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
