跳到主要内容位置

经验5

查看所有标签(分类)

我是如何从 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 开发过程。

乍一看要掌握的有很多,

面试没通过,又一次,我好菜呀...

张旭乾

面试

是不是每次面试没通过都会有这样的感觉?作为一名程序员,每次面试的时候都觉得准备不充分,面试资料多的看不完,实战经验也不够,即使自认为准备的很充分了,最后还是栽了,到底是因为自己菜,还是自己菜,还是自己菜呢?要回答这个问题,我们得先知道面试到底在面什么。

面试在面什么?

我们好多小伙伴总觉得面试就跟高考一样,有着严格的评分标准和分数线,谁的分高谁就能进去,但事实上,面试是通过交谈来互相了解对方的一种形式,更多的时候是考验的一个人的沟通能力,如果你能让面试官感觉聊的很投机,那么会有相当大的概率通过面试。 对于技术方面,不同的公司有不同的侧重点,大厂看重原理和算法,其它公司看中技术的熟悉程度,也就是项目经验。技术方面的问题是最棘手的,你可能认为面试通过的人,技术一定很牛,这个我以身边进谷歌、Facebook、亚马逊等国外大厂的朋友的经验证明,这是绝对错误的。技术关是最没有技术含量的考验。通常,公司并不知道一个面试者的技术水平,所以才会通过笔试和前几轮的面试进行考察,考察的问题基本都是类似的、可以举一反三的、是能专门进行准备的。简而言之,就是谁下功夫准备面试了,谁通过的概率就大很多,例如一个刷了 leetcode 500 道题 3 遍的,一定比刷了 300 道题 1 遍的通过率高。

回顾2020,程序员转型的起步

张旭乾

对未来的焦虑应该是每个程序员都能体会到的吧,面对招聘的年龄门槛、工作与生活的平衡、不良的生活习惯,以后的路要怎么走充满了不确定性。但是又因为程序员是技术工种,自己所掌握的技能可以从接外包、作产品、写博客、录视频等多方面进行输出,看似又不缺出路,只是怀疑能不能做好,所以一边担心自己能不能转型或改行,一边又极其期望逃离没有出头之日的 996 ,这是一个难题。

职业规划:程序员的 T 字形发展攻略

张旭乾

你是不是在面对市面上众多的技术的时候,不知道选择哪个才能对自己的职业和未来发展有所帮助?有这样的想法是正常的,因为随着科学的发展,现在的编程技术已经到了百花齐放的地步了。

  • 从编程语言上,你可以选择 Java、JavaScript、Go、PHP,还有基于它们的框架等等。
  • 从客户端上,可以选择移动端,web 端,还有后端等等。
  • 从行业领域上,还可以选择数据科学、金融工程或商业智能分析等等。

那么这么多的技术和领域,我们到底应该选哪一个才比较好呢?

程序员如何提升英语水平

张旭乾

本篇文章适合所有想提升英语尤其是阅读能力的人,因为我自己程序员,所以我来拿自己的亲身经历来帮助大家发现自己提高英语技能的方法。

一点历史

先说在中学时,虽然一开始我对英语很有兴趣,而且也考过几次高分,但是到了后来就慢慢的不喜欢学习了,高考的时候英语正好卡在 90 分的及格线上,然后高考分数只够上了一个专科,开始了程序员之路。

动机

其实我学英语的动机并不是因为技术文档都是英文的,那时候还只知道阅读别人翻译好的中文文档,有错误和疏漏有时候都不知道。当时工作的时候,我突然决定读一个专升本,于是报考了北大的网络教育学院,然后顺利入学了。第二学期,我们都需要考学士学位英语俗称英语三级,才能拿到学位证,满分 100 分拿到 60 分及格才过关,这个到毕业前每学期都可以考一次。我第一参加考试时是裸考,以为比四级会简单些,谁知多年不用的英语水平早就下降了,结果只考了 56 分。我就看着这差 4 分的成绩到干瞪眼!为嘛老天爷对我这么不公平,差这么一点点(可能比 59 好点吧)。然后就突然激发起了我的斗志,我要努力学英语!