首页>行业资讯>2020Web开发学习路线图:从前端,到全站
永佳动态 行业资讯 永佳见解 常见问题

2020Web开发学习路线图:从前端,到全站

更新时间:2020/11/7 14:24:56 作者:永佳软件

    在是学习编程或转行从事软件工程的最佳时机。业界对Web开发人员的需求达到了历史最高水平,而且目前还在不断增长。互联网上有一些免费教程和收费的高级教程,本文将学习路线图分解开,详细介绍了有效学习各部分所需的技能以及相应的教程,大家可以根据自己的需要,选择最适合自己的方式,学到自己所需的知识和技能。
    现在是学习编程或转行从事软件工程的最佳时机。业界对Web开发人员的需求达到了历史最高水平,而且目前还在不断增长。互联网上有一些免费的教程和收费的高级教程,教授你作为开发人员得到一份工作所需的技能,不需要计算机科学学位哦。
    本文详细介绍了有效学习所需的技能以及相应的教程。这份配图指南由KamranAhmed提供,可以在roadmaps.sh或GitHubrepo上找到,Kamran做得很棒,请大家一定要多多支持,在repo上点个星,并订阅他的时事通讯。大家千万别被这份路线图吓倒,它乍一看可能含有很多内容,让我将它分解开来,使你可以一步一步地学习每一部分。
    本文将在各部分给出一些学习资源的链接,其中有免费的,也有收费的,大家可以根据自己的需要,选择最适合自己的方式,学到自己所需的知识和技能。
    本文将分为以下几个部分:
    必经之路,即任何路径都需要学习的内容:每个开发人员都需要知道的编程概念。
    编程入门:如果你完全是一个新手,要从这里开始学起。
    前端开发:学习如何构建用户界面(UI)。
    后端开发:学习如何构建API和编写服务器端代码。
    DevOps工程:学习如何管理基础设施、部署和系统。
    和深入编码:由入门到精通全面学习JS。
    软件工程书籍:在这一部分我将推荐一些书籍,我认为这些书籍对提高我对编程的整体理解很有帮助,并能对工作产生积极的影响。
    求职建议:最后奉上一些作为一名开发人员如何找工作和如何不断发展的小技巧。
    每位开发者都需要学习的内容
    我们将从每个开发人员都需要学习的技能开始,这些是所有路径的必经之路,无论是前端、后端还是DevOps。
    要成为一名高效的开发人员,你就必须要精通命令行,知道如何使用Git对代码进行版本控制,并了解Web的基本原理。
    命令行
    命令行是一种运行代码的方式。你必须能会浏览和执行所需的命令。你对命令行掌握得越好,作为开发人员的效率就越高。
    选择一款文本编辑器
    VSCode是Web开发人员的首选,这使它成为一个很好上手的工具,我个人用的就是它。它是免费开源的,有大量可以帮你提升效率的插件。除此之外,还有许多其他不错的选择,如Atom、WebStorm或Vim(对于硬核用户来说)。
    文本编辑器是编写代码的地方,终端是执行代码的地方。作为一名开发人员,这些地方就是你主要开展工作的地方了。所以,值得花些时间选择合适的编辑器,设置插件,学习热键。拥有正确的工作流程可以极大地提高你的工作效率。
    Git和版本控制
    Git是用于保存代码和创建不同版本的工具,使你能够与其他开发人员协作。GitHub是存储代码和在开源软件上进行协作的首选。
    编程入门
    在深入探索任何一条路径之前,你都应该具有坚实的编程基础。对于新开发人员来说,我强烈建议学习JavaScript作为你的第一语言。JS可以用于前端和后端开发人员,这意味着你可以成为一个全栈开发人员,同时能够专注于掌握一种语言。JavaScript的好处有:
    JavaScript是一种相对容易学习的语言;
    构建Web应用程序需要用到JavaScript,因为它是一款在浏览器中运行的编程语言;
    JavaScript既可用于前端,也可用于后端,它使你能够使用单独的一门语言编写全栈应用程序;
    有大量的工作需要JavaScript开发人员来做。
    如果很清楚自己要么只想处理数据,要么只处理后端,那么学习Python是另一个适合初学者的选择。
    有许多又免费质量又高的网站可以帮你入门编程,freeCodeCamp和Codecademy是很好的选择,可以帮你打下基础。
    freecodecamp.org,通过免费在线课程学习代码、编程项目,以及面试准备……
    codecademy.com,学习编程开发所需的基础技术技能。
    一旦你掌握了基础知识,下一步可以考虑免费的JavaScript30课程或BeginnerJavaScript高级课程。WebBos通过构建真实的项目来教授JavaScript的核心概念。你应该尽可能快地动手去做真正的项目。项目是学习工作技能的最佳途径,也能让你在开始准备面试时为自己建立一个作品集。
    如果你正在找一门从初学者到专业人士的课程,那么Pluralsight是一个不错的选择。如需订阅,你必须首先注册一个账号(免费试用),它们几乎涵盖了所有的优质内容。
    学习前端开发
    我们是通过前端开发为网站构建用户界面的。若要学习前端开发,你必须有坚实的JavaScript基础,并理解HTML/CSS是如何工作的。
    流行的客户端库(React、Angular和Vue)都是用JavaScript编写的。认真了解VanillaJavaScript对于提升水平掌握构建复杂应用程序所需的技能是至关重要的。一旦你有了坚实的JavaScript基础,就应该学习HTML和CSS了。尽管UI是用JS编写的,但它在本质上仍然是生成HTML并由CSS定义样式。
    以下学习资源可供选择:
    2020年Web开发训练营中有完备的网络开发课程,从HTML和CSS开始入门,学习JavaScript以及它如何与DOM交互,最终构建一个全栈web应用程序。
    Web开发人员训练营中有你需要学习Web开发的HTML、CSS、JS、Node等课程。
    如果需要了解JavaScript方面的更多内容,请参阅"编程入门"部分给出的资源。
    HTML和CSS
    大家通常会把HTML和CSS放在一起学习。HTML是给出结构化页面骨架的语言,而CSS则是用来定义样式的语言。
    以下学习资源可供选择:
    为初学者准备的HTML和CSS课程,这是为初学者准备的循序渐进的课程,如果想要学习如何创建网页,但又害怕学不会HTML和CSS,不知道从哪里开始,可以考虑学习一下这个课程。
    使用HTML5和CSS3构建快速响应的真实网站,这是一门非常实用、易学的课程。
    CSS:完全指南(CSS进阶),如果是第一次学习CSS,或者想要复习一下CSS然后深入学习,可以考虑这个课程。
    UI类库(React、Vue、Angular)
    现代UI开发越来越趋向于变为一个组件模型,具有3个由专业前端工程师使用的主要类库——React、Vue和Angular。你最好能有所侧重,能够深入了解这些类库中的其中一个即可,而不是试图把这3个都学全。在之后的工作中,如果公司使用了你没有学过的框架,你能够借机再去学一些不同的东西。React目前是最流行的,但是Vue和Angular都在被迅速地采用。
    以下学习资源可供选择:
    React官方介绍,在里面有一个React的入门教程,本教程假设你不具备任何React知识,通过构建一个小游戏来帮你入门。
    React完全指南,这是一门完备的React16的课程(包括钩子、React路由、Redux),你可以从零开发深入学习React,包括Reactjs、钩子、Redux、React路由、动画、Next.js等等。
    另外还有ModernReactwithRedux、ReactforBeginners、AdvancedReact+GraphQL等课程可供选择。
    以下学习资源可供选择:
    Vue官方介绍
    VueJS2-完备指南(包括Vue路由器和Vuex)
    VueJS2终极开发课程,通过使用Vue构建3个专业的、真实的web应用程序来学习和掌握VueJS
    VueJS基础与Vuex和Vue路由,11个小时掌握Vue、Vuex和Vue路由
    以下学习资源可供选择:
    Angular8完备指南,掌握Angular(Angular2+,包括Angular8),并使用Angular.js来构建出色的、快速响应的Web应用程序。
    完备的Angular课程:初学者进阶,全面的Angular4(Angular2+)课程。用Angular、Firebase和Bootstrap构建一个真正的电子商务应用。
    学习后端开发
    后端,是你与数据库通信、处理业务逻辑并将必要的数据发送到前端的地方。
    你的后端/服务器端可以用任何语言编写。我的建议是从Node/JavaScript开始,因为它相对容易学习,同时也非常强大。此外,这样你也可以更容易地在前后端之间进行转换,因为你的前后端使用的是相同的语言。我还将详细介绍其他可以用于后端开发的语言的学习——Python、Go、RubyonRails。
    使用数据库是后端工程师的核心工作,我还将概述学习SQL、NoSQL和GraphQL的教程。虽然NoSQL已经变得越来越流行,但到目前为止,SQL仍然是应用最多的数据库类型,是学习的基础。
    以下学习资源可供选择:
    Node.js开发教程大全(第三版)
    NodeJS完全指南(包括MVC,RESTAPI,GraphQL),精通NodeJS,学会用Node.js、GraphQLAPI构建RESTAPI,添加认证,使用MongoDB、SQL,以及更多内容。
    学习Node,学习使用Node.js、Express、MongoDB构建应用程序的高级培训课程。
    数据库
    数据库用于永久保存应用程序的数据。通常,后端会在API调用期间对数据库进行查询。SQL和NoSQL是两种常见的数据库类型。
    PostgreSQL/MySQL
    这是两种最常用的SQL实现,你可能会看到在大多数公司中都使用了它们。
    GraphQL
    GraphQL本身不是数据库,而是数据库之上的查询语言。许多人认为它将彻底改变应用程序的开发,彻底改变我们构建API的方式。它正在迅速被科技巨头和顶尖初创公司采用和大力利用。
    你可以试试Hasura。它让你能够使用Web界面生成GraphQL,并自动为你构建Postgres数据库。
    MongoDB
    Mongo是与Node一起使用的最流行的NoSQL数据库。它将数据存储在一些很容易映射为JSON和JavaScript对象键/值对的文档中。
    以下学习资源可供选择:
    Python
    Python对于初学者来说很容易掌握,而技术巨头和初创公司也广泛地将它用于后端、数据科学和脚本。
    以下学习资源可供选择:
    Python完全训练营:Python3从菜鸟到大虾,像专业人士一样学习Python!从基础开始,最终创建自己的应用程序和游戏!
    Python和Django全栈Web开发人员训练营,欢迎来到Python和Django全栈Web开发人员训练营!在这门课程中,把你需要知道的一切都涵盖进来了。
    Go(Golang)
    Go相对较新,但迅速得到了广泛地采用。它是一种静态类型的语言,但对开发人员也非常友好。这使得它成为构建服务的理想选择。
    使用谷歌的Go编程语言进行Web开发
    RubyonRails
    RubyonRails曾是多年来首选的创业语言。它的易用性和约定驱动的语言使得快速构建产品变得很容易。
    以下学习资源可供选择:
    学习DevOps工程
    DevOps管理公司的基础设施。它们设立了部署Web应用程序和管理站点流量的流程。DevOps工程师的重点是让其他团队尽可能快地将代码发布到生产环境,并确保服务器始终处于正常运行状态,同时尽可能快地获得最终用户的认可。
    DevOps的领域非常广泛,它们所做的选择影响着每个工程团队。作为DevOps工程师需要学习的一些基本主题包括:
    Linux:现在67%以上的服务器上都在使用Linux,很可能DevOps工程师会要用到的系统。深入理解它非常重要。
    安全性:确保你的整个云是安全的和加密的。还要设置API,使所有内容都通过HTTPS提供,并不受常见攻击的影响。
    命令行/终端:我们在第一部分中介绍了命令行,而它对于DevOps工程师来说则更为重要。你必须彻底理解它是如何工作的,以及主要的Linux命令,并能够SSH到远程服务器上进行工作。你还将为整个公司编写脚本和自动化程序。
    自动化测试:建立一个自动化测试系统,从而使所有发布生产的代码都经过彻底的检查,从而减少引入bug或回归的可能性。
    持续集成和持续交付(CI/CD):设置一条用于部署的流水线,以便代码自动合入到生产环境中,同时减少个体开发人员的手动接触点。自动化测试在CI/CD中扮演着重要的角色。
    容器:容器是基础设施的核心部分,大多数初创公司和科技巨头都以某种形式使用Docker和或Kubernetes。容器确保你的代码总是在一个干净的、可复制的环境中执行。
    云提供商:了解如何使用AWS、GCP或Azure等流行提供商管理云中的服务器。
    日志管理:必须有适当的日志记录。它使你可以诊断bug,查找应用程序中任一问题的根本原因。
    JavaScript及深入编码
    一方面,我建议你尽快开始动手做真正的项目。而另一方面,你在某种程度上会希望深入研究JavaScript并了解它是如何工作的。此外,了解数据结构、算法和其他常规的计算机科学知识也很重要。
    以下学习资源可供选择:
    你不知道的JavaScript(YDKJS),这本JavaScript书非常非常棒。如果你完全掌握了书中的内容,你就会了解JS整个核心语言。你可以在GitHub上免费阅读,也可以在亚马逊上购买实体书或Kindle电子书。
    TypeScript——这对初学者来说不是必需的(除非你使用Angular),但是TypeScript的应用正在快速增长,并且已经在占领JS的市场。许多人认为它是JavaScript的未来。
    JavaScript中的数据结构——从头开始在JavaScript中构建最常见的数据结构。该系列视频是一个很好的扩展,你可以藉此梳理构建你已经学到的知识体系,来建立你已经获得的知识,同时它也是一个很不错的面试资源。
    EloquentJavaScript——另一本很受JavaScript工程师欢迎的书。它涵盖的主题比YDKJS更加广泛,包括浏览器和Node。可以在线免费阅读,也可以在亚马逊上购买实体书或Kindle电子书。
    算法介绍——虽然这本书对于初学者不那么友好,但它很深入。到了你真的觉得是时候要深入理解算法了,就该读读它了。
    算法——这门课是用Java教的,但并不影响理解学习。你将全面了解计算机科学中最重要的算法。该课程由普林斯顿大学在Coursera平台上教授。
    以下5本书将使你成为更好的程序员,或者,在你的职业生涯的某些时刻(比如面试)提供必要的帮助。如果有更多的需要,可以看看完整的编程书籍推荐列表:
    《代码整洁之道》,RobertCMartin著
    《程序员修炼之道》,AndrewHunt和DavidThomas合著
    《高效的工程师》,EdmundLau著
    《程序员面试金典》,GayleLaakmannMcDowell著
    《计算机编程艺术》,DonaldKnuth著
    如果你正在学习网络开发,你也很有可能对创业感兴趣。以下是一些创业和成功哲学相关的顶级书籍。
    《精益创业》,EricRies
    《从0到1》,PeterThiel著
    《Hooked:HowtoBuildHabit-FormingProducts》,NirEyal著
    《牵引:创业如何快速吸引客户》,GabrielWeinberg和JustinMares合著
    《创业维艰》,BenHorowitz著