自学 Web 开发人员(React / NodeJS)推荐学习路径
2016年的时候,我以设计商业厨房为生。这意味着我会为那些第一次创业的餐厅老板提供咨询服务,并就如何更好地运营他们的餐厅提出建议。
我发现自己总是需要新的工具来处理这些任务。我经常会在alternativeto.net上列出我使用的工具,并且尝试了很多创业领域的软件产品。
有一次,我问一位开发人员是否可以实现我想要的一个新功能。他们没有足够的人手来开发,于是让我自己编写我的第一个JavaScript 小部件。
但我对JavaScript、CSS和HTML一窍不通。但我自学了,并把它做出来了。
人们开始使用我开发的工具。我也因此着迷。我想成为那种真正能交付像我每天都在使用的那种Web应用程序的开发者。
现在是2020年,我被聘为高级前端工程师,主要从事React/NodeJS方面的工作。我没有参加过任何编程训练营,大部分知识都是通过网上学习获得的。
我记得当时为了找到最好的学习资源,我费了多少周折。我甚至不知道作为一名网页开发者,我应该学些什么。网上的教程太多了,我根本不知道从何下手,所以我花了很多时间去旁听那些热门课程。
我正在写一篇我希望自己当初开始学习Web开发(React/NodeJS)时就能读到的文章。文章会告诉我应该学习什么,学习顺序又是如何,才能找到第一份工作,开启我的编程生涯。
以下是那份指南,以及我对所使用的学习资源的印象:
你的第一份工作
自学能力有限,实际经验永远胜过课堂所学。你应该尽快在软件行业找到一份工作,然后再考虑之后的发展方向。
我总是建议初级开发人员先去尝试前端开发。前端开发人员通常负责让网站美观且功能齐全,比如网站的外观、与后端交互的方式,以及一些让网络体验更有趣的小工具。
它能让你接触到完整的软件开发周期,并学习到许多可用于交付实际产品的实用技能。前端开发人员的职位通常准入门槛不高,对初级开发人员也很友好。
课程指南概述及标准:
我建议选修多门不同相关主题的课程,而不是选择一门包罗万象的课程。向多位老师学习,了解相关主题的不同观点,能让你学得更快。
同时,我也不喜欢推荐太多内容重叠的课程。一天的时间有限,所以最好充分利用时间。
以下是指南:
第一部分 - 学习计算机科学基础知识
在学习网页开发之前,你应该先通过哈佛大学的 CS50 课程学习计算机科学入门知识。这门课程是免费的。
我的理由如下:
- 它会教你几种不同的语言,比如 C 语言和 Python,这样你就可以将它们与 JavaScript 进行比较。当你构建一个图像解码器时,它还会教你一些后端编程的基础知识。
- 你将学习如何使用命令行,这在团队协作中使用 Git 以及操作 Web 服务器时非常有用。
- 它会教你编写最优前端代码和后端代码所需的基本算法,以及你在面试中会遇到的所有编程挑战。
- 它会教你内存地址的工作原理,让你更容易调试问题。
你在哈佛CS50课程中学到的大部分内容以后都会用到。掌握了基础知识,学习其他任何东西都会变得容易得多。编程中会涌现出许多模式,而这些模式通常都与计算机科学密切相关。
第二部分 - 深入学习 Javascript 和 CSS:
我建议同时修读两门课程:
- 免费编程训练营
- 任何JavaScript基础课程:
对于(1),FreeCodeCamp 是一个免费的在线平台,用于教授前端和后端开发。它最初是作为前端开发(HTML、CSS、JS)教学平台而开发的,所以我建议你专注于前端开发。
我建议你目前考取的两个认证分别是“响应式网页设计认证(300小时)”和“JavaScript算法和数据结构(300小时)”。这两个认证课程将以更灵活的实践方式,让你按照自己的节奏学习JavaScript、HTML和CSS的基础知识。
对于(2),基础课程将提供讲师的视频教学概述。我建议选择以下任一课程(或两者都选):
这里的两位老师都比较温和地授课,所以更容易让人入门。
《边看边写》的作者是一位前谷歌工程师。他会教你如何从零开始构建一个待办事项应用,更重要的是,他会教你如何像程序员一样思考。这门课程让我学到了很多基础设计模式,以及如何在构建应用之前正确地编写需求文档。
如果想边看边学,建议只学习构建待办事项应用的课程,时长大约 4-8 小时。其他课程内容偏高阶,更适合职业生涯后期学习。
Colt Steel 的 Bootcamp 课程是对 Web 工作原理的高级介绍,讲解了后端如何与前端通信。这是一门涵盖所有基础知识的扎实课程,但我仍然建议边看边学,因为下一门课程会涉及一些重叠的主题。
第三部分 - React NodeJS 全栈应用开发速成课程
在接受了一位教学方法较为温和(自下而上)的教练的指导后,我建议现在参加一个教学方法较为直接(自上而下)的课程。
我推荐的课程是 Udemy 上 Brad Traversy 的“MERN stack front to back”。
Brad Traversy 并没有详细解释所有细节,但足以让你理解其运作原理。它会教你如何使用 React 和 NodeJS 将各个部分连接起来,方便你日后查阅。它还会教授你足够的后端知识,让你之后可以完全专注于前端开发。
第四部分 - 学习 React、Bootstrap 和 Sass
至此,您已掌握扎实的 JavaScript、HTML 和 CSS 基础知识,并通过 FreeCodeCamps 的认证挑战完成了一些小型项目。此外,您还通过 Brad Traversy 的课程对 React、NodeJS 和 MongoDB 的协同工作方式有了大致的了解。
现在你只需要专注于了解雇主实际招聘的职位要求以及在代码库中构建功能所需的技能。
我建议同时学习这两项内容:
- FreeCodeCamp - 前端库认证(300 小时)
- 任何深入的 React 课程
对于(2),如果你之前上过Colt Steel的课程,我建议这次换个老师。Udemy上很多热门课程都不错,但我个人推荐这门:
完成这些课程后,你将构建几个 React 项目,并对 React Hooks、类组件、生命周期和 Redux 有扎实的理解。Redux 的学习曲线比较陡峭,但一旦你克服了这一难关,其他一切都会变得相当容易。
除了 Max 的课程之外,我还推荐学习第二门 React 课程,这门课程来自 Stephen Grider。
在我看来,他绘制的图表是解释 React/Redux 概念的最佳图表之一。而且,他对这个主题的类比也最为精辟。
第五部分 - 学习在团队环境中构建事物
你现在掌握了很多实用技能。现在你应该开始运用这些技能来构建实际项目。你应该学习一些项目管理和团队协作方面的知识。这些都是你在编程训练营里本该学到的东西,但由于你主要是自学,所以并没有学到。
我建议采取以下两条路径:
Chingu 社群是一个让你与其他像你一样的自学者开发者聚集在一起,共同构建项目的平台。你可以选择开发独一无二的项目,也可以借鉴现有的项目。例如,我推荐借鉴 Trello 这类应用,这样你就可以专注于解决问题,而无需费心构思。
黑客马拉松是向他人学习的绝佳场所。它通常是为期 1 到 3 天的短期活动,大家齐聚一堂,共同开发一个项目。疫情让情况变得复杂,但我始终建议与本地的黑客马拉松选手竞争,这样学习体验会更好。
第六部分 - 你的作品集总结项目
我不太推荐“追随你的热情”这种说法,而是应该打造一些你真正想用的东西。
你应该有一个可以和雇主深入探讨的项目。我建议只有一个,而不是两个,因为这样潜在雇主更容易记住“哦,他/她就是负责X项目的人”。这比记住“哦,他/她就是负责A、B和C项目的人”要容易得多。
此外,如果你来自其他行业,可以考虑创建与该领域相关的项目。这能讲述你如何从一个职业过渡到另一个职业的故事。
但如果您实在没有任何想法,不妨在教程项目中添加新功能,使其独一无二。或者,您可以参考以下建议获取灵感:
确保你开发的项目前端看起来非常简洁美观,我建议使用像 MaterialUI、Bootstrap 或 Tailwinds 这样的 CSS 框架。良好的前端结构是别人对你项目的第一印象。即使你的前端很丑陋,后端很漂亮,也不会受到同样的赞赏。
第七部分 - 加入科技社区
我建议你在上班途中或通勤路上听播客。根据我的经验,最好将播客与第 1 部分到第 6 部分的学习同步进行。这样你会对经验丰富的开发者之间的沟通方式有更深入的了解,并获得一些你在其他任何地方都无法获得的知识。
我推荐的播客:
- Code Chefs——我的个人播客
- syntax.fm - 非常注重前端开发
- Codeging Blocks——这是我一位非常要好的朋友运营的,主要专注于计算机科学和后端开发。
- 技术小白——很多与职业相关的话题
另外,我建议你加入当地的科技社群。即使你住在偏远地区,也依然有很多选择!
首先查看一下现有的 Slack 频道列表:GitHub City Slack 频道
并参加你所在城镇的本地技术聚会。
我还建议你把你一路学到的东西写到dev.to或你自己的个人博客上。你可以随意使用我的网站作为示例,并在这里fork源代码。
写博客是反思所学知识、向潜在雇主展示自身能力的好方法。
概要总结
以下是我推荐按此顺序学习的课程的简要总结:
- 学习计算机科学基础知识——哈佛大学 CS50 课程
- 深入学习 JavaScript 和 CSS - FreeCodeCamp - 考取以下认证:“响应式网页设计认证(300 小时)”和“JavaScript 算法和数据结构认证(300 小时)”。同时,学习“边看边写”课程,学习如何构建待办事项应用。
- 掌握从前到后的全栈应用程序构建过程——MERN 技术栈
- 精通 React - FreeCodeCamp - 前端库认证(300 小时)。同时学习Max Schwartz 的《React 完全指南》课程。我还建议观看Stephen Griders 的《现代 React Redux》入门教程,但无需看完。
- 在团队环境中运用技能——Chingu团队和黑客马拉松
- 展示你的作品——构建你的毕业设计项目
- 补上你错过的所有内容——积极参与本地科技圈、播客和线下聚会。
每个人的学习方式都不同,但如果放在几年前,我会这样规划自己的学习路径。它能很好地涵盖基础知识,而且能在短时间内掌握一项未来几年仍然很抢手的职业技能。
注意:如果您预算有限,请务必在 Udemy 课程打折时购买。每门课程的价格不要超过 10 到 15 美元。使用新的邮箱注册一个新账号,清除浏览器 cookie,您就能以这个价格购买第一门课程。所有这些课程的总花费应该不会超过 50 美元。
如果你想关注我并阅读更多内容,欢迎在这里关注我 :D
文章来源:https://dev.to/vincentntang/recommended-learning-path-for-a-self-taught-web-developer-react-nodejs-3b53