我是如何从 Java 工程师转型成为前端工程师的
前端作为比较新的技术岗位,涉及范围广泛,市面上也没有成体系的、适用于所有人的学习方法。这篇文章,将分享一下我转型成为前端工程师的经历,以及我在学习前端开发过程中,遇到的问题和总结出来的一些经验,希望对你有所启发。
前端工程师的技能要求
先看一下前端工程师需要掌握哪些技能。 综合大、中、小企业的前端工程师技能需求,实际上前端工程师的职能包含以下职业中的 1 种或多种:
- 网页开发工程师
- 网页设计师(UI)
- 用户体验工程师(UE)
最重要的职能是网页开发,包括小程序、APP 等跨端应用界面的开发,虽然它们实现的技术不同,但本质上还是做页面。
前端工程师必备的技能有:
- 使用 HTML + CSS,精准的还原设计稿,制作符合要求的页面。
- 使用 JavaScript 给页面添加交互,懂得 DOM 操作和 ajax 请求。
- 掌握 React 或 Vue 等主流框架的一种或几种,并了解随着这些框架的工程化,所牵涉的一系列工具(不同工程需要不同的工具,这里列出常见的), 例如:
- Node.js 与 npm。
- Webpack、SnowPack、Vite 等打包工具。
- Create React App、Vue CLI、Vite 等脚手架。(Vite 既包含脚手架,也包含打包工具)
- Gulp、Grunt 等自动化工具。
- SASS/LESS 等 CSS 预编译工具。
- styled-components、emotion 等 CSS-In-JS 库。
- ESLint 语法检查工具。
- Jest、mocha 等测试库。
- 兼容性调整,利用 CSS hacks,或 JS Polyfill,实现跨浏览器页面表现一致。
- 性能优化,减少文件体积,减少请求次数,延迟加载图片和脚本等。
- SEO 搜索引擎优化,提高网站在搜索引擎的排名。
其他的一些框架或技能,如果工作要求,也需要掌握:
- SSR 服务端渲染框架,例如 Next.js(React)、Remix.js (React)、Nuxt.js(Vue)。
- SSG 静态网站生成器,例如 Next.js、Gatsby、VuePress 等。
- TypeScript。
- GraphQL。
- PS/Sketch/Figma,能根据需要进行切图,或者自行设计页面。
下面这些技能不是必须的,但是如果能掌握,可以提高工作效率、跟后端或设计师沟通的能力,以及求职升职的竞争力:
- 网页设计,了解设计基本原则。
- 用户体验设计,了解网页的动效、辅助功能对用户体验的影响。辅助功能(可访问性)在国外比较重视,目的是方便有阅读障碍的人士,使用屏幕阅读器进行网站浏览。如果你想去外企,这些技能是必须要掌握的。
- Docker,了解如何把前端项目构建为 docker image,会编写简单的 docker file。
- 后端语言、框架、数据库,任选一套,例如 Java + Spring + PostgreSQL,Express + Node.js + MongoDB 等,了解 RESTful API 开发过程。
乍一看要掌握的有很多,