程序员练级攻略(2018):前端基础和底层原理

图片描述

想阅读更多优质文章请猛戳GitHub博客,一年百来篇优质文章等着你!javascript

这个是我订阅 陈皓老师在极客上的专栏《左耳听风》,我整理出来是为了本身方便学习,同时也分享给大家一块儿学习,固然若是有兴趣,能够去订阅,为了不广告嫌疑,我这就很少说了!如下第一人称是指陈皓老师。css

对于前端的学习和提升,个人基本思路是这样的。首先,前端的三个最基本的东西 HTML五、CSS3 和 JavaScript(ES6)是必需要学好的。这其中有不少不少的技术,好比,CSS3 引伸出来的 Canvas(位图)、SVG(矢量图) 和 WebGL(3D 图),以及 CSS 的各类图形变换可让你作出很是丰富的渲染效果和动画效果。html

ES6 简直就是把 JavaScript 带到了一个新的台阶,JavaScript 语言的强大,大大释放了前端开发人员的生产力,让前端得以开发更为复杂的代码和程序,因而像 React 和 Vue 这样的框架开始成为前端编程的不二之选。前端

我一直认为学习任何知识都要从基础出发,因此我会有很大的篇幅在讲各类技术的基础知识和基本原理,尤为是以下的这些知识,都是前端程序员须要一块一块啃掉的硬骨头。html5

  • JavaScript 的核心原理。这里我会给出好些网上很不错的讲 JavaScript 的原理的文章或图书,你必定要学好语言的特性和其中的各类坑。
  • 浏览器的工做原理。这也是一块硬骨头,我以为这是前端程序员须要了解和明白的东西,否则,你将没法深刻下去。
  • 网络协议 HTTP。也是要着重了解的,尤为是 HTTP/2,还有 HTTP 的几种请求方式:短链接、长链接、Stream 链接、WebSocket 链接。
  • 前端性能调优。有了以上的这些基础后,你就能够进入前端性能调优的主题了,我相信你能够很容易上手各类性能调优技术的。
  • 框架学习。我只给了 React 和 Vue 两个框架。就这两个框架来讲,Virtual DOM 技术是其底层技术,组件化是其思想,管理组件的状态是其重点。而对于 React 来讲,函数式编程又是其编程思想,因此,这些基础技术都是你须要好好研究和学习的。
  • UI 设计。设计也是前端须要作的一个事,好比像 Google 的 Material UI,或是比较流行的 Atomic Design 等应该是前端工程师须要学习的。

而对于工具类的东西,这里我基本没怎么涉及,由于本文主要仍是从原理和基础入手。那些工具我以为都很简单,就像学习 Java 我没有让你去学习 Maven 同样,由于只要你去动手了,这种知识你天然就会得到,咱们仍是把精力重点放在更重要的地方。java

下面咱们从前端基础和底层原理开始讲起。先来说讲 HTML5 相关的内容。react

HTML5

  • HTML5 权威指南 ,本书面向初学者和中等水平 Web 开发人员,是牢固掌握 HTML五、CSS3 和 JavaScript 的必读之做。书看起来比较厚,是由于里面的代码不少。
  • HTML5 Canvas 核心技术 ,若是你要作 HTML5 游戏的话,这本书必读。

对于 SVG、Canvas 和 WebGL 这三个对应于矢量图、位图和 3D 图的渲染来讲,给前端开发带来了重武器,不少 HTML5 小游戏也所以蓬勃发展。因此,你能够学习一下。git

学习这三个技术,我我的以为最好的地方是 MDN。程序员

最后是几个资源列表。es6

CSS

在《程序员练级攻略(2018)》系列文章最开始,咱们就推荐过 CSS 的在线学习文档,这里再推荐一下

MDN Web Doc - CSS 。我我的以为只要你仔细读一下文档,CSS 并不难学。绝大多数以为难的,一方面是文档没读透,另外一方面是浏览器支持的标准不一致。因此,学好 CSS 最关键的仍是要仔细地读文档。

以后,在写 CSS 的时候,你会发现,你的 CSS 中有不少看起来类似的东西。你的 DRY - Don’t Repeat Yourself 洁癖告诉你,这是不对的。因此,你须要学会使用 LESSSaSS
这两个 CSS 预处理工具,其能够帮你提升不少效率。

而后,你须要学习一下 CSS 的书写规范,前面的《程序员修养》一文中提到过一些,这里再补充几个。

若是你须要更有效率,那么你还须要使用一些 CSS Framework,其中最著名的就是 Twitter 公司的 Bootstrap,其有不少不错的 UI 组件,页面布局方案,可让你很是方便也很是快速地开发页面。除此以外,还有,主打清新 UI 的 Semantic UI 、主打响应式界面的 Foundation 和基于 Flexbox 的 Bulma

固然,在使用 CSS 以前,你须要把你浏览器中的一些 HTML 标签给标准化掉。因此,推荐几个 Reset 或标准化的 CSS 库:NormalizeMiniRest.csssanitize.cssunstyle.css

关于更多的 CSS 框架,你能够参看 Awesome CSS Frameworks

接下来,是几个公司的 CSS 相关实践,供你参考。

CodePen’s CSS

Github 的 CSS

Medium’s CSS is actually pretty f*ing good

CSS at BBC Sport

Refining The Way We Structure Our CSS At Trello

最后是一个能够写出可扩展的 CSS 的阅读列表 A Scalable CSS Reading List

JavaScript

下面是学习 JavaScript 的一些图书和文章。

浏览器原理

你须要了解一下浏览器是怎么工做的,因此,你必须要看《How browsers work》。这篇文章受众之大,后来被人从新整理并发布为《How Browsers Work: Behind the scenes of modern web browsers》,其中还包括中文版。这篇文章很是很是长,因此,你要有耐心看完。若是你想看个精简版的,能够看我在 Coolshell 上发的《浏览器的渲染原理简介》或是看一下这个幻灯片

而后,是对 Virtual DOM 的学习。Virtual DOM 是 React 的一个很是核心的技术细节,它也是前端渲染和性能的关键技术。因此,你有必要要好好学习一下这个技术的实现原理和算法。固然,前提条件是你须要学习过前面我所推荐过的浏览器的工做原理。下面是一些不错的文章能够帮你学习这一技术。

网络协议

小结

总结一下今天的内容。我一直认为学习任何知识都要从基础出发,因此今天我主要讲述了 HTML五、CSS3 和 JavaScript(ES6)这三大基础核心,给出了大量的图书、文章以及其余一些相关的学习资源。以后,我建议你学习浏览器的工做原理和网络协议相关的内容。我认为,掌握这些原理也是学好前端知识的前提和基础。值得花时间,好好学习消化。

代码部署后可能存在的BUG无法实时知道,过后为了解决这些BUG,花了大量的时间进行log 调试,这边顺便给你们推荐一个好用的BUG监控工具 Fundebug

大家的点赞是我持续分享好东西的动力,欢迎点赞!

交流

干货系列文章汇总以下,以为不错点个Star,欢迎 加群 互相学习。

https://github.com/qq44924588...

我是小智,公众号「大迁世界」做者,对前端技术保持学习爱好者。我会常常分享本身所学所看的干货,在进阶的路上,共勉!

关注公众号,后台回复福利,便可看到福利,你懂的。

clipboard.png

相关文章
相关标签/搜索