新手应该如何入门Web前端开发?_惠州前端培训学校
作者:alu发布时间:2022-03-20分类:前端开发专业浏览:604
新手应该如何入门Web前端开发?最近惠州北大青鸟很多学员都在问这个问题,那么下面惠州北大青鸟学术部老师给大家解答一下这个问题。
经历了网络互联的 Web 1.0 时代、社交的 Web 2.0 时代、基于移动的 Web 3.0 时代,如今的我们正逐步迈向知识分配的 Web 4.0 时代。与此同时,随着人工智能的兴起,聊天机器人和会话式 UI 也开始渗透 Web 领域,所以说,现在的 Web 开发已经和几年前完全不一样了。
当面对日新月异的技术、错综复杂的网站时,新入行的开发者很容迷失方向。以下这篇指南,展示了后端开发的全景、运维的趋势,希望给从事 Web 开发的程序员们一个清晰的概念,去其糟粕取其精华。
以前,后端的路线图只是一些平铺的技术介绍,而无法给出任何有关趋势的方向。而在这篇文章中,有详细的后端学习路线图,可助前行路上的开发者一臂之力。废话不多说,现在就开始吧。
接下来,我们将一步步来解释一下这张图。
开始之前要说明一点,虽然我们在图中没有列出 HTML/CSS 的知识,但建议你至少懂得一点,并会写一些基本的 HTML/CSS。
学一门语言
选择语言时总是会遇到无数种选择。我把语言按照类别分开,以便你作出决定。对于刚刚进入后端开发的初学者,我建议选任何一种脚本语言,它们的市场需求都很大,因此你可以迅速进步。如果你有前端知识,Node.js 会很容易,而且工作机会也很多。
如果你已经在从事后端开发,并且会某种脚本语言,我建议你不要再选另一种脚本语言,而是从“函数式”(Functional)或“多重编程”(Multiparadigm)中选择一种。例如,如果你会 PHP 或 Node.js,那就别再学 Python 或 Ruby,而是尝试下 Erlang 或 Golang。这样能开阔你的思维和视野。
练习学到的知识
学习知识的最佳途径就是练习。选好语言并了解一些基本概念之后,就应该学以致用,用它多做一些小应用。下面是一些建议:
实现一些常用的 bash 命令,例如实现 ls 的功能;
写个命令从 reddit 的 /r/programming 上以 JSON 格式获取并保存文章;
写个命令以 JSON 格式返回目录结构,例如 jsonify dir-name,返回一个 JSON 文件,内容是 dir-name 下的目录结构;
写个命令读取上一条的 JSON 文件并创建目录结构;
想一想每天要做的任务,并尝试自动化。
学习包管理器
理解语言的基础知识并做了一些简单的应用后,可以学一下那门语言的包管理器如何使用。包管理器可以帮你在应用中使用第三方库,还可以把你的库发布给其他人使用。
如果你选了 PHP,可以学一学 Composer;
选了 Node.js 可以学习 NPM 或 Yarn;
选了 Python 可以学一学 Pip;
选了 Ruby 可以学一学 RubyGems。
不论你选和种语言,都应该去学学相应的包管理器。
标准做法和最佳实践
每种语言都有标准做法和最佳实践。学一学你选择的语言的这些知识。例如, PHP 有 PHP-FIG 和 PSR。Node.js 和其他语言都有许多社区主导的规范。
安全性
务必要读一读有关安全性的最佳实践。阅读OWASP(https://www.owasp.org/index.php/Main_Page)的规范,理解各种安全问题,以及如何在所选语言中避免这些问题。
练习
现在你已经了解了语言的基本知识、标准做法和最佳实践、安全信息,以及如何使用包管理器。现在可以去创建一个包,并把它发布给其他人使用了。在这个过程中要时刻遵循你学到的标准和最佳实践。例如,如果你选了 PHP,你就应当在 Packagist 上发布。选择了 Node.js,就应该在 Npm 上发布等。
完成这一步之后,可以在 Github 上找一些项目,然后试着建一些 pull request。一些建议:
重构代码,实现你学到的最佳实践;
寻找 Bug 并试图解决;
增加新功能。
学习测试
测试有好几种类型。要理解这几种类型的测试,以及每种测试的目的。不过,可以从给你的应用编写单元测试和集成测试开始。同时,还要理解各种测试的术语,如 mock、stub 等。
实践
作为练习,可以为你之前的项目写一些单元测试,特别是给第 6 步做好的那些项目。
还要学习并计算你写的测试用例的覆盖率。
学习关系型数据库
学习如何在关系型数据库中永久保存数据。在选择要学习的数据库之前,要先理解各种数据库术语,如键、索引、正规化、元组等。
学习数据库有好几种选择。不过,学完其中一个数据库后,再学其他的就会很容易。可以学习 MySQL、MariaDB(是 MySQL 的一个分支,与 MySQL 几乎完全相同)或 PostgreSQL。建议先从 MySQL 开始。
练习时间
现在可以把所有学到的知识放到一起了。
用学到的所有知识做一个简单的应用。选一个点子,比如建立一个简单的博客应用,并实现以下的功能:
用户账号 - 注册和登录
注册用户可以创建博文
用户可以查看他创建的所有博文
用户可以删除博文
用户只能看到他自己的博文,看不到其他人的
给应用写单元测试和集成测试
数据库查询要使用索引。分析查询,确保索引被用到了。
学习一个框架
根据项目和语言不同,你可能需要框架,也可能不需要。每种语言都有多个框架供选择,应当去看看你选择的语言都有哪些框架,然后选一个关联最大的。
如果你选的是 PHP,我建议学习 Laravel 或 Symfony,如果需要微型框架的话,可以选择 Lumen 或 Slim。如果选择 Node.js,也有多种框架可以选择,但最流行的就是 Express.js。
练习时间
这一步的练习,可以将你之前在第 10 步创建的应用改成用框架实现。同时要保证移植一切功能,包括测试用例。
学习一种NoSQL数据库
首先要理解 NoSQL 是什么,它们与关系型数据库有何区别,以及为什么需要 NoSQL。NoSQL 数据库也有许多种,做一点研究,比较它们的功能和区别。常见的选择有 MongoDB、Cassandra、RethinkDB 和 Couchbase。如果必须选择其一,可以用 MongoDB。
缓存
学习如何在应用级别实现缓存。理解如何使用 Redis 或 Memcached,并在第 12 步创建的应用中应用缓存。
创建 RESTful API
理解 REST 并学习 RESTful API。一定要读一读 Roy Fielding 的论文中有关 REST 的那部分。确保有人说 REST 只能用于 HTTP API 时你能够反驳。
学习不同的认证方式
学习各种认证和授权方式。你应该知道它们的含义,它们之间的区别,以及何时该用哪个。
OAuth - 开放认证
Basic认证
Token认证
JWT - JSON Web Tokens
OpenID
消息传递
学习消息传递机制,理解为何、何时要使用消息传递。也有多种选择,但主流就是RabbitMQ和Kafka。如果只能选择其一,可以先学习RabbitMQ。
搜索引擎
随着应用程序变得越来越大,在关系型数据库或 NoSQL 上的简单查询将无法满足需求,这就必须使用搜索引擎。搜索引擎也有多种选择,每种都有自己的优缺点。
学习使用 Docker
Docker 可以大幅度降低开发的难度,它能复制与生产环境完全相同的环境,能保证操作系统干净,还能让编码、测试和部署更快捷。读者可以自己搜索“Docker 有哪些好处”的答案。在这一步,只需要去学习如何使用 Docker。
Web 服务器的知识
如果你已学到这里,那么在前面的步骤中你一定已经接触过了服务器。这一步主要是要找出不同 Web 服务器之间的区别,了解其限制和不同的配置选项,并理解怎样编写应用才能更好地利用这些限制。
学习如何使用 WebSocket
尽管这一步不是必须,但掌握 WebSocket 总会有好处。学习如何利用 WebSocket 编写实时 Web 应用程序,并用它写个示例应用。可以在前面完成的博客应用中使用 WebSocket 实现实时更新博文列表。
学习 GraphQL
学习如何用 GraphQL 编写 API。理解它与 REST 的区别,理解为何它被称为 REST 2.0。
看看图数据库
图模型能灵活地表示并处理数据之间的关系,而图数据库提供了快速、有效的方式来存储、读取并查询图。学学如何使用 Neo4j 或 OrientDB。
继续探索
一旦开始学习并练习后,你一定会遇到很多我们没有覆盖到的东西。保持开放的心态和健康好学的态度,去学习新东西吧。
记住,关键就是要多练习。刚开始可能有些不使用,但很快就会习以为常,时间长了还会觉得越来越好。
在此也推荐作者之前写的一篇前端开发技术全景文章:https://medium.com/tech-tajawal/modern-frontend-developer-in-2018-4c2072fa2b9c
标签:惠州前端培训学校惠州前端基础惠州前端培训北大青鸟IT计算机学校北大青鸟IT软件学校前端北大青鸟IT学校惠州北大青鸟北大青鸟
- 前端开发专业排行
- 标签列表
-
- Java (3694)
- 北大青鸟 (3713)
- 软件开发 (3613)
- JAVA (3413)
- UI设计入门 (2093)
- 惠州北大青鸟 (4375)
- 惠州IT培训 (2558)
- UI设计培训 (2090)
- 惠州UI设计培训 (2095)
- 惠州UI设计培训学校 (2090)
- 惠州计算机软件培训 (6260)
- 惠州计算件软件开发 (6260)
- 惠州计算机软件基础 (6261)
- 惠州计算机JAVA培训 (3574)
- 惠州计算机Java软件开发 (3620)
- 惠州计算机JAVA软件开发 (4645)
- 惠州计算机JAVA软件开发学校 (3338)
- 惠州计算机Java软件开发培训 (3338)
- 北大青鸟IT计算机学校 (5048)
- 北大青鸟IT软件学校 (5062)
- 北大青鸟IT学校 (5059)
- 惠州计算机UI设计软件开发 (2088)
- UI设计基础教程 (2088)
- UI设计是什么 (2088)
- UI设计教程 (2088)
- 网站分类
-
- 计算机教程
- 计算机入门
- 职业学校
- 新闻动态
- 专业课程
- 热门技术
- SEO
- 培训教程
- windows
- linux教程
- 系统集成
- 网站开发
- Html5
- 办公软件
- 师资力量
- 热点问答
- 联系我们
- 计算机学校
- 惠州计算机学校
- 河源计算机学校
- 广州计算机学校
- 深圳计算机学校
- 湛江计算机学校
- 佛山计算机学校
- IT计算机培训信息
- 设计专业
- UI
- 影视特效
- 游戏动漫设计
- Photoshop
- AI设计
- 软件教程
- Java技术
- C语言/C++语言培训
- C#
- Python技术
- PHP
- 数据库
- SQL Server
- 网络教程
- 网络安全
- 网络营销
- 软件专业
- 大数据专业
- 前端开发专业
- 软件测试专业
- Python专业
- 软件实施
- 珠海计算机学校
- 初中生学什么好
- 计算机认证
- 文章归档
-
- 2024年11月 (14)
- 2024年10月 (32)
- 2024年9月 (29)
- 2024年8月 (68)
- 2024年7月 (59)
- 2024年6月 (43)
- 2024年5月 (48)
- 2024年4月 (80)
- 2024年3月 (65)
- 2024年2月 (54)
- 2024年1月 (25)
- 2023年12月 (12)
- 2023年11月 (73)
- 2023年10月 (134)
- 2023年9月 (34)
- 2023年8月 (3)
- 2023年7月 (3)
- 2023年6月 (12)
- 2023年5月 (30)
- 2023年4月 (72)
- 2023年3月 (11)
- 2023年2月 (34)
- 2023年1月 (37)
- 2022年12月 (78)
- 2022年11月 (359)
- 2022年6月 (1193)
- 2022年5月 (570)
- 2022年4月 (1567)
- 2022年3月 (982)
- 2022年2月 (54)
- 2022年1月 (182)
- 2021年9月 (308)
- 2021年8月 (1704)
- 2021年7月 (2423)
- 2021年6月 (1806)
- 2021年5月 (1569)
- 2021年4月 (1380)
- 2021年3月 (1255)
- 2021年2月 (709)
- 2021年1月 (1521)
- 2020年12月 (3626)
- 2020年11月 (1646)
- 2020年10月 (1046)
- 2020年9月 (592)
- 最近发表
-
- 清远信息:2024年广清杯清远南粤家政技能大赛举行决赛|||计算机培训机构
- 汕尾信息:陈良川带队到汕尾技师学院调研|||计算机职业技能培训班
- 东莞信息:凤岗凤岗镇组织召开社保参保缴费及劳动用工政策宣讲会|||计算机软件培训学校
- 阳江信息:2024年度注册城乡规划师职业资格考试的合格标准是怎样的?|||计算机软件培训学校
- 阳江信息:职业技能提升补贴对象有哪些?|||大学生计算机培训学校
- 清远信息:清远市首家社保服务合作网点在清城区举办启动仪式|||计算机职业技能培训班
- 汕头信息:招聘658名中高端人才!2024年汕头市引进中高端人才专场招聘会举行|||北大青鸟计算机培训中心
- 东莞信息:广东省社保智能经办现场会在东莞召开|||大学生计算机培训学校
- 东莞信息:东坑镇举办2024年重点群体系列招聘活动|||计算机职业技能培训班
- 东莞信息:万江万江街道成功举办第四届粤菜师傅烹饪技能竞赛|||广州计算机编程培训