关于我(个人背景)

本人是某双非一本大学的大四学生,专业学的是电子信息科学与技术,说实话,虽然它是我的专业,但我对它不是很了解。高考结束根据就业率选择了这个专业,确实就业率很高(毕竟没有三方协议学校不给发毕业证,怎么办?很多人随便找个单位、场子签个劳动合同),一句话:垃圾。而自己在大二的时候就在想,这个专业毕业后能干嘛?如果我现在被迫辍学?我能靠它养活自己吗?答案是:不能。

比较庆幸的是自己通过朋友带动下从 3 月初(大三下学期)开始零基础自学前端,在 11 月初拿到字节跳动和多益网络的前端 校招 offer,历时 8 个月。与其他拿到大厂 offer 的同学比起来,我应该是比较菜的,嘿嘿。不过我是在没有基础,基本没人带的情况下,自己摸索学习的。通过不断笔试面试积累经验,在没有实习经历的情况下拿到大厂 offer。

所以在转行这方面自己克服了许多困难,也积累了一些适合非科班学生自学转行的方法。为了帮助入坑的朋友,编写了本指南十分细致,亲测可行。如果你想要转行做前端开发,却又苦于没有学习方向,学习路径和学习资源相信看完这篇指南后你会有所启发,快速上手。

指南分为以下7个方面。

一、自学


我结合个人经历整理的学习路线,总结了初级前端各项技术学习的先后顺序和侧重点,还附有相关的资源,可以节省你们很多时间,避免你们走弯路和购买到一些没用的书籍资料。

下图是本人大致的学习路线图(有点长放大看)

知识脉络

1、前端三大基础(前期)(重点,中等难度)
前端三大基础,即HTML(5),CSS(3),JavaScript 这三门技术。

JavaScript知识点合集

Tips:JS进阶部分可以在准备面试时再开始学。

2、前端框架(前中期)(重点,较难)
Vue和React是目前在前端应用最广泛的两个开发框架,工作中一般都是用框架开发。两者是同级并列关系。个人觉得可以先学Vue,等到第一篇的其他比较重要技术栈的学完了再学React。

Vue\React面试题集

Tips:现在新项目一般都用 Vue 或 React,不太用 jQuery,所以 jQuery 可学可不学,一般也不怎么考;看视频学习入门会比较快,适合零基础的新手,直接看官方文档学习会比较难一些。有空还可以学一下 Vue 的 SSR 技术。

3、Node.js(中期)(次重点,中等)
Node 是一个让 JavaScript 运行在服务端的开发平台,可以让我们用前端的语法开发后端。很多前端岗位的要求会 Node.js。

深入浅出Node.js

Tips: Node.js 和小程序开发一样,是加分项。不过比小程序重要一些。

4、小程序开发(后期)(选学,简单)
我拿到 offer 时还没开始学小程序。不过我还是有2次技术二面被问到过。有时间还是学一下,而且小程序入门简单,没学过框架也可以学,之所以写后期是因为觉得比框架次要。

微信小程序开发实战

5、计算机基础
传统的计算机基础一般是指数据结构与算法,计算机网络,操作系统,数据库,计算机组成原理,编译原理等,作为前端开发入门者,我们只需要重点学习数据结构与算法和计算机网络即可。

Tips:应对工作和面试需要重点学习应用层的协议(HTTP(S),Websocket 等)。面试时 还会考察一些传输层的协议(TCP 和 UDP)。

6、前端工程化
有很多初学者或者还没有大公司经验的同学在写项目时都是单打独斗的,但更多的一线项目都需要至少 2~3 个甚至更多的人员一同参与开发的。而这种时候,因为每个人的水平和开发习惯都是不一致的,而这些不一致就直接导致整体研发效率和项目进度受到极大的影响。所以就需要一种能够让大家在一个水平线上进行开发的模式,工程化需求很有必要。

工程化协作
版本控制
Git:GitHub、GitLab、Coding……
SVN:BitBucket、Google Code……
代码样式检查工具 JavaScript/TypeScript:ESLint
测试工具
性能优化
单元测试:Karma、Jest、Mocha……
持续集成:CI

工程化开发工具
依赖包管理工具:npm、yarn
打包工具:webpack、rollup
脚手架工具:create-react-app……

二、项目


在校招中,想要拿到大公司的offer,最好要有实习经历。没有实习经历,那简历上一定要有项目经历,这个是很必要的加分项。而且找实习的时候简历上也最好有项目经历。

如果找不到项目可以做,可以在网上买一些做项目的课程(实战课),学完后自己借鉴课程的项目,改进或者重新做一个项目。我是在GitHub上学了一门用Vue开发仿拼多多的前端的实战课,后来又学了一门用Node.js开发的服务端的实战课。然后把结合两门所学,自己做了一个仿美团网的项目,并且前端用Vue做,后端用Node.js做,使其成为一个自己完成的、全栈的项目(当然了,我这种级别的项目应对大厂校招其实只是勉勉强强罢了,好在大厂校招面试比较看重基础)。

其他方法我觉得可以是通过加入工作室、找计算机学院的老师、或者直接去网上找外包等方式来找项目做,具体我没去实践过,不是很了解。所以最好是大二、大三去找个实习,这样子就不会有项目经历和实习经历不足的困扰。

三、简历


学习制作简历推荐看一下这个简历包装

四、简历投递


1、关于工作和实习
找工作和找实习是不一样的。找工作的主体是应届生(大四),对应到公司官网的投递选项是“校园招聘”。找实习的主体一般是大一到大三的学生,对应到公司官网的投递选项是“日常实习”。日常实习可能可以转正拿到offer,也可能没办法转正,而参加校园招聘通过后便可以拿到offer。不过实习经历是找工作的重要加分项。

日常实习一般全年都有在招,而校招(校园招聘)分为秋招和春招两波。秋招是在大四上学期,一般7月开始有提前批,8、9月为正式批高峰期,10、11月开始收尾。春招是在大四下学期开始,应该是2、3月开始(春招具体时间我不太确定,没参加过)。建议积极参加秋招,最好是在秋招就拿到offer,因为春招的招聘需求会小很多,竞争也很大。

2、学历问题
我的学历是双非一本,非计算机专业,在投递简历和面试大厂时,感觉大部分公司不会卡我的学历或专业。但是说实话,如果你的学历比我的还低很多的话,我就不确定会不会被卡简历了。不过按照我的方法去做,即使进不了大厂,校招进个中小厂是可以的,先进入这个行业,以后再找机会跳槽也是有可能的。

3、跨专业问题
有一些互联网公司校招可能会卡专业,不过如果有一本的学历,还是可以通过很多大厂的简历筛选门槛的,当然,前提是你简历的格式和内容过关。我参加过几个大公司的面试,基本感觉不到对跨专业者的歧视。所以不用害怕跨专业会被歧视之类的,主要还是看能力。能力不行不要老是归因到专业歧视上面去。

招聘信息来源
牛客网,公司官网,公司公众号,学校,一些校招公众号和校招群等。

五、笔试


大多数公司为线上笔试,笔试平台一般在牛客网,其次是赛码网,部分公司笔试平台是在公司自己的官网。少部分公司是宣讲会现场笔试。

题型
以选择题和编程题为主。大厂的笔试编程题一般占一半以上(如美团,腾讯笔试全部都是编程题)。
(1)选择题:前端相关知识,数据结构与算法,计算机网络,操作系统,数据库等。
(2)填空题:同上。
(3)简答题:前端相关,算法题。
(4)编程题:算法题(主),前端相关的手写代码题(次)。

笔试准备
怎么应对笔试,可以结合本指南自学篇和面试篇的相关内容,多去牛客网刷题。算法题是大厂笔试里面最重要的部分,多去 LeetCode 刷题即可。

这里分享一些之前收集的前端学习资料给你,供你参考,希望对你有帮助。点击最新资源可自行下载

六、面试


大公司校招面试一般有3 – 4轮(2 – 3轮技术面 + 1轮HR面)。也有少部分公司是技术面 + HR面 +部门终面。大部分公司都是线上面试,小部分公司是去公司现场面试。线上面试的平台主要有牛客网和赛码网,小部分是在公司官网。

面试考点
1)大公司面试主要考察前端基础、简历上的项目相关、前端框架、数据结构与算法、网络、前端工程化等。小公司一般不考计算机基础,比较考察前端相关的,不过总体难度还是比大公司低很多。(如果实习过,实习经历也是考核重点)

2)面试考察的知识点频率:前端基础 > 简历上的项目相关 >= 前端框架 >= 数据结构与算法 > 网络协议 > 前端工程化(如 Webpack,性能优化,上线部署之类的)等。

3)从一面二面考察的不同点来说,一面重视基础且比较容易过,二面的广度,深度和难度会加大,经常会问到项目,并且大概率要求手打代码(算法题或功能实现题)。

网上有很多公司的面经(面试经验)可以学习,比如[这个]

七、职业规划


作为一名前端工程师, 你的核心能力不是前端, 而是工程师, 前端 13年前没有, 难道 20年以后就能一直有么, 但是工程师已经存在很久了, 上面那些技术都是前端技术, 随着前端的消失他们也会消失, 但是作为一名工程师, 你的工程管理, 技术方案设计, 架构规划等等能力才是核心, 是不会随着某个领域消失而消失的, 这些能力是和整个大的软件工程体系绑定的, 拥有和算法, 计算机底层原理一样的生命力, 值得你不断的去学习和提升, 我相信只干前端, 你难过 35, 但是作为工程师, 你应该拥有更长的职业寿命。

因此当你抱怨公司小, 技术团队人数少, 氛围差, 技术栈老旧的时候, 天天只堆业务代码的时候, 你可能正在浪费时间, 而你睡过去的每一次需求评审, 或者糊弄过去的每一次业务迭代都是在浪费你成为更专业的前端工程师的机会

学习平台

LeetCode、牛客网、GitHub、MDN、掘金、菜鸟教程、B站、阮一峰的个人博客、简书、CSDN、Bootstrap中文网。

Tips: 听说掘金这个平台还是有很多干货的,其他大佬知道有哪些学习平台,你们可以在评论留言指点出来。

平时多加点前端交流群,多向他人分享技术与生活也是可以的,也可以结交到很多朋友,感兴趣可以加入 博主企鹅群:https://jq.qq.com/?_wv=1027&k=xR1y34a3

关于转行前端之前的疑虑?

1、前端岗位需求如何?前景如何?薪资如何?(这是对将转行业的必要考量)

现在互联网的大环境的发展如日中天,网络已经深入到每个人生活的各个方面。各种项目层出不穷,以及各种定制化的UI风格神马的,PC端、手机端、mobile端,各种兼容问题真的很浪费时间,大家在不断的摸索中发现,把html+css+js这部分工作独立出来一个新的岗位来处理,酱紫后端可以专注于数据接口的开发以及逻辑的处理,然后视觉MM们也可以不用熬夜码代码了。

当一个行业发展到一定程度形成产业的时候,它里面的环节一定会细节化的,让专业的人做更专业的事情,传统农业、汽车业,不都是如此么。所以,Web前端必然在今后十年有很大的发展。

然而程序员需要不断的自我驱动,才不会被IT行业所淘汰。

web前端开发工程师的薪资待遇平均工资已经突破一万,因为其他行业确实工资涨幅不大,所以必然会吸引了大批想要月薪过万的人来转行学习。
目前,北京、上海、广州、深圳等地web前端工程师的薪资待遇更是一飙再飙,Web前端工程师待遇详见下图:

2、肯定会有人问培训班和自学哪个好?

相对于劝自学的,我反而是推荐参加培训班,因为培训班能逼着你快速进入状态,而且有人解答,比较系统,不然你自己摸索浪费太多时间,我就浪费了半年,而且自律这个东西真的是看自己,很多人是中途放弃,其实我也有很多次这种念头,但是还是忍住了,怕被当做loser,还浪费了那么多时间。另一方面前端要学习的东西很多,可能你学到的只是入门基础,专业的老师和就业推荐会使你转行的道路轻松许多。

3、如何高效学习,学到何时才能够大概率就业?

听到过很多这样的说法,前端很简单,自学1星期就能做网页,这其实也不错(只要有公司要你,出问题时,给你足够的时间去解决,或者有人给你顶着,和你合作的人不嫌弃你的代码质量就行)本着对自己和公司负责的态度来说,你至少静态页面要做的很6,像我上面提到的,做一个静态页面基本不会出现布局问题,也不用百度就合格了,具体时间看个人。

我是用了8个月,主要当时很迷茫,完全和别的文章推荐的模式一样,面试要求这个了,我就去学这个,要求那个了,我就去学那个,当时我也以为自己css很牛逼了呢。

4、非科班会不会没发展?年龄大会不会被淘汰?

能力大于专业!前端开发是一份技术类工作,比起科班和非科班的背景,企业更看重的是程序员的开发水平,和解决问题的能力。

其实对于能不能转行到前端开发,年龄并不是绝对因素,从高等院校毕业出来的毕业生找不到工作的也有大把,所以这不是个年龄问题,也不是”行或不行“的选择题,而是看你有没有坚持下去的心。

结尾

这篇文章是写给和我一样想转行的人看的,也许很多人比我们优秀,也有很多人没我们优秀,别信夸赞,别怕批评,前端路上You are not alone
也以此文勉励自己,总结过去,走向未来!

好了,我接着敲代码了!…