毕业三年,我从鉴黄师转行到阿里做前端

文章目录

    • 前言
    • 鉴黄路漫漫
    • 毕业季迷惘
    • 转行不易
    • 有点飘了
    • 面试复盘一
    • 重新审视
    • 面试准备
      • 简历
      • 自我介绍
      • 非技术能力
    • 你有什么问题想问我吗?
    • 面试复盘二
      • 笔试
      • 初试
      • 复试
      • 终面
      • HR
    • 最后一啰嗦

前言

  最近两个月比较忙,没有写文章,感觉尿尿都有点儿分叉了。

  本篇文章记录一下自己毕业后的转型过程和一些亲测面试题,如果你也想转行,不妨可以看看,我们有没有共同点。

鉴黄路漫漫

  毕业后,我的第一份工作是视频审核,也就是大家常说的鉴黄师,每天的工作就是看视频,看各位up主上传的视频。

  乍一听好像很爽哈,上班看视频,这是多少摸鱼人的梦想。真实情况呢是一个5分钟左右的视频,要在10秒内看完,而且要判断,这个视频有没有侵权某些电影电视剧,有没有什么不当言论,有没有什么血腥暴力画面,当然了,还得看看有没有黄色信息。

  一个标准的审核人员,一个小时的审核量需要达到300条以上,大家有兴趣可以自己在家试试,一边拖拽一边看视频,看三百条。

  工作呢是轮休制的,白班8个小时,到点就可以下班,两个月会轮到一次夜班,晚上7点到第二天8点,休息一天后继续上夜班,连续一个星期。

  工作大致就是这么样个情况,夜班比较熬人,会导致生活不规律,起了好多痘痘(后来花了很久才养好,所以广大青少年同学们,千万不要熬夜)。

  补充一点,大家应该比较感兴趣工作的时候会不会遇到羞羞的视频,我做了十个月,就碰见过一次,还是同事审到了发给我的。不过在被拦截的库里,记录着全部因为黄色被下的视频,可以在夜班的时候偷偷看。
毕业三年,我从鉴黄师转行到阿里做前端_第1张图片

毕业季迷惘

  讲一讲当时是为什么选择这份工作的吧,我上的是个二本计算机专业,大学期间平平无奇的度过,到毕业了,其实不知道自己要做什么,会做什么,能做什么。

  家里面希望我能回去,回去之后工作给安排好了(我父亲的单位),房子给买好了(上大学前准备的),到时候再配辆车,直接躺平。

  但是当时总有种感觉,如果回去了,那这上的四年学就白费了,专业知识完全没用到,好心疼这些年交的学费。。。

  况且当时谈了个女朋友,这一回家肯定就黄了,天各一方了呀。所以决定不回家,要留下来闯荡。前有国人称霸华尔街,那我就来个称霸宾水西道391号左拐胡同里第二间。

  决定好去留问题,那就开始投简历,首先做了个自己觉得还不错的页面,然后到公司去面试,结果人家问框架,不懂,问H5,CSS3,不懂,终于问了个我见过的问题, CSS position relative absolute 有什么不同?我连比划带跳舞解释了半天,结果面试官对我说,他们最重要的区别是是否脱离文档流。

  基础知识不牢,行业新技术又不会,面试面了个稀碎。眼看就要到被学校轰出去的日子了,赶紧先找个能养活自己的工作吧,还要啥自行车。

  然后也是经人介绍吧,来到这家做鉴黄师,面试过程还是比较顺利的,会问对审核工作怎么看,我当时回答的很中二,说这个岗位是维护国家安全的一部分,把控着安全红线,有净化网络环境的任务,是一份需要极强责任心的职业,要清楚明白什么事情能做,什么不能做。

  另外关于血腥暴力,还有夜班的问题,一定要说能接受,还有就是会考察一下稳定性,可以说自己就在公司附近租房,通勤比较方便,希望可以长久的在这里工作学习之类的。

  面试通过后会先培训,告诉你涉及到哪些问题的时候必须慎重,外国的某些组织一定要全面封杀等等之类的。审核的时候千万不能把这些东西放过去,是很严重的事情。

  还有在一些特殊的日子里,某些组织格外活跃,要仔细一点。其他的就没什么了。

转行不易

  我刚做鉴黄师的时候,其实也挺迷茫的,自己要不要转行,之前面试都没人要,过一段时间后也不是应届生了,又没有相关开发经验,岂不是更没人要了。

  我问了自己一个问题,难道以后一辈子都要审核视频吗?

  下定决心,再难也要转行,当初是为了不丢专业才留下来的,没道理现在松懈下去。

  于是我开始各种学习,刚毕业也没什么钱,就找免费的视频看,然后在淘宝花了二十几块钱,买了前端学习资料,猛学,现在想想,这可能是我在学习上花的最值的一笔钱了,投入产出比极高。

  说一下我是如何安排时间的,白天上班正常工作,下午五点半下班,由于住的比较近,走路回家5分钟,晚饭自己做,连吃饭带收拾到7点开始学习。

  由于我的基础比较差,看视频的接受程度能高一点,所以跟着视频,边看边做到12点。洗漱休息。初次接触某个技术栈,也建议选择个视频来看看,不用非得学的多好,主要是让自己对这个东西有个概念。

  我的观点,任何技术栈,没有学会了,只有会学了。

  怎么判断自己是不是会学了,我的做法是,当我熟悉某个框架,在看到一些没见过的编码方式时,我不会害怕,不会有畏难的心里,而是根据特性,能准确的搜索到我需要的答案的时候,那么就达到了。

  不上班休息的时候,也放松一下,上午半天,下午半天,安排不同的技术栈,晚上就刷刷手机,早点休息。

  这样持续了半年,我开始再一次的投简历,准备好跳槽了。最开始投了几家,也都石沉大海了,不过突然有一天,有家公司主动找到我,说在网上看到我的简历,问要不要试试。

  下雨天打孩子,闲着也是闲着,就试试呗。经过笔试,初试,复试,HR,最终面。顺利上岸。

  估计是当时运气比较好,这家公司在我工作的城市刚成立分公司,急需大量人员,所以初试复试,基本没问什么技术问题,最终面有个问题比较有意思,问你觉得自己的优点和缺点分别是什么。

  我的回答,优点是我很自律,每天下班后还会学习5个小时,而且一直坚持。缺点是我毕业快一年了,没有做前端工作,比别人少一年的工作经验,这些时间是我永远也补不回来的,所以我每天都不敢松懈,一定要比别人更努力。

  大家注意哈,敲黑板,面试官在问你缺点的时候,不是想知道你放屁打嗝抠脚这些臭毛病,而你有什么缺点也不能真的说出来,你说的每一个字都是在为你争取这个岗位而服务的。

  上面回答,“时间补不回来”,确实是我相比于别人的缺点,重点是我清楚的认识到了这个问题,进而转化成不断鞭策我的动力,那这个缺点就会转瞬变成优点。

  还有就是期望薪资的问题了,我是刚转型,没报什么期望,说能给我 3k 我就来。

  最后定了 8k。做鉴黄师的时候是不到 5k,对我来说已经是很大的提升了。

  所以各位,转行的另一个动力,鞭策自己也有一部分是钱的原因,能多挣一点还是很开心的。

有点飘了

  新公司学到的都是新东西,对于极度渴望技术的我来说,如鱼得水,工作前半年时间,疯狂的汲取各种技巧,观察公司大佬们的代码,琢磨其中的寓意,虽然没有工作经验,但是抗压那段时间,把我的基础压的非常瓷实,任何上层逻辑,都是从底层沿伸出来的,如果你打的扎实,那么可以很容易理解这么做的原因,从而也很容易学习。

  这好像就是学霸们学什么都那么轻松的原因吧,因为知识的形成和他们的认知是完全符合的,自然而然就会合并到一起。

  入职满一年了的时候,开始飘了,我对日常工作已经信手拈来了,潜意识都有点觉得已经是大佬了。膨胀的不行,然后我去面了阿里。

  惨不忍睹,仿佛回到了毕业时那种一问三不知的状态。

  先问我 npm 的原理。(我会用但是不知道。。。)

  然后问webpack性能优化。(这东西配好了就不怎么动了,也不是很了解)

  React hook实现原理。(hook是什么?我是谁?我在哪?我想回家)

  最近在看什么书。(我最近没在看书。。也不能愣说有。。)

  平时喜欢用什么方式学习。(看视频多一点)

  我所认知的疯狂吸入,只是在熟悉公司编码模式下的日常工作而已,脱离了公司项目,我啥也不是。

面试复盘一

  复盘一下当时的一些问题。

  - 关于 npm 和 webpack 面试官想考察的是是否对平时工作的使用的工具有所了解,是否知道这些工具为什么会出现,自己能不能做一些这样的工具,提高开发效率,工具的实现模式,能不能借鉴。

  - 关于 hook ,由于当时是2020年3月份,hook 刚出来半年左右,是比较火的概念,面试官想考察的是事实否关注行业新技术,了解程度如何,如果让你实现,你会怎么做。不过在现在看来,问 hook 只是为了了解你对于 react 的掌握程度。

  - 关于最近在看什么书,可能是前面问一个不会问一个不会,又不好意思直接问你会啥?这样比较委婉吧,希望我介绍下自己熟悉的技术栈,熟悉到什么程度。

  - 关于喜欢用什么方式学习,这个则是看你有没有持续学习的习惯,以及知识学习的速度,我建议,要分层次回答,比如我在遇到一个完全没有接触过的技术栈时,会先找几个入门视频看,对整体的概念有个了结,熟悉用法,特性,能做什么,在那些地方优化比较好。

  对于我比较熟悉的技术栈,为了吃透深入理解实现原理,我会找几本书,从不同角度查看一下前辈们是怎么深入的。

  另外对于新技术的出现,我会关注一些公众号,当有一些社区火热技术栈出新的大版本时,去官网查看一下特性说明,顺便把源码拉下来,自己跑一跑。

  最后经过对某项技术的学习后,我会写一篇技术博客,把学到的内容,讲述并记录出来,与社区的小伙伴碰撞一些火花。

  这样一套学习过程,没有几个面试官会不满意的。

  所以各位,如果你不知道怎么学习,可以借鉴一下我的方法,尤其是写博客,很有用,因为在面试的时候,可以把博客放上去,很能体现产出。

重新审视

  面试最后面试官问了我一个问题,你打算一辈子当个渲染数据的呀?

  这句话让我重新落地了,之前是太飘了,学的东西只是会用,但是不知道为什么这样做。

  疯狂吸入之后必须的过程就是沉淀了,这个过程其实是比较熬人的,你需要去思考,为什么要这样做,解决什么问题,带来什么问题,是不是符合预期效果,如果时间拉长,这样做有没有隐患。

  这些问题网上搜不到答案,只能多沟通,多交流,多实践,最好能有血的教训。比如我之前发现个内存泄漏问题,排查了好几期,问题单回归了两次,都没通过。

  好处就是那次经历让我接触到了 React 源码,开启了另一次的疯狂吸入。

  同时我开始写博客,记录下学习内容,然后根据学习情况,总结出提升的部分,我沉淀下来的东西。

  工作学习,不耽误,工作也可以成为学习的一部分,第一次面试失利后,我开启了疯狂写博客的模式。

  工作中遇到的坑,把解决方法和过程记录下来。

  看一本书,把书中与我有共鸣的知识点记录下来。

  另外就是多看面试题,自己尝试解答一下,然后再搜其他人的解答,综合整理,记录下来。

  某个新技术发布的新特性,记录下来。

  只要是能记录的,都记下来,把博客当作自己的笔记本,遇到同样的问题时候还能快速查看。

  这样我又准备了一年时间,决定再战阿里。

面试准备

简历

  面试前要做一些必要的准备,第一是简历,这里面项目经验是重中之重。

  面试官会先从你的项目经验里筛选他想要的信息。所以怎么写简历,很重要,非常重要。

  最普通的写法:

  某某项目

  所使用到的技术:React,Hooks,redux,TypeScript

  项目介绍:该项目是针对XX的管理系统,实现对XX增加,删除,修改,查看功能。

  上面这种写法,多少人中过,举个抓‍♂️,筛选肯定不会给过。

  一份简历最重要的是推销自己,上面这个项目跟你完全没关系,放任何一个人都可以,那就完全没吧自己推销出去。

  第二种稍微好一点的:

  某某项目

  所使用到的技术:React,Hooks,redux,TypeScript

  项目介绍:该项目是针对XX的管理系统,实现对XX增加,删除,修改,查看功能。负责我负责的内容根据UI提供的设计图,完成页面布局,实现和后端的数据交互,接收到数据后完成页面渲染。

  这个提了自己完成的工作了。但只能过一面,二面就会卡下来。

  问题在于大家不能把自己当成一名前端开发,甚至不能把自己当成开发。

  我们捋一捋,公司招聘,是为了赚钱,那只有做出能赚钱的项目后,招的人才有意义对不对,你如果想让面试官中意,那就得告诉他,招我能给你赚钱,怎么证明呢?

  这个时候,就需要简历体现了,可以写在项目中,推动前后端参数定义,协调联调方案,使项目提前上线。

  高级一点还可以写开发某工具,解决路由配置问题,提升前端开发效率。

  更高级一点可以写,结合某开源项目,搭建一套快速渲染引擎,提升渲染速度30%。

  给大家个模版:

  在某某项目中的工作

  1.负责前端页面的技术选型,功能预调研,根据基础功能划分开发模块,搭建 redux 数据传输框架,动态配置 react-router 路由入口。

  2.结合微前端思想,提出模块间微架构模式,封装微架构API,结合设计模式改善模块间耦合性,提高开发效率。

  3.针对项目特性配置 webpack ,优化开发和生产环境的打包性能。

  4.处理 node_modules 赖库兼容问题,熟悉 react17,antd4,webpack5 新特性。

  终极思想是要告诉面试官,项目阻塞,我能推动,项目开发,我能提效,项目完成,我能总结复盘。

自我介绍

  面试的过程也是查看你沟通能力的过程,这一点可以先多面几家小公司,多面一些,一方面积累面试题,一方面缓解自己的紧张,如果问题你都会,但是因为紧张忘了,也是很遗憾的事。

  做到这一点,就必须要求对每一次面试做复盘,尤其是自我介绍,把自己的自我介绍控制在 3-5 分钟左右,写一个稿子,面完一次修改一次。

  首先介绍自己的姓名,毕业学校,所学专业,工作年限。

  这里一定要简单明了。

  然后介绍一下自己的工作内容,分不同的方面,比如项目初期,会进行方案评审,技术选型;中期开发会搭建开发框架,配置路由入口;后期会针对项目特性,修改打包配置,提升项目性能。

  如果有亮点也可以在这里引申一下,比如有专利的话,可以说在工作中发现某一问题,针对这个问题写了个解决算法,申请了专利。

  这里给大家个模版:

   面试官您好,我叫 xxx 毕业于 xxx 大学,现在有 x 年的开发经验。

   我的主要工作内容是作为项目负责人,负责项目的开发与跟进。

   当有新的项目时,我首先会与产品确认具体功能,梳理出现有基础库不支持的特性,针对这些新功能,完成技术选型,并评估出开发周期。

   开发前,会与后端同事提前确定好数据结构,并确定好联调时间与接口优先级。

   开发前期,我会搭建此次调试环境,配置前端路由,搭建状态管理框架,用到的技术栈是React-router,Redux。

   中期过程中我会定时打包项目,保证服务端与本地效果一致,用到的技术栈是Webpack,并根据项目特性,进行打包性能优化。

   项目后期,我会书写测试用例,重新搭建上线环境,部署服务端配套的相关服务器。

   整个项目期间,我也会对开发过程中遇到的问题进行思考与总结,比如我的简历中有一个 xx 项目,上线后反馈了一个问题,当时的解决方法是修改配置,进行规避。我思考后从 xx 方向进行了设计。解决了问题,并升级了该模块的一键配置功能,优化组件使用。

   具体的解决方案我总结到了博客中,可以在博客中搜 xx 。

   这些就是我的主要工作内容。

  自我介绍期的过程,是为数不多的我们能占主导的时段,可以引导面试官往自己熟悉的领域靠拢,这很重要哈。

  自我介绍结束后,面试官会根据你的简历,和你的介绍,提一些问题,技术问题就做对应回答就行,不清楚的可以说没了解过,硬凑答案第一肯定凑不齐,第二给面试官的体验也不好。

非技术能力

  另外技术问题问的差不多了之后,面试官会问一些技术性不强的问题,这是在考察你的沟通能力,应变能力与抗压能力,下面有一些比较常见的问法,可以做一些针对性的总结。

   当问你,如果有一个需求,前端后端都能做的时候,交给谁做?

  对应回答:需要从投入产出比方向来进行评估,对于项目来说,谁做更符合项目需要,方便后续功能升级,或是如果存在需求变更,哪部分做代价更小。

  另一方面,排期问题,要结合考虑前后端人力问题,若一方存在人力不足,那另一方可以承接部分功能,保证项目及时交付。

  (这一点可说可不说)某个需求帮了兄弟组的同事时,可以及时知会领导,在其他部分争取一些小组利益。

   当问,如果测试同事说页面卡顿时,希望优化,怎么办?

  回答这个问题,最忌讳说,我看一下代码里面有没有什么可以优化的地方。这个问题的目的是检查你能否有效推动阻塞。

  我们先要明白一点,测试只负责测试程序,他们的大部分操作都是基于界面的,所以遇到问题基本都是找前端同学,这就需要我们摘掉自己前端的标签,我们需要做的是让问题浮出来。

  回答模版,我会找到测试同学,记录一下具体的复现过程,首先排查是否是网络问题,观察一下各个接口返回时间是否正常。

  结合开发者工具的 Memory 和 Performance 面板,查看整个页面渲染过程的时间消耗。

  还可以查看下是否是测试设备的原因,其他环境是否存在相同问题。

  这个时候如果扩展到一些相关的实现的具体方案,可以准备一两个,提一下,不用细说。

你有什么问题想问我吗?

  如果面试官问到这个问题,一定不能说没有,这个问题会反映出你是否有强烈意愿加入这家公司?

  同时如果回答的好,还能弥补一些前面技术问题的缺失。

  你可以问,公司的技术栈,主要负责的业务,你入职的话需要开发的模块(这些问题可以反映出,你很希望了解公司,了解工作内容)

  另外可以问面试官会通过哪些方法学习,可以这么说:“我平常学习,都是 xxx(详情请看上面“面试复盘”) ,我想请问一下您平时是怎么学习的,想借鉴一些高效方法。”(这个问题可以暗示你是一个喜欢学习的boy)

  第三个问题,可以问从面试官的角度来看,自己对于要面试的岗位,还有那些不足需要提高。

  基本上三个问题就可以了,多了也会显得啰嗦,这样一套下来面试过程可以说是很充实了。

面试复盘二

  入职阿里前,我面了很多大厂,就他们都喜欢问的一些问题,做个总结。

笔试

  笔试题里面出现频率比较高的如下:

   手写一个Promise,这个问题考察的是发布订阅模式

   深拷贝,树的渲染,这些问题是考察递归用法

   手写 useState, useEffect,这是考察对 hook 原理的理解

  有些大厂会考算法题,面之前可以在力扣刷一些简单难度的题,前端岗不会考的太难,刷一百道就稳过了。

初试

  初试喜欢问的问题:

   Hook 的实现原理 ,可以从 react16 升级了框架,从同步执行变成了可中断的异步执行说起。

   浏览器在输入 url 后,发生了什么 ,可以查看这篇博客

  • 输入 URL 之后,浏览器背着我们都做了什么事?

   Webpack的性能优化都有哪些方面?

  • WebPack打包性能优化

   前端性能如何优化?

  • 前端性能优化

复试

  复式的问题大部分都是跟项目相关。

   你熟悉的设计模式都有哪些?在你的项目中有什么运用?

  举个例子,比如装饰器模式,你在某个需求里,由于修改部分比较复杂,你使用了装饰器,在不改变其内部逻辑的情况下,增加了需求。

  平时在开发中,自己也会给一些函数封装 before/after 让函数执行前后先执行 before/after 。

   你做过哪些工作可以提升开发效率?

  这是在考察你,是不是只是写业务,有没有脱离业务的思考。

  可以回答自己结合某个开源项目。封装了什么工具,提升了哪些性能,解决项目中的哪些痛点。

  复试一般很喜欢给你一个场景,让你去解决一个功能,具体实现可以不谈,但是要把这个场景分析的全面一点。

  比如首页加载慢的问题,千万记住,别把自己当前端,要把自己当成这个问题的解决者。

终面

  能到这一面,说明你的技术水平是没有问题的,这一面问的比较多的是你的产出。

   做过哪些能提效的事情?技术落地怎么提现?怎么证明你的技术运用到位?

  这里需要你结合自己的项目,要通过项目体现出技术,最好能能贡献一些开源代码,对这一轮面试很有帮助。

  还可能会问, 至今为止遇到过最大的挑战是什么?

  一定要分阶段回答,这个困难怎么出现,如何解决的,解决后如何复盘,可不可以开发某个工具避免再次出现。

  另外终面很肯能会压力面试,比如问你, 你看的这些源码,在业务中能用到吗?

  一般业务都会不涉及修改源码的,这个代价太大,所以回答不会用到,但是不能只回答不能,还要加上,虽然开发中运用不到,但是学习源码的过程不是简单的学习原理,而是要明白道理,这些大佬在解决问题时的思路,能不能运用到自己的业务中。

  这些才是学习过后,能叫做沉淀的东西。

HR

  到达这一阶段,别说一些白痴话,基本没什么问题了,但是对于一些硬伤的问题,比如跳槽过多,一定要合理解释。

  另外这里 HR 可能会侧面问一些隐形问题,比如你现在的 工作加班情况 怎么样,建议往多说一点,这个时候 HR 会说,那也是挺辛苦的,这个时候如果你是顺着接,是挺辛苦的之类的,那么印象可能会不好。

  你需要回答,项目需要,产品对外答复好交付时间了,就要如期完成,一能提高公司形象,二总结经验,更精细化以后的评估。

  虽然有点不情愿吧,但是注意,各位最后的目的是入职成功,你说的每一个字都是为了帮你入职用的。

  当然了,如果你的技术牛批,那上面全是废话。

最后一啰嗦

  从鉴黄师到阿里前端,现在看好像跨度挺大的,会不会吃很多苦?

  我个人觉得,那属于认真生活,能感受到自己在成长,未来可期的感觉不叫苦。




你可能感兴趣的:(面试,镜花水月,面试)