threejs开发指南第三版_2020Web开发学习路线图:从前端,
到全站
在是学习编程或转⾏从事软件⼯程的最佳时机。业界对Web开发⼈员的需求达到了历史最⾼⽔平,⽽且⽬前还在不断增长。互联⽹上有⼀些免费教程和收费的⾼级教程,本⽂将学习路线图分解开,详细介绍了有效学习各部分所需的技能以及相应的教程,⼤家可以根据⾃⼰的需要,选择最适合⾃⼰的⽅式,学到⾃⼰所需的知识和技能。
现在是学习编程或转⾏从事软件⼯程的最佳时机。业界对Web开发⼈员的需求达到了历史最⾼⽔平,⽽且⽬前还在不断增长。互联⽹上有⼀些免费的教程和收费的⾼级教程,教授你作为开发⼈员得到⼀份⼯作所需的技能,不需要计算机科学学位哦。
本⽂详细介绍了有效学习所需的技能以及相应的教程。这份配图指南由KamranAhmed提供,可以在roadmaps.sh或GitHubrepo上到,Kamran做得很棒,请⼤家⼀定要多多⽀持,在repo上点个星,并订阅他的时事通讯。⼤家千万别被这份路线图吓倒,它乍⼀看可能含有很多内容,让我将它分解开来,使你可以⼀步⼀步地学习每⼀部分。
本⽂将在各部分给出⼀些学习资源的链接,其中有免费的,也有收费的,⼤家可以根据⾃⼰的需要,选择最适合⾃⼰的⽅式,学到⾃⼰所需的知识和技能。
本⽂将分为以下⼏个部分:
必经之路,即任何路径都需要学习的内容:每个开发⼈员都需要知道的编程概念。
编程⼊门:如果你完全是⼀个新⼿,要从这⾥开始学起。
前端开发:学习如何构建⽤户界⾯(UI)。
后端开发:学习如何构建API和编写服务器端代码。
DevOps⼯程:学习如何管理基础设施、部署和系统。
JavaScript和深⼊编码:由⼊门到精通全⾯学习JS。
软件⼯程书籍:在这⼀部分我将推荐⼀些书籍,我认为这些书籍对提⾼我对编程的整体理解很有帮助,并能对⼯作产⽣积极的影响。
求职建议:最后奉上⼀些作为⼀名开发⼈员如何⼯作和如何不断发展的⼩技巧。
每位开发者都需要学习的内容
我们将从每个开发⼈员都需要学习的技能开始,这些是所有路径的必经之路,⽆论是前端、后端还是DevOps。
要成为⼀名⾼效的开发⼈员,你就必须要精通命令⾏,知道如何使⽤Git对代码进⾏版本控制,并了解Web的基本原理。
命令⾏
命令⾏是⼀种运⾏代码的⽅式。你必须能会浏览和执⾏所需的命令。你对命令⾏掌握得越好,作为开发⼈员的效率就越⾼。
选择⼀款⽂本编辑器
VSCode是Web开发⼈员的⾸选,这使它成为⼀个很好上⼿的⼯具,我个⼈⽤的就是它。它是免费开源的,有⼤量可以帮你提升效率的插件。除此之外,还有许多其他不错的选择,如Atom、WebStorm或Vim(对于硬核⽤户来说)。
⽂本编辑器是编写代码的地⽅,终端是执⾏代码的地⽅。作为⼀名开发⼈员,这些地⽅就是你主要开展⼯作的地⽅了。所以,值得花些时间选择合适的编辑器,设置插件,学习热键。拥有正确的⼯作流程可以极⼤地提⾼你的⼯作效率。
Git和版本控制
Git是⽤于保存代码和创建不同版本的⼯具,使你能够与其他开发⼈员协作。GitHub是存储代码和在开源软件上进⾏协作的⾸选。
编程⼊门
在深⼊探索任何⼀条路径之前,你都应该具有坚实的编程基础。对于新开发⼈员来说,我强烈建议学习JavaScript作为你的第⼀语⾔。JS 可以⽤于前端和后端开发⼈员,这意味着你可以成为⼀个全栈开发⼈员,同时能够专注于掌握⼀种语⾔。JavaScript的好处有:
JavaScript是⼀种相对容易学习的语⾔;
构建Web应⽤程序需要⽤到JavaScript,因为它是⼀款在浏览器中运⾏的编程语⾔;
JavaScript既可⽤于前端,也可⽤于后端,它使你能够使⽤单独的⼀门语⾔编写全栈应⽤程序;
有⼤量的⼯作需要JavaScript开发⼈员来做。
如果很清楚⾃⼰要么只想处理数据,要么只处理后端,那么学习Python是另⼀个适合初学者的选择。
有许多⼜免费质量⼜⾼的⽹站可以帮你⼊门编程,freeCodeCamp和Codecademy是很好的选择,可以帮你打下基础。
<,通过免费在线课程学习代码、编程项⽬,以及⾯试准备……
codecademy,学习编程开发所需的基础技术技能。
⼀旦你掌握了基础知识,下⼀步可以考虑免费的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著
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论