2018年,前端工程师如何成长?

特别声明:此篇文章内容来源于@Kamran Ahmed《Modern Frontend Developer in 2018》一文。著作权归作者所有。

首先,你必须要学习一些基础知识,包括HTML、CSS和JavaScript的语法知识。

  1. HTML
    HTML是网页的结构,就好像人类的骨骼系统,有了它你才能站起来。你必须学习HTML的语法和有关的所有知识,你最好将目光聚焦在以下几点:
  • 基础知识和如何写出语义化的HTML
  • 清楚如何将页面分成多个部分以及组织恰当的DOM结构

任务:当你在学习HTML基础时,至少要做5个页面。建议你模仿一些网站。比如github的主页或者推特的登陆页面。你必须要设计良好的页面结构,这或许是非常丑陋的,但是你必须将你主要的注意力放在这里。

  1. CSS
    在掌握了基础的HTML之后,是时候向网页添加一些样式让它看上去更漂亮了。CSS就是用于美化你的网页的绝佳利器。
  • 第一件事就是学习CSS的语法并熟练掌握一些常用的属性
  • 学习盒子模型和如何通过Flexbox和Grid进行布局
  • 做完上述两件事情后,尝试用媒体查询把页面做成响应式的

任务:在你掌握CSS的基础后,你需要做的下一件事情就是用CSS装饰你学习HTML时做的页面。比如你写了推特的登陆页面,你可以用CSS还原成推特的真实页面,把你写的5个HTML都利用上吧。

  1. JavaScript
    JavaScript可以让你的网页具有交互性,比如你浏览网页经常看到的那些滑块、弹出框还有通知栏,它们不需要刷新网页就能跳出来,它们全都是由JavaScript弄出来的。
  • 学习基础语法和JavaScript的基本结构
  • 学习如何操作DOM,比如如何清除页面的元素、往页面添加元素和应用CSS样式等等
  • 理解一些概念,比如闭包、声明提升和事件冒泡等等
  • 学习如何利用XHR或者Ajax发起HTTP请求,Ajax就是让你无需刷新网页就可以进行交互的工具
  • 学完上面的知识,你下一步应该要去学习ES6+的一些新特性,ES6是JavaScript的一个版本,里面包含了很多令人兴奋的新特性,比如类、不同的声明变量方式、操作数组的新方法、字符级联等等。你可以在网上找到很多关于ES6的文章,他们会使用Babel将新版本的JavaScript代码转化为旧版本以适应一些老版的浏览器。我们在后面还会提到ES6。

现在你应该感觉到一点紧张了吧?不妨回顾一下,以上这些都是你学到的最重要的知识。

应该继续使用JQuery吗?

过去有一段时间,每一个网页开发者都为JQuery而狂热。因为JQuery是一个功能十分强大的库,它封装了一系列Javascript操作,使用起来十分方便而且兼容性极强。但是,到了今天,虽然仍然还有很多人在使用JQuery,但很多的新项目都放弃使用JQuery了。事实上,JQuery十分简单,你不用特意去学习它,但了解一些JQuery的知识会对你帮助很大。

实践

我说过很多次了,但我必须再强调一次,知识来源于实践。只是看书或者看一些视频你可能觉得理解了,但这些都很快会从你的脑袋中消失如果你没有用之于实践,所以,你要尽可能的多尝试,将你脑袋中的东西变成代码。
做一些响应式的网页并利用JavaScript增加交互性,你可以复制现有的你觉得很有趣的网站。
完成上面的工作后,你已经可以去了解真实的企业开发过程了。你可以去github上面找一些项目,然后自己开源几个项目,下面是一些建议:

  • 把UI做好,提高设计水平并且全部做成响应式
  • 认真回答每个你力所能及的issue
  • 重构你认为可以改进的项目
    要使用Github,我推荐你先去学习一下git,git对你帮助将会非常大。

包管理器

在此之前,如果你有用过一些外部的库,比如一些插件或者外部小组件,你可能都是手动下载这些JavaScript和CSS文件然后把它们放进你的项目目录中。当这些库更新的时候,你不得不去下载新的版本然后再次放进你的项目替换掉原来的,这非常的麻烦。包管理器可以帮助我们解决这个问题,它可以将外部的文件引进你的项目,所以你不需要担心上述的问题。目前比较受欢迎的两个包管理器是yarn和npm,它们两个非常相似,只需要安装启动,你可以任意选择一个去学习。
当你对包管理器有一些初步的了解后,你可以尝试去安装一些外部库到你前面制作的网页上,这些实践会对你的学习有很大的帮助。

CSS预处理器

预处理器提供了CSS本身并不具备的功能,比如变量、宏和mixin等等。现在有很多种CSS预处理器,Sass、Less...,如果让我选择,我会优先考虑Sass,但最近PostCSS风头正盛,它是作用于CSS的“Babel”,值得我们关注。不过我会建议你先学习Sass,如果你还有更多时间,可以尝试去了解一下PostCSS。

CSS框架

你不用特意去学习一门CSS框架,但如果你有需要的话,现在比较好用的CSS框架有Bootstrap、Materialize和Bulma,我会推荐优先Bootstrap。

CSS架构

随着你的项目越来越大,你的CSS文件也将会变得越来越混乱、臃肿。是时候去学习如何组织你的CSS以提高其扩展和可复用的能力了。目前能够帮助你完成这个目标的有 OOCSS、SMACSS、 SUITCSS、 Atomic 和
BEM,我个人比较钟意BEM

构建工具

工具可以帮助你构建、打包和生成JavaScript应用 。目前主要有代码检测,自动化和打包的工具。
关于自动化来说,有很多种选择,包括npm scripts、gulp、grunt 》...,但是在现在,webpack毫无疑问是你的首选。webpack具有gulp绝大部分的功能,利用webpack就可以完成你的自动构建环境。
有很多工具可以帮助你完成代码检测的工具,有ESLint、JSLint、 JSHint 和JSCS,目前ESLing是最受欢迎的。
关于代码打包工具,你的选择也很多,包括 Parcel、Webpack、 Rollup、Browserify等。毫无疑问我会推荐webpack。

实践时间—创造

恭喜你,你已经可以成为75%的现代前端工程师了。现在你要做的就是继续前进,你有必要去做一些项目,依靠目前为止你学习到的东西。你可以用JavaScript和Sass创造几个库,然后利用babel编译Sass和es6代码。完成上述这些工作后,别忘了把你的成果发到github和npm上。

选择一门框架

按照以前规律,我会把这个放到学完基础知识之后,但我选择放到当你学完Sass和构建工具的后面,因为缺少了上面的知识先学框架,可能会把你逼疯。
关于javascript框架,目前比较流行的有React、Vue和Angular。最近React的呼声很高,但是不需要紧张,选择上面三者之一都没问题。但就我个人而言,我会推荐React和Angular多一点。简要说明一下,作为一个新手,你可能会觉得Angular相对来说比较容易一点,因为它包含了大部分你需要的功能,路由、懒加载、HTTP拦截、依赖注入、CSS组件构建等等,你不需要引入任何外部的库就可以使用这些功能。但是React有的优势是,Facebook一直致力于改进发展React。最重要的,不要因为名气而选择一门框架,你应该综合比较,选择目前最匹配你的需求的一款。

当你确定要选择哪一门框架后,你就去学习对应的知识了。如果你选择的是React,你需要去学习Redux或者Mobx用于状态管理,具体选择那一个根据你的应用的大小。Mobx适用于小型或中等的应用,Redux就比较多用于大型的可伸缩的应用。你甚至不需要学习这些,根据React原生的状态管理就可以完成你的工作。
如果你决定要使用Angular,你需要去学习TypeScript(原生也可以,但Angular首推TypeScript),你还需要学习RX.js,它非常强大,甚至支持函数式编程。
如果你的选择是Vue.js,你可能需要学习Vuex,它和Redux非常像。
需要关注的是,Redux,Mobx和Rx.js的使用并不局限于这些框架,你可以在你的原生js中使用。最后,如果你选择的是Angular的,必须确保是Angular 2+而不是Angular 1+。

实践时间

现在你已经知道所有有关构建JavaScript应用的知识了,是时候展示真正的技术了。你需要做一款应用,相信你可以找到很多创意。做完之后,先别急着高兴,再回头看一下代码,有哪一些是可以改进的?比如交互时间、页面相应速度等等...

测试

有很多工具可以帮你完成特定的测试任务,我通常会结合使用Jest、Karma、Mocha和Enzyme。在你使用这些工具之前,你最好先了解它们其中的差异,弄清楚可以选择的选项然后选择最适合你的。An Overview of JavaScript Testing in 2018

静态类型检查器

静态类型检查器可以帮助你对Javascript进行类型检查,你只需要很短的时间就能掌握这方面的知识,它会对你的工作帮助非常大。在这方面,TypeScript和Flow是比较好的选择,我个人比较喜欢TypeScript,但Flow也不错。

服务端渲染

到现在,你掌握的知识已经让你能够胜任任何一份前端工程师的工作了,但不要停止你的脚步。
你需要去了解你选择的框架是如何进行服务端渲染的,它们有很大的不同。比如你选择的是React,对应的就是Next.jsAfter.js,Angular 对应的是Universal,Vue对应的是Nuxt.js

结尾

或许还有什么是我忘了写的,但我想说最重要的是尽可能多的敲代码,你需要不断地实践。一开始这可能会很辛苦,你可能会觉得很难掌握,但这是正常的,你会变得越来越好。最后是别忘了,当你陷入困境时,积极地去寻求帮助,你会发现很多人都乐意帮助你解决难题,至少我是其中的一个,加油!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容

  • 前端开发面试题 <a name='preface'>前言</a> 只看问题点这里 看全部问题和答案点这里 本文由我...
    自you是敏感词阅读 752评论 0 3
  • <a name='html'>HTML</a> Doctype作用?标准模式与兼容模式各有什么区别? (1)、<...
    clark124阅读 3,455评论 1 19
  • 在iso系统上(仅试过iPhone6, 7)
    言叶丶阅读 2,241评论 0 0
  • 感恩老婆回来不断拉动我的能量,纠正我的思想,感恩父母及丈母娘丈人对光宝宝的付出与爱,感恩给我家庭的温暖。感恩朋友与...
    日精进_a07d阅读 166评论 0 0
  • 昨晚小姑子一家人从外地回来了,小姑子打电话给我家先生约今天一起吃午饭。 每年的春节小姑子一家人回惠州 ,就会约我们...
    内外合一阅读 101评论 2 1