后端转前端的小老弟突然收割大厂offer,真相竟然是

7,987 阅读12分钟

此人现状

此人目前研一,两年制工程硕士,就读于某985学校软件专业,街坊叫他阿联,并无编程天赋,却不听师长引导,放着学院偌大的后端宝库不学,偏偏往时而“三天速成”,时而“学不动了”的前端大坑里跳,笔者不屑呼其姓名,后文皆以“此人”称之。原本剧情进展顺利,他处处碰壁,前端不行,后端不精,面试只有挨训的份。怎料想,此人最近突然接连斩获网易、美团、字节跳动和阿里巴巴的前端实习offer,又嫌腾讯流程冗长推掉四面,最终选择**阿里,**其蜕变真因令人不解,又究竟私藏多少干货?下文以回合形式将此人修行轨迹一一曝光,诸君可传阅一二。

此人菜得下饭

本回讲此人**为何从后端转向前端及其面试受虐经历和原因,**诸君可笑摸此人狗头,也可借鉴些许经验教训。

话说此人软件天赋平平,填报该专业无非因为分数刚好达标,大三之前老实本分,踏实做人,按部就班学习科班后端。而转向前端的契机在大二末一次作业考核,其所在小组前端页面未按时完成,后端功能未能顺利接入,相比之下其他小组前端酷炫,评分极佳,导致当时还是后端的此人重新思考定位,于是萌生“自己的后端是有极限的”这一危险想法,随后尝试在在大三的比赛中编写前端页面,成果斐然,于是顿生兴趣,继而一发不可收拾,不听劝阻,终于步入歧途,投靠刚从后端独立不久的前端领域。

变道之初,此人信心满满,认为前端无非是html+js+css三板斧的事儿,无须全力以赴,大可前后端双修,当个全栈岂不美哉。于是走走停停,吃着手里的前端饭,还不忘回头看看刚刚丢下的后端碗,如此一晃半年过去,临近2018春招季。此人无知无畏,第一份简历就砸向阿里巴巴,又由于其心智不坚,脚踏前后端两条船,直到阿里面试的前一天都还同时准备着html5新特性和java gc回收机制,于是当阿里电话来临,不断考校其前端深度时,却连最基本的this指向js闭包都答不出所以然,最终理所当然的铩羽而归。然而,头铁如斯,此人居然不思悔改,眼高手低,接连投了字节跳动、腾讯、网易和美团等大厂,觉得自己这身装备还能再战——结局显而易见,各大组织纷纷亮起红灯:网易美团甚至都没有给予一次面试机会,只有腾讯面试官看似和他相谈甚欢,结果反手就是个再见不送——这点水平想拿大厂offer,小子还嫩着呢。

由此观之,此人转向前端原因在于“前端即颜值,颜值即正义”的最初认知以及自身浓厚的兴趣失败原因在于对自己定位不明,想做前端又缺少破釜沉舟,专攻前端的勇气和决绝,一直顾念后端老本行,同时对前端认知浅薄,以为不用投入全部精力就能学好,希望兼顾后端,成就所谓全栈,最终只能一败涂地,如此后果,咎由自取。

所以诸君若想投身前端,切勿瞻前顾后或盲目自大,遵从兴趣即可。初入一行便从零开始,步步为营,夯实基础,才能不步此人后尘。

此人偷学秘籍

本回讲此人被虐之后寻求转机,积累干货暗自苦修,并作出人生抉择,诸君可作精读

接连受挫,此人终于陷入懵逼状态,继而开始反省,重新评估自身姿势水平,反复比对牛客网和掘金上诸多面经,于小本本上记录自己欠缺和薄弱之处。当时春招虽然过半,但尚未结束,仍需抓住任何机会提高能力,于是此人根据自身弱点和面试高频基础问题,归纳一份“短期补足”计划,曝光如下:

该图为此人短期补足短板的基础图谱,立足点与业界广为流传的前端知识图谱不同,剔除了框架、性能优化和工程化以及各种知识的扩展运用,纯粹为短期内撑过第一轮基础面试而量身定制。之后半个月的时间,此人一边查漏补缺,一边和前端友人互相考校基础知识,模拟面试。终于在四月底迎来第一次转机,获得第一份实习offer,乃上海一家ToB外企,该厂对前后端并重考察,注重基础,正中此人下怀。迈出第一步,此人趁热打铁,针对大厂offer制定**“进阶指南”**,打造充实的前端知识体系,以供秋招再战大厂,图谱如下:

此计划非短期所能执行完毕,各类知识间常常藕断丝连,构建完整充分的知识体系需要持久的学习节奏,并不容易坚持。不过此人受过血虐,清楚自身实力差距,时刻以失败鞭策自己,并将秋招大厂定为目标,在实习期间边做边学,持续输入,积累技术知识和项目经验,一步步完成进阶图谱的目标。然而,流畅的节奏却出现了转折。

此人战略转移

修炼正酣之时,学院传来消息:可以保研。此人得知,陷入思考:保研深造,学历镀金诱惑很大,而且家中父母长辈十分支持,在亲友面前也可挣足面子。然而我已投身前端,硕士课程与自身行业几乎无关,学院前端土壤并不肥沃,课业负担也不容小觑,万一耽误前端进阶如何是好?不过此人转念一想,如若拒绝保研,孤注一掷战秋招,便只剩那一次机会,而保研之后,虽然学业课程会挤占前端修炼时间,但是多出来的课余时间可全部投入前端,并且又多出一次春招机会,正好一雪前耻。于是此人接受保研,并为研究生的前端修炼铺路——提前联系导师,申请前端项目,并在项目以及课程作业中见缝插针使用各类前端技术,不断扩充前端进阶导图,学习之余不忘编写博客产出,当然也得兼顾学业。最终,经过硕士半年以及寒假修炼,此人进阶计划水到渠成。

此人水到渠成

疫情塞给我们一个很长的寒假,延展到整个“金三银四”的春招季,然而此人早在二月就行动起来,直接向阿里投出今年第一份简历。同样是投给阿里,上次是三月份的正式内推,稀里糊涂;这次是二月份的提前批,准备妥当。二月十四,当晚面过,第一个躺在了淘系前端预备群中,宣告第二次春招战役正式打响。期间,此人先广投小厂,锻炼面试套路和心态,再和大厂进行拉锯战,最终收到阿里淘系意向书,春招告一段落。此人归纳各路大场面经,附自身解答和思考,具体可见:科班小前端的大厂面经,建议有需要者精读。

此人有话要讲

故事讲完,这里有些经验和建议,都源于自身踩坑和思考,未必可观,诸君各取所需。

要不要读研

我当初的计划是:

  • 有保研资格,则根据春招乃至实习结果决定是否保研,如果否收到富有诱惑力的offer,且可以转正,则放弃保研机会,全力投入秋招和以后的工作;如果春招并不理想,则接受保研,从长计议,但是要指定明确的研究生前端学习计划,进一步提高实力,以备下一次春招,不能以读研为逃避社会竞争的手段,学生生涯总会结束,大家总得成为“社会人”
  • 没有保研资格,则放弃考研,孤注一掷拼秋招。失去保研资格代表已经未能在学业上快人一步,不如主动寻找工作上的机会。而考研会消耗大量时间和精力,并且考研内容并不有趣,对前端的帮助也可以忽略不计,且考研竞争激烈,不得不全力以赴,容不得同时花大量时间进阶前端。让我暂时放下前端一心考研,是一种“折磨”。

非前端的同学建议能保研就继续深造,尤其是科班出身,毕竟优秀高校的后端土壤非常肥沃,很多教授都拥有不少研究性项目,甚至还能帮你发掘出研究天赋。如果不能保研,请根据自身能力和学校环境决定是否考研。

不过读研这件事,终究得看自身兴趣,有的人就是喜欢研究,有的人就是喜欢工程。

要不要转前端

今日之前端,众人称“大前端”也,深度在不断延伸,广度在不断膨胀。对想要投身前端的同学,我有一些建议:

  • 从零开始想入门前端,请不用犹豫,前端不仅能写出炫酷页面,还有广阔的空间等着你发掘。
  • 而以前有其他方向的编程基础的同学(比如后端或算法),只要想改变,从此刻开始学前端就并不算晚,你的编程基础,会在以后的前端道路上起到良好的铺垫作用。想稳拿大厂offer,必须全身心投入,不要听取“前端上限不高”的论调,不要纠结自己的后端技术会不会白学,静下心去钻研,你的前后端技术有一天会融合,让你达到更高的上限。

一位友人问我:软件开发前后端我似乎都没什么兴趣,但又为了生计不得不学,听说前端没有后端竞争激烈,该不该转?

我的回答是:转!既然对两者都没兴趣,就更不用顾忌了。职业这些东西很难天生有兴趣,很多情况下,人们是先由生活压力所驱动,选择一个相对愿意或者容易的,然后慢慢做出点兴趣。而前端相比后端,更能让普通人提起兴趣,毕竟能开发出可见页面,玩出有意思的视觉特效。所以在不知所措的时候,大胆选择,相信直觉,也许转机就来了呢。

学习途径

现在社区日渐壮大,学习资源一搜一大片,但我不建议一头扎进大片文章中,而是建议大家先自建体系,比如像我一样绘制知识导图,至少脑子里得有一个宏观体系,然后根据体系查漏补缺,并一步步扩展,途中不断阅读资料,并进行适当输出。接下来就知识体系中的几个大块,推荐一些资源途径:

  • JS:《JavaScript 高级程序设计》、《JavaScript语言精粹》、《JavaScript设计模式与开发实践》。
  • CSS:《css 权威指南》、《CSS世界》。
  • 框架:官网和源码,《React 前端技术与工程实践》,《深入浅出 Vue.js》一定要结合实践,干看文章很容易遗忘。
  • 网络:《图解 http》。
  • 编程思想:《Unix编程艺术》、《代码大全》,不建议精读,可以偶尔翻阅熏陶编程素养。
  • 工程思想:《软件工程与计算》三卷、《人月神话》。
  • 可视化:《数据之美》,快速翻阅,见识各种图表,培养可视化感觉。

面试技巧

面经肯要看,但应该制定计划,有的放矢,从原理开始理解,多问“为什么”,不要盲目刷题或背诵概念,这样虽然看起来学了不少东西,但并不能形成体系和深层记忆,常常看过就忘,而且会给自己营造一种“很努力,学了很多”的错觉,实际是一种战略上的懒惰。

给自己输入大量知识后,梳理成体系后,需要组织面试套路,尽量让面试官在自己的节奏中提问,最好的方式就是,运用自己擅长的技术,精心雕琢一个实战项目,并在简历中着重介绍。这样,面试官注意力就会聚焦到项目上,而不会上来就将问题一下展开,到处提问,问到薄弱之处了。

关于项目,一定要尽量贴近市场,最好是已经Release的切实带来收益的项目,而非学校作业或者老师牵头的什么教学管理系统、图书借阅系统这类。如果没能参与Release的项目,就需要自我驱动,写一些能解决问题的小项目,并将技术融入进去,比如我们有同学写的各国语言翻译App,还有我自己用Flutter写的电子产品发布App。

最后

兴趣是最好的老师,希望大家和我一样找到感兴趣的职业方向。感谢前端路上所有帮助过我的朋友和老师,还有一直帮助指点我的元泉师兄

除了我的这篇文章,我的同门师兄弟也做了总结:

《曾经老师看不起的前端开发,如今却斩获多份大厂 offer,最终走进阿里》@王家祺

面向非科班的同学:

《非科班普通院校的我,如何自学前端斩获多份大厂 offer,最终走进阿里》 @Ericfirst

像我一样后端转前端的兄弟:

《阿里淘系前端-暑期实习面经》