很多人都想学编程。但是苦于没有具体的步骤和指导。比如想找份前端开发的工作,却不知道应该先学习什么再学习什么,也不知道该选择什么样的工具。因为经常被人问到类似的问题,全栈开发者Kamran Ahmed索性在github上制订了一份现代前端开发的路线图,并且用一篇文章对前端开发的整个学习过程进行了详细解释。感兴趣的初学者不容错过。

1.学习HTML基础

HTML给你的网页赋予了结构。它就像是人的骨架那样让你保持站立。首先你需要去学习语法以及它必须提供的一切。你的学习应该聚焦在下面这些东西上:

学习HTML基础,了解如何编写语义HTML

理解如何把网页分成section(段落),以及如何正确组织DOM(文档对象模型)

2.学点CSS

现在我们已经学会了如何给网页准备好骨架,接下来就是在此基础上添加一些皮肤让它好看一点了。CSS——级联样式表就是用来美化你的HTML页面的。

首先要做的是学习语法,熟悉常见的CSS属性。

了解盒模型(box model),掌握如何利用Grid和Flexbox准备布局

一旦学习完上面的,再学习以下通过媒体查询把网站做成响应式的。

3.学习JavaScript基础

JavaScript能让你的HTML页面互动性更强。比方说你在网站上看过的所有那些幻灯片、弹出窗口以及广播通知,以及在没有重载页面的情况下重载页面的特定部分,这些都是用JavaScript做的。在这一步中,你将会学习JavaScript的基础来为后面的旅程做好准备——学习这门语言的语法和基本机构。

学习如何用JavaScript来操纵DOM,比方说如何从页面移除一些元素,如何增加一些元素,增加和移除类,通过JavaScript应用CSS样式等。

完成之后再学习和理解诸如范围、闭包、变量提升以及事件冒泡这样的主题。

学习如何用XHR或者Ajax生成HTTP调用。Ajax可以让你在不需要重载网页的情况下执行特定动作。

学完之后接下来就要了解ES6+的所有新特性。ES6只是JavaScript的一个版本,里面给这门语言引入了大量有趣的更新,比如类、定义变量的多种方式,给数组增加了新的方法,字符串连接等。你们在网上找到的大部分文章都会用Babel来解析ES6,这其实是个转译器,可以将这门新的JavaScript转换为旧的JavaScript,因为有一些旧版的浏览器不支持新版的JS。不过现在先不用担心Babel,只需要了解相关概念,然后用到任何一种支持ES6的最新版浏览器上来练习一下就行。我们后面还会再继续讲ES6的。

现在你应该已经感觉到东西像是那么一回事了。如果你按照上面的步骤做下来的话应该鼓励一下。这些是你刚刚学到的一些最重要的东西。

4.我应该学jQuery吗?

曾经有一段时间每个人都对jQuery疯狂,也有充分的理由;这是一个强大的库,在JavaScript基础上提供了一个封装,让你可以用兼容浏览器的方式执行任何东西。不过那些日子已经一去不复返,现在新项目用它已经不是很多了,但是仍然还有人在用。你不是一定要学它,但是这玩意儿的确很容易,如果你想看看的话还是有好处的。

5.包管理器

在此之前,如果你要用到一些外部库比如插件或者任何外部的桌面小部件的话,你得手工下载JavaScript和CSS文件并且将它们放到项目里面,然后那些库或者插件发布新版本的时候,你又得下载更新的文件再放到你的项目里面,这是极其麻烦的事情。包管理器可以干掉这种麻烦。它们帮助你把外部库和插件放到你的项目里面,这样你就不用关心手工复制库或者费事地在它们发布新版时更新文件的事情了。现在有yarn和npm了。这两个几乎是一样的,都只是实现,你可以任选一个,一旦学会了使用其中一个,另一个自然也不成问题。

6.CSS预处理器

预处理器以CSS默认不支持的功能丰富了后者。可选项有很多,包括Sass、Less、Stylus等等。要我选的话,我会选择Sass。然而,PostCSS最近的发展势头也不错,这属于一个锦上添花的东西,有点类似于CSS的“Babel”。你可以拿来独立使用或者在Sass的基础上叠加。目前我建议你先学Sass,等后面有时间了再看看PostCSS。

7.CSS框架

你已经不再需要学习CSS框架了,然而如果你想学一个的话。我会推荐在Bootstrap、Materialize和Bulma里面选。但如果你要考虑它们的市场需求的话,我会选择Bootstrap。

8.CSS组织

随着你的应用不断膨胀,CSS也开始变得混乱难以维系。有多种手段可以对你的CSS进行组织,让它更好地应对伸缩性,比如OOCSS、SMACSS、SUITCSS、Atomic以及BEM。你应该了解它们之间的不同,但是我更偏好BEM。

9.构建工具

工具可以帮助你进行JavaScript应用的构建/打包以及开发。这一类包括了linter(代码检查)、task runner(自动构建)以及bundler(打包工具)。

对于自动构建,这个本来是是很多选项的,包括npm脚本、gulp、grun等等。不过这一次,既然webpack能够处理gulp能做的大部分东西,所以只有自动构建中的npm脚本可以用来对webpack能做的任务进行自动化。你不需要学习Gulp,然而到后面如果你有点时间的话,可以去看看它能否对你的应用有所帮助。

至于linter,再次地也有很多选项,其中包括ESLint、JSLint、JSHint以及JSCS等。但是目前主要是ESLint用得多。

对于模块打包工具,不同的选项包括Parcel、Webpack、Rollup、Browserify等。如果你必须选一个,目前你可以闭着眼睛选Webpack就是。Rollup也很常用但是主要建议用到库上面,至于app,还是以webpack为主。所以现在你就先学习一下webpack吧,后面如果想的话再了解一下Rollup。

10.选一个框架

在旧的路线图中,这个部分往往是紧挨着基础部分的,但是这次我改到放在Sass、构建工具和包管理器后面了,因为在框架中你全都会用上那些东西,如果不具备相应知识的话会吓到你的。

框架也有好些选项。不过目前比较常用的是React、Vue和Angular。最近对React.js的需求越来越旺盛。然而,前面列的这几个你随便选一个都不会错。我个人会选React或者Angular。不过特别说明一下,作为初学者你也许会发现相对而言Angular会容易点,也许是因为它支持几乎一切立即可用的东西,比如支持延迟加载的强大路由器,支持拦截器的HTTP客户端,依赖注入,组件CSS封装等而不需要关心选择外部库的问题。不过React在社区方面无疑更有优势,而且Facebook一直都在努力改进它。你需要确保的是不要因为什么东西火就选择什么,要去google一下,对比一下,看看哪一个最适合你。

这两个的比较以及我的个人体会我要留到下一篇文章再谈了,不过既然这篇文章是谈学习的,我就来讲讲如何找到Angular和React的学习曲线。

在前端领域混了这几年,总结了一套前端学习的精讲视频和学习路线,如果有对前端开发感兴趣的伙伴,不管你是想转行,或是大学生,还有工作中想提升自己能力的web前端党,欢迎大家的加入我的前端开发交流群:603985993 希望大家诚心交流!,与企业需求同步。好友都在里面学习交流,每天都会有大牛定时讲解前端技术!也可以关注我的微信公众号:【前端留学生】 每天更新最新技术文章干货。

一旦你选择了自己的框架,当然还有其他一些东西需要你学的。比方说如果你决定学React的话,你可能还得学Redux或者Mobx去了解状态管理,具体选学什么要取决于你要做的应用的规模。Mobx适合中小规模应用,Redux更适合大规模应用。甚至你可能都不需要学,靠React的原生状态管理就行了,如果你的app允许的话。

如果你选择Angular,你就得用TypeScript(没有它你也能开发出Angular应用,但是我们还是推荐你使用)和Rx.js,这些除了Angular应用以外在其他地方也能用得上。这都是非常强大的库,也适合于函数编程开发。

如果你选了Vue.js的话,也许还得学习Vuex,这东西有点类似于Redux但是是给Vue用的。

11.渐进式Web应用

一旦完成了上述所有步骤,再来学习一下service worker以及如何制作渐进式web应用。

12.测试你的应用

应用测试有很多工具,各自的用途也不一样。我本人经常是组合使用Jest、Mocha、 Karma及Enzyme。然而,在开始选择工具之前,最好是首先理解有哪些不同的测试类型,看看所有的选项情况,然后从中再选择最适合您需求的一个。

13.静态类型检查器

静态类型检查器帮助给JavaScript增加类型检查。你不需要学习这些,不过这些东西可以赋予你超能力,而且学习起来也很快,几个钟头就行了。这方面主要有TypeScript 和 Flow。我喜欢TypeScript ,不过你可以两个都看看,再选你喜欢的。

14.服务器渲染

目前为止,你所学到的技能应该足够你找到一个“前端工程”的位置了。但且慢,你还可以更上一层楼。

你还可以在选定的任何框架内再学学服务器端渲染的知识。有不同的选项可选,这要取决于你用什么样的框架。比方说如果你决定用React,最值得关注的选项是Next.js 和 After.js。如果是Angular,你可以选Universal。对于Vue.js,我们有 Nuxt.js。

这份路线图可能还会有遗漏的地方,但是足以应付任何“前端工程”角色之所需。还要记住的是,关键是尽可能多地练习。一开始你可能会觉得很吓人,总感觉自己没有掌握,但这是正常的,慢慢你就会觉得自己变得越来越好。还有,陷入困境时别忘了寻求帮助,你会惊喜地发现有多少人愿意帮助你的,或者至少我愿意。

前端新手入门必读!前端开发线路图分享相关推荐

  1. 2021年最新版Web前端学习路线图-前端小白入门必读-推荐

    2021年最新版Web前端学习路线图-前端小白入门必读-推荐 Hello,大家好,相信很多学习前端的小伙伴,会有很多的疑惑: 我要学习那些技术? 我要到哪里去学习这些技术呢? 学习这些技术的目的对就业 ...

  2. 新手入门百度地图开发的(0,0)坐标问题

    对于大部分人来讲,由于百度地图资料众多,过度依赖搜索引擎等等原因.新接触百度地图开发工作其实并不容易.今天说说关于坐标(0,0)的问题. 首先仍然介绍坐标系,我们先不管采用的和wgs84还是gcj02 ...

  3. 前端新手入门-有了这两个软件小工具学习事半功倍

    前端基本的工具:开发工具(sublime Text 最好记得一些快捷键,写代码的时候就比较迅速.比如最基本的是Ctrl+s保存 一写停下来就保存,养成这个习惯可以省去一些不必要的麻烦). 一丶取色器( ...

  4. 前端新手的初级前端面试学习笔记(有答案,有些我自己觉得可以)

    文章目录 var和let const的区别 那什么是变量提升? 作用域 2. typeof返回那些类型 undefined和null 什么时候使用null 3. 列举强制类型转换和隐式类型转换 手写深 ...

  5. Python书籍推荐,新手入门必读

    读书是汲取某个特定学科的知识以及更深入的了解该学科最好的方式,所以Python新手入门少不了Python书籍的辅助.那么Python新手入门可以看哪些书呢?现在市面上Python书籍已经很多了,要想从 ...

  6. 百度云盘云知梦php_[云知梦]WEB前端开发_WEB前端新手入门视频教程[百度云盘]

    有想系统学习前端技术的小伙伴们,福利来啦! 课程介绍 本路线图汇集云知梦大牛专家老师最新原创课程,路线图内容涵盖Html/CSS.Javascript.jQuery. Node.js.Express ...

  7. 新手入门Web前端要掌握的4项基础技能

    Web前端开发是近些年非常受欢迎的职业,几乎每个互联网企业都会招聘Web前端工程师.但目前我国高校并没有开设Web前端专业,想要成为Web前端工程师系统学习就成为很多人选择的方式.那么,Web前端要掌 ...

  8. 新手入门Web前端,你需要克服这几点困难

    Web前端是一个入行门槛较低的开发技术,更是近几年热门的职业,Web前端不仅薪资高发展前景好,是很多年轻人向往的一个职业.看到这里很多小伙伴想问:学Web前端需要注意哪些问题? 学Web前端需要克服以 ...

  9. web前端新手入门教程:Web 框架的架构模式探讨

    在写干货之前,我想先探(qiang)讨(diao)两个问题,模式的局限性?模式有什么用? 最近看到一篇文章对我启发很大,许来西在知乎的回答<哲学和科学有什么关联?>,全篇较长,这里摘录我要 ...

最新文章

  1. Spring 的 Bean 生命周期,11 张高清流程图及代码,深度解析
  2. SAP WM 采购订单收货后LT06上架界面弹出的QM Sample小窗口如何不让其出现?
  3. 为什么传值时加号变成了空格_为什么中英文字间距不一样?我想谈谈我的理解...
  4. 27、Power Query-日期与时间数据处理实例(图书室借书统计)
  5. Day11多态部分-6 【1.4 多态的应用以及注意事项】
  6. 中点击按钮新建widget_iOS 14-Widget开发
  7. 智能机器人建房子后房价走势_明后年日照房价走势如何?究竟是“上涨”还是下降...
  8. kaggle中zillow比赛中模型融合的方法及其代码
  9. HTML CSS JS(一)
  10. 【操作系统】进程管理(二)
  11. NOIP2017错题
  12. 热门好用的IP归属地API
  13. “爆炸图!“ArcGIS中制作一张好看的爆炸分析图(附练习数据)
  14. laravel mysql 事务_laravel框架中的MySQL事务处理 阿星小栈
  15. WOS(六)——导出数据格式及处理
  16. 图像滤镜艺术---保留细节的磨皮滤镜之PS实现
  17. linux设置时间大全
  18. 微信小程序中使用Echarts(折线图)
  19. 6大社群运营技巧,让你轻松度过新媒体寒冬
  20. linux删除eth2设备_如何添加删除子网卡eth0:1(linux案例)

热门文章

  1. android主题资源,使用 Theme Editor 设计应用主题背景
  2. 里计算两个数的总和_发动机排量怎样计算?懂这个的修理工真嘀很少!
  3. 大datatable 内存一直涨_听说你的爬虫一直在整站里循环绕圈圈爬取重复的数据?...
  4. tex中让公式和文字在一行_1行代码搞定LaTeX公式编写,这个4.6M的Python小插件,堪称论文必备神器...
  5. python矩阵元素排序,使用Python基于列表值对矩阵列进行排序
  6. zabbix 安装(yum)
  7. 云浮市云计算大数据中心预计明年6月建成
  8. WCF 安全性 之 自定义证书验证
  9. 【蓝鸥Unity开发基础三】课时3 Terrain地形系统【未完】
  10. [Link]选择一个 Python Web 框架:Django vs Flask vs Pyramid