历经 4 个月的编程、研究、学习和一再质疑自己能否成功之后,我终于上线了自已设计的第一个网站。

这一路走来并不容易,但最后看来都是值得的。

本帖将分享我从构建黑人卓越音乐项目(纪念为艺术做出卓越贡献的黑人艺术家)中学到了什么。

我有能力构建吗?

Woman looking up

图片来自 Unsplash,摄影师 Tachina Lee

2020 年 6 月,围绕乔治·弗洛伊德之死,各类活动频发,种族冲突问题呈现出前所未有的紧张态势。这一局势引发了有关各行各业中缺少多样性、少数群体缺乏代表性的讨论。

很多朋友与我联系,问询历史上和当代黑人作曲家的有关信息,期望他们的作品能够更广为演奏或传唱。

也因如此,我当时决定制作黑人卓越 YouTube 系列节目,以向大众介绍取得成功的黑人作曲家。

Screen-Shot-2021-02-03-at-11.11.27-AM

这个系列节目随之爆火,也让我产生了一个新的想法。

为什么不建立一个名为黑人卓越音乐项目的网站呢?

它可以是一个教育性的网站,内容可以包括人物资料,游戏,音乐,等等。

但我面临一个大大的问题:谁会来创建这个网站呢?

当时的我刚学了几周的编程,我根本不相信自己有能力去做那样一个项目。因此,我决定把这件事放一放,先继续学习一阵再说。

现在做或者永远不做

A friend of mine, jumping off of Hawaii’s spitting cave

图片来自 Unsplash,摄影师 Kekai AhSam

几个月过去了,我开始围绕这个项目想得愈来愈多。我想到了一些备选的游戏、一些专题作曲家,还有一些炫酷的网站功能。

但我还是在犹豫要不要开始做,因为我总觉得自己还没有准备好。我当时只是略懂 HTML 和 CSS,对 JavaScript 也只是有一些初步了解。

但我后来意识到,要么就现在做,要么就永远不做。

带着恐惧和犹豫,我决心开始着手这个项目。

你好,Git 和 GitHub

Screen-Shot-2021-02-03-at-10.32.31-AM

2020 年 6 月,决心想要学习如何编程的我第一次打开了自己的 GitHub 个人主页。但在那之后一直到开始这一项目前期间这几个月,我在上面几乎啥也没干过。

我对 GitHub 的模糊理解是,这是一个你可以保存自己的代码而且别人可以查看这些代码的地方。

因此我就想,是时候真真正正地学学 GitHub 并开始敲击命令行了。

Screen-Shot-2021-02-03-at-11.05.57-AM

看完一些教程之后,我成功创建了我的第一个 repository,并将我的第一个 commit 推送到了 GitHub。

心想自己已经入门了,我感到很自豪,但现在我面临着另一个难题。

下一步干什么呢?

只管 HTML

Screen-Shot-2021-02-03-at-10.34.18-AM

虽然我脑子里有各种想法,但对于该从什么做起我却丝毫没有头绪。

我要先做一些游戏吗?

我要建立设计的模型吗?

很快,一切把我搞得焦头烂额,我真的不知道下一步该干点啥。就这样,我决定从一个简单的 HTML 页面开始做起,然后再向后面推进。

我想到,我可以先构建一些 HTML 网页来放作曲家的介绍,至于如何装饰这些页面,可以到后面再去考虑。

这样一来,我就安下了心,为项目开了个好头。

选择恰当的配色方案

Screen-Shot-2021-02-03-at-10.35.49-AM

我当时想选一个和主题比较搭的配色方案,就是那种表面很沉静但背后却又很有力量的配色。

经过一番研究,我敲定了紫色,紫色往往同王室和智慧相关联。

我想,就那些对艺术做出了重大贡献的黑人作曲家来说,这应该是个完美的选择。

我该如何创建游戏呢?

Screen-Shot-2021-02-03-at-10.57.40-AM

走到这一步,我手里有几张 HTML 网页和一些简单的网页装饰,现在是时候开始码一些游戏了。

我在想,如果能设计一些老少皆爱的游戏将是不错的选择。

我首先对游戏的运行做了一个整体规划,接着便开始一个一个去实现那些功能。

我做了很多研究,也犯了很多错,但最后还是做成了。

// this is for the tour and local gig functions
function performanceOutcomes() {
  shuffle(gigResponses);
  if (randomMsg === 'You were late to the gig and not allowed to perform.' || randomMsg === 'You were mugged outside after the gig and they took all of your money.') {
    message.innerHTML = randomMsg;
    money += 0;
    earnings.innerHTML = `Total earnings: $ ${money}`;
  } else {
    message.innerHTML = randomMsg;
    money += 5;
    earnings.innerHTML = `Total earnings: $ ${money}`;
  }
}

完成游戏的制作后,我决定“打扫一下卫生。”

我该怎么组织这一切呢?

Screen-Shot-2021-02-03-at-10.37.01-AM

网站上有很多需要移动的内容,所以我在管理这些文件时要动点脑筋。

为描述性文件和文件夹命名时,我专门留意选择一些简短的名称,以便可以轻松找到它们。

也有几次,我不得不将一些文件重新移动到不同的文件夹中。

例如,起初,我把作曲家知识测验放在了单个作曲家的文件夹中。但后来我意识到,最好专门建立一个名为“知识测验”的文件夹,并将所有测验文件保存在其中。

我还遇到了多个样式表的问题。由于我重复使用了许多相同的样式,因此建立一个主样式表然后将其链接到所有 HTML 页面会比较合适。

你能不能看到我的项目?

photo-1531498860502-7c67cf02f657

图片来自 Unsplash,摄影师 heylagostechie

到 2021 年 1 月底,我的网站终于可以供其他人查看了。

我便决定联系 Nicholas Carrigan,他是来自 freeCodeCamp 的开发人员兼社区管理员。他在 他的网站上提供了代码审查服务,我希望他能看看我的代码。

代码审查非常有价值,我学到了很多有关如何把我的网站做得更好的知识。

上线噩梦

photo-1607688387751-c1e95ae09a42

图片来自 Unsplash,摄影师 Dev Asangbam

终于做好一切准备后,我决定上线我的网站。我用 Bluehost 注册了一个自定义的域名,然后阅读了如何将 GitHub 网页设置为实时站点的有关说明。

凌晨 4 点,我终于上线了网站。

但当我单击上线链接时,我被眼前的一切吓到了。

Screen-Shot-2021-02-03-at-10.41.03-AM

没有导航栏,没有脚注,没有层叠样式表。

这到底是怎么回事?我在本地测试的时候一切都没问题呀。

经过几小时的修护和研究,我最后选择向他人求助。我给 Nicholas 发了信息,向他说明了这个问题。

他看看我的代码解释说,我的文件路径有点问题,并告诉我如何去解决。

听到问题有办法解决,我如释重负,这才静下心来去做各种必要的修改。

    <script src="landing-page-nav.js"></script>
    <script src="landing-page-footer.js"></script>
    <script src="index.js"></script>

终于,我做好了准备,把网站分享在了 freeCodeCamp 论坛 中,以寻求反馈。

这是一个好的开始,但请解决这个问题

Screen-Shot-2021-02-03-at-10.42.55-AM

在接下来的几天,我收到了很多关于如何改良网站的评论。

起初,我都是自己处理这些评论,还真有些应接不暇。

我还幻想,也许在某个虚幻的世界,人人都会喜欢我的网站,并觉得它是完美无瑕的。

但实际上,很多人给我指出了一些 bug,还有一些设计上的问题,这些问题让用户体验起来会感到有些无厘头。

我知道自己的强项并不在设计,或许这也是我想独自处理设计这块的原因。但我发现,有很多人在帮助我,而且他们的建议的确让网站看起来更好看了。

对新手的建议

photo-1566837945700-30057527ade0

图片来自 Unsplash,摄影师 Tudor Baciu

通过构建这个项目,我学到了很多。当然,这个过程中我遇到过顺利的时候,也遇到过糟心的时候。但最后的结果还是让我很开心的。

如果你也有做一个项目的想法,不要等着自己万事俱备了才动手。按自己知道的最好的方式去构建它,并将其上线。即使它并不完美或是仍需润色,也完全没有任何问题。

只要持续做和学就够了。

原文:What I Learned from Building My First Solo Project,作者:Jessica Wilkins