教育资源网图标 教育资讯 学前教育 K12教育 STEAM教育 考试相关 学校动态 教育机构
用户登录

零基础学web网站编程

2020年08月26日

在这一系列的文章中,我讲述了我从2016年6月底开始的零基础学web网站编程开发学习之旅。我回顾了我所经历的过程,并提到了我使用的一些资源和库。编程基础

我的旅程于2016年6月20日在Launch School开始。在权衡了包括大会和国家技术学院在内的墨尔本的选择之后。这远远超出了我的支付能力,我也不准备贷款。我决定启动学校的自主学习模式是最划算的,也最适合我的学习风格。

在3个月的时间里,我学习了Ruby的基本编程和OOP,以及HTML、CSS和JavaScript的基础知识。制作玩具项目,完成编程练习。这是一个很好的开始。通过密集的演练和多次代码复查,我学会了编程基础、问题分解以及如何编写可读代码。

它是由评估驱动的,如果你有时间和金钱,这是很好的,因为它迫使你尽可能彻底地学习,这样你就可以通过评估,这是很难通过的。在花了3个月的时间和600美元之后,我觉得我需要从练习中休息一下,来建立我自己的项目,并实际做一些web开发。

Embracing Indirection

虽然我很感激在成为一名web开发人员的过程中得到指导,但在过去,当我所学习的内容与我所从事的工作相关时,我觉得我学得更快更有效。

作为一名实习律师,我的学习基本上是在工作中进行的,而不是在学校。通过为真正的客户解决真正的问题,我获得了真正的法律技能。在学校里,你学东西是为了通过考试,然后就把它忘得一干二净。在工作中,你记得你所学到的东西,因为它与你需要解决的问题有关。

这与研究表明分布式实践、实践测试和交叉是最有效的学习技术相一致(参见Dunlosky、Rawson、Marsh、Mitchell和Willingham(2013)的《用有效的学习技术提高学生的学习》)。当你工作的时候,我相信你会很自然地利用这些学习技巧。

因此,我决定接受间接指导,从启动学校休息一下,建立自己的项目。从那以后我就再也没有回去过。也就是说,Launch School是我web开发生涯的一个很好的起点,如果没有它,我可能不会在接下来的几个月里取得那么多的成就。

在接下来的几个月里,我一直在想,自己离开是否是个正确的决定。我低估了其中的压力、挫折和不确定性。但如果我必须重新开始,我会再做同样的事情。

因为几个月后,我开始觉得在没有指导的情况下工作更舒服了。事实上,从谷歌搜索和阅读文档、示例代码和堆栈溢出答案中,我学到的东西比跟随教程多得多。

现在我开始享受整个过程。我喜欢了解和探索新技术和库,因为它们为我的项目增加了价值,也节省了我的时间。零基础学web网站编程在实践中学习

推动我前进的最大动力是建立自己的项目。关于这种学习方法,看看Quora上的回答:

我可否在9个月至1年内成为初级网页开发人员?

我如何才能成为前端开发工作的最佳候选人?

通过构建具有挑战性的项目,我能够在整个web开发过程中获得实践经验。

我构建的第一个项目是一个使用KnockoutJS和谷歌Maps API的邻里餐馆查找器,通过它,您可以在指定位置附近找到餐馆。在此之前,我学过一些JavaScript,但从未真正将其应用到任何地方,所以这将是一个很好的挑战。

这个项目的想法来自于本·贾菲(Ben Jaffe)教授的Udacity优秀课程《JavaScript设计模式》(JavaScript Design Patterns),我在这门课上学习了MVC架构。他还教授KnockoutJS的基础知识。尽管我必须再开发一个玩具应用程序(到目前为止,我已经受够了),但这种边做边学的方法让我受益匪浅。

项目最困难的部分是启动它。如果您曾经对前端工具做过一些研究,那么您可能已经经历过JavaScript疲劳。我经历了一个星期,几乎没有任何进展。我应该学习ES6、ES7还是TypeScript?我应该学习React, Angular还是Vue?我应该使用Webpack还是Grunt/Gulp?这样的例子不胜枚举。Jose Aguinaga有一篇关于2016年学习JavaScript的文章。值得一读。

在那一周之后,我选择了学习Webpack。我从来不用咕哝或吞咽。我只是npm安装新的包和Webpack捆绑我的JavaScript。

一旦我启动了webpack-dev-server,使用KnockoutJS构建单页面应用程序就成了有趣的部分。我花了大约一周半的时间实现了位置搜索功能,向附近餐馆的谷歌Maps API发出API请求,在页面上放置可单击标记,并使用照片擦除功能实现了照片库功能。

我跟随本文启动Node.js服务器并将应用程序部署到Heroku。您可以使用此链接查看项目。该项目的代码托管在Github上,可以在这里访问。

能够自己解决问题和调试错误消息,而不需要遵循任何教程,这是一项挑战,但非常有益的,同时帮助我建立了一些前端开发技能,为我的下一个项目做准备。零基础学web网站编程更多内容我将在第二部分讨论这个问题。