写给那些转行做前端的人们.
前端是一个相对比较新的行业. 但在这几年期间, 随着 W3C 标准的不断更新以及 node.JS 的兴起, 基于 node.JS 一系列的工具和诸多前端框架都参差不齐的浮出水面. 大多数不了解前端的人转行前端, 第一点原因是前端极其低的门槛, 在培训机构培训 3 个月即可速成. 第二点是他们对前端的理解, 普遍停留在毫无计算含量的网页布局以及和美工一样的样式设计. 计算机专业的人选择前端, 是因为他们认为前端不需要过多的逻辑思维计算, 他们讨厌编程. 非计算机专业的人选择前端, 他们看到了前端的前景, 以及不需要计算机的知识就可以快速上手.
我想对第一类人说, 你们走入了一个巨坑. 前端最最基本的三个核心技能: html,JS,CSS, 其中最能代表前端的就是 JavaScript 了.
如图, 是 2018 年 GitHub 上最受欢迎的语言排行榜:
其中基于 JavaScript 语言的仓库就有 3 个, 可见如今的 GitHub 社区已经变成了前端的社区.
JavaScript 身为一种动态的弱语言, 在实际项目中设计最合适的模型高效率解决现实问题本身就很有挑战. 作为一种典型的新生代编程语言 JavaScript 特性丰富, 使用灵活, 性能优良. 面向对象, 函数式编程, 各种设计模式, MVC 和 MVVM, 这些本身就有足够的吸引力. 随着更多的程序员转入 JavaScript, 它的标准也在不断规范, 一些其他语言的特性也不断的融入其语法当中. 或许不久的将来, JavaScript 会和 TypeScript 一样拥有静态类型检查的功能. 如此重要的核心语言又怎么能离的开编程呢. 前端是一个发展速度迅速的行业, 从以前的传统网站到如今 HTML5 的发展, 以及 Node.JS 的出现, 相关 Node.JS 工具也纷纷出来. CommonJS,AMD,CMD,UMD 等模块式的开发思想也诞生出了像 SeaJS,RequireJS 等模块化工具. MV* 库铺卷而来, vue/angular/react, 前端框架相互竞争, 2014 年的 angular 到 15 年的 react. 作为一个前端工程师, 我们每时每刻都应该跟上技术的潮流, 不断学习, 所以我会劝那些因为厌恶编程而转入前端的程序员们, 你们走错了方向.
我想对非计算机专业想转行前端的人说, 请你们慎重考虑. 前端工程师首先是软件工程师, 基础是最重要的, 如果基础不扎实, 一切应用技能就都是 "浮云". 前端的基础是什么? HTML,CSS,JavaScript 基本功, 数学, 算法, 数据结构, 操作系统, 编译原理基本功. 不要觉得自己做了几个唯美的动画网页就觉得接近前端了. 前端的大牛, 通常是一个各种领域都精通的全栈, 那些为前端开源代码做贡献的人, 哪个在做项目的时候不是编写大量单元测试, 文档的说明注释, 说到头来就回到了 JavaScript, 编程基础. 就是这样, 周围还是会有人误认为前端就是一个没有技术含量的静态网页编写的职位. 这里只送一句话: You will be abandoned in this era.
最近 2 个季度我们 Team 一直在招前端, 在这长达两个多月面试中, 我始终都没有聘到合适的前端, 他们的简历通常都是如下这样的:
1, 与 UI 设计师合作, 快速开发符合 W3C 标准的网站前端页面;
2, 配合产品人员完成网页页面的交互 / 效果 / 用户体验的实现;
3, 配合后台工程师一起实现功能和性能需求, 进行应用及系统整合;
4, 优化页面及样式层结构, 提高页面响应速度和用户体验;
5, 保证主流浏览器的兼容性.
6, 静态 HTML 页面的制作, JS 交互的实现
7, 用 jQuery,Bootstrap 制作网页
对于这样的简历, 我很难做一个准确的评估, 首先这种简历无法评判出前端的水平, 太过普通. 其次, 我不能说 jQuery,Bootstrap 过时了, 而是在当今的前端开发中, 毫无模式的直接操作 DOM 并不是一个明智之举. 在面试当中, 我更看中的是应聘者对前端流露出的喜爱之情, 对知识的求知欲, 对基础知识的扎实(例如: JS 里事件的冒泡与捕获, 闭包, 原型链机制, 布局当中的 BFC, 垂直居中等一系列实践的问题). 对于那些简历里写到掌握最新前端技术的应聘者(例如: babel,webpack,es6,react 等), 我会问一些 react 的优化, 模块加载的方式, Node.JS 原理性基础等一些问题. 在面试中我发现, 有一大部分人, 只盲目的学习了这部分工具, 框架的用法, 却在基础知识方面存在非常多的漏洞.
最后我想分析一下转行到前端的人, 你应该具备的哪些素质:
1. 如果 Web 的任何一个元素 (Web 界面, 灵活的编程风格等) 有一点吸引了你, 让你着实着迷, 恭喜你, 有了一个完美的开始. 确认一下自己是否喜欢和合适前端, 而不是为了一份看起来体面而且薪水不菲的工作.
2. 不断学习, 每日的积累, 关注前端动态, 是你跟上前端潮流的主要途径. 前端的体系过于庞大, 技术框架争涌而出, 如果你经常抱怨累死码农的节奏, 那就审视一下自己对前端的态度.
3. 主抓基础, 避免盲目. 前端领域知识点很多, 值得学的东西也很多, 聪明的人懂得花时间学习成体系的知识并且研究得足够深入, 而不是盲目的看到别人用什么框架就去学什么. 只停留在实践运用的阶段, 到头来框架们都一个一个被淘汰, 你仍在原地踏步.
4. 整理总结, 先模仿后创造. 将每日的积累做好规整, 记录到博客也好, 笔记也好. 多看看牛人的源代码, 等你达到了一定的层次水准, 自然会得心应手.
5. 持有一颗造福前端社区的心. 写一些有意思的小工具, 插件, 推广出去,
6. 始终坚信, 在从事前端的道路上 You are not alone
来源: http://www.jianshu.com/p/ed2056bca4af