likes
comments
collection
share

裸辞四个月,前端仔靠着Nest绝境收下offer

作者站长头像
站长
· 阅读数 3

经历时间轴

  • 地点:上海
  • 8.31做完后离职
  • 9月份开始边复习边玩,轻松加愉快
  • 10月中旬开始投递简历
  • 11月月底绝望,期间仅有1次面试机会,伴随着的是各种焦虑
  • 12月开始随遇而安,每天复习或者学习2小时,然后就是打游戏,刷剧,中旬突然开始了1波疯狂面试,1周8面,收到满意offer

后面开始述说离职原因、心理历程,这几个月我经历了什么?

离职原因

  1. 某独角兽 外包仔
  2. 无晋升空间,时间1年半,作为项目组第一个前端,我完成了80%工作,包括脚手架、组件库等基础建设,直到三四个月后才陆陆续续来了其他四五个前端,一块干活。一到填绩效都有我,每次表扬都有我,我都成标兵了。领导每个季度向上汇报时,都提出对我进行转正,从无名额为由到最后的不予回复。失望+1
  3. 9106式工作,阿谀奉承式的敏捷开发,从一开始还是有计划,有设计的迭代,到后面不断图快式开发,跨层汇报。后期演变为了,领导说这样做OK,做完了,领导的领导觉得不OK,重做另一种,做完后,领导的领导的领导觉得不OK,来回返工,以人力不停试错。失望+1
  4. 薪资差距,外包仔 工资每年仅有12个月工资,最低社保,最低公积金,做好做差都一样,没有任何加班工资,说好的调休,申请调休时,层层受阻,PUA不断,失望+1
  5. 僵硬、不思进取的氛围,领导最喜欢说的话,先上一版再说,并且去除了husky,eslint、tslint等提交校验,导致代码屎山不断,相似的功能、逻辑、同事一致在进行大批量复制,甚至有非常强的耦合性,不拆分组件、hook,甚至无视TS类型定义,VSCODE经常出现许多飘红文件,导致TS错误反馈链无法正常使用,维护难度急剧上涨。注定尿不到一个壶里了,失望+1

离职前对自己的认知

优势:

  • Vue3、Vue2、React函数式组件开发/class组件开发皆可
  • 近2年ts使用经验
  • 熟悉前端工程化,包括rollup、vite、webpack配置,脚手架开发,组件库搭建、monorepo式的包管理等。
  • 熟悉数据结构、设计模式,并擅长数据结构设计,保证可维护性的同时不停增强可扩展性
  • 算法方面,比不上各种大厂的前端,至少比下有余,leetcode刷过100多题,虽然都是简单中等难度,但至少强于大部分前端了吧
  • 工具方面,熟悉processon绘图工具的使用,包括绘制uml类图,脑图等

劣势:

  • 28岁,接近4年的前端开发经验
  • 大专学历
  • 外包仔

重拾技能:

  • 微信小程序开发,3年前开发过一个原生小程序,长久不用忘了
  • node方面之前还使用过Express、Koa打通mySQL,开发过几十个增删查改的接口
  • 跨段方面,以前的一段工作经历使用过UniApp开发过H5与小程序的跨段应用

重拾这部分技能后,对于寒冬中离职感觉也不是那么可怕,但后面现实还是泼了一盆凉水

离职后我是怎么做的?

学习Nest过程中我收获了哪些东西?

通过学习,我对服务端开发套路更加清楚,前端是开发界面,接收数据,呈现数据;服务端则是负责提取或者写入数据,中间穿插着对数据的处理。当系统学习后我豁然开朗了不少。

  1. 多环境配置方案
    • 使用dotenv的简单数据配置
    • 使用js-yaml的复杂数据方式配置
  2. 数据库
    • 如何提升数据库使用效率?——ORM方案,如:typeORM、sequelize、prisma
    • 数据表间的关系有哪些?如何设计?——1对1、1对多/多对1、多对多;及三大设计范式,er图如何设计
    • 如果需要考虑数据库迁移,如何配置nest连接数据库?
  3. 日志统计
    • 为什么日志统计这么重要?
    • 常见日志方案——winston、pino
    • 日志如何分类?—— 错误日志、调试日志、请求日志
    • 日志记录位置有哪些?分别起什么作用?—— 控制台日志(方便调试)、文件日志(方便回溯与追踪)、数据库日志(敏感操作/数据 记录)
  4. 过滤器有哪些?有什么作用?—— 全局过滤器、控制器过滤器、路由过滤器;它们用来更友好地返回服务端的错误响应。
  5. 拦截器和过滤器区别是什么?拦截器主要用于在请求处理之前和之后对请求进行修改、干预或拦截。它们可以修改请求和响应的数据、转换数据格式、记录日志等,以及处理全局任务
  6. 面向对象式的开发方式,为什么老是看到JAVA里充斥着这么多的“注解”?对设计模式,模块的分类,层级的处理更上一个层次

当自我介绍时说出熟悉nest开发的变化

当有2家自研公司在对我面试时,我抛出了熟悉nest开发后。面试官感觉眼神都不一样了,这是真实的。然后这两家公司面试完后,我总结下来,1个小时有大概半小时都是在谈论服务端开发对前端的助益,更多的是关于fp开发oop开发的区别,有哪些收获?除此池外,我们还会不停探讨关于设计模式、数据库方面的话题,如:表关系、如何解耦之类的。也就是说,有面试官一直在挖掘你的深度、广度。你和面试官侃侃而谈,自然结果不会差!

另外还有两三家公司,谈到Nest或者node方面的东西时,面试官都是一句话带过,自然而然,他们不熟悉这方面的东西,你也可以反向面试出这家公司的深浅。

最后入职的公司

面试了两轮,大概4个小时不到,docker、服务端、前端、设计模式、规范、简单的算法,全都问了一遍。其实还有另外俩家备选的公司,都是到了二面三面,当我拿到这家公司offer后,婉拒了他们的面试,也少了一波问价的机会。

今天报道,朝九晚六,偶尔加班,最多8点。薪资也很满意。

感谢nest、感谢我的卷,值了!祝各位有个清晰的规划,能够快速上岸

补充总结

文章发出来后,大家的回复,以及争论大大的出乎了我的意料,个人总结,补充说明一下:

  1. 本身面试的是前端岗位,因此进去了,干的也是前端的活,该做界面做界面。但如果有机会用nest做服务端,我觉得也挺好的,本身是一个锻炼机会。有的公司,部门,小组,会用node搭建自己的服务,因为它是小组内部需要,是对内的,当然它不多。
  2. 这不是以前,人人都会Jquery,但是你会Vue或者React你就有了更强竞争力,前端的活,更多都是围绕做界面,做交互,现在Vue、React、Ts谁不会用呢?因此主要竞争力方面,人人都难分高下,就需要靠别的附加价值去击败别人,因此无论是工程化方面也好,服务端知识也好,本身就是附加价值的一个体现。
  3. 我通过面试的时候有条理的描述自己学习nest的过程,以具有结构性的语言总结出自己所获取到的知识点,本身就是个人学习路线、学习方法、学习思维的体现。体现出了自己的自学能力,总结能力,逻辑能力,沟通能力,因此面试官哪怕深知实际用不到这些东西,但是好感度已经拉满,毕竟一个懂些服务端知识的前端总比只会做前端工作的前端好吧。不容易被后端忽悠,前后端撕逼时,也会撕逼能力更强。
  4. 除此之外,建议丰富一些软技能类的能力,比如前面提到过的,流程图、UML类图等玩意,没事多用processOn画画;然后沟通时及时摆出图来,业务你能画图梳理,不是秒杀那些只拿张嘴在那BB个没完的同事吗?因此面试时可以直白跟面试官描述自己的这些软技能,甚至直接画图。
  5. 最后,补充几个我当时没面试时规划的路线,回到那句话,现在Vue、React、Ts谁不会用呢?因此本身要具备竞争力,可以考虑几个路线:第一种,自学Next、Nuxt等SSR渲染,学习提升SEO。第二种,electron学习做桌面端、flutter或者RN学习做移动端。第三种,图形学,以后去做threeJS之类的。都具备很强的竞争力,比普通的前端崽好混。当然也会更累。
  6. 总结:差异化竞争,展示自己的附加价值。