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

文摘   2024-11-07 09:05   中国香港  


经历时间轴

  • 地点:上海
  • 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与小程序的跨段应用

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

离职后我是怎么做的?

  • 9月-10月我都是在整理、复习JS知识点、Vue、React框架方面的硬基础内容,期间开始了在掘金发文,也算是进行了知识点的分享,获得不少的收藏、点赞,非常有满足感
    • JS复习分享[1]
    • Vue复习分享[2]
    • React复习分享[3]
    • 设计模式复习分享[4]
  • 我的目标是中小厂自研,经过查看多家公司招聘要求后,发现中小厂对于跨端开发的执着,于是在此期间,学习了taro,感觉与uniapp一样,也能很快上手,本质也是多了一部分如同小程序般的json配置化。
  • 除此之外,每一家招聘要求上,都会有一条很显眼的要求:熟悉一种后端语言优先。招聘公司并非要求我们要真的去开发服务端,而是希望通过这种方式,降低前后端的沟通成本,并且使得双方达到一种平衡,避免前端后端间的撕逼。因此,我第一个想到了Nest,在学这个东西的时候,顺带还能复习一把以前的node开发知识,相比H5,小程序也更容易出圈。(尤其是碰到那些专注于前端开发的面试官,你能扯一部分服务端的东西,他也得一愣一愣的,因为他也不知道你对不对,你究竟有多对)

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

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

  1. 多环境配置方案
  • 使用 dotenv的简单数据配置
  • 使用js-yaml的复杂数据方式配置
  • 数据库
    • 如何提升数据库使用效率?——ORM方案,如:typeORM、sequelize、prisma
    • 数据表间的关系有哪些?如何设计?——1对1、1对多/多对1、多对多;及三大设计范式,er图如何设计
    • 如果需要考虑数据库迁移,如何配置nest连接数据库?
  • 日志统计
    • 为什么日志统计这么重要?
    • 常见日志方案——winston、pino
    • 日志如何分类?—— 错误日志、调试日志、请求日志
    • 日志记录位置有哪些?分别起什么作用?—— 控制台日志(方便调试)、文件日志(方便回溯与追踪)、数据库日志(敏感操作/数据 记录)
  • 过滤器有哪些?有什么作用?—— 全局过滤器、控制器过滤器、路由过滤器;它们用来更友好地返回服务端的错误响应。
  • 拦截器和过滤器区别是什么?拦截器主要用于在请求处理之前和之后对请求进行修改、干预或拦截。它们可以修改请求和响应的数据、转换数据格式、记录日志等,以及处理全局任务
  • 面向对象式的开发方式,为什么老是看到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. 总结:差异化竞争,展示自己的附加价值。
    原文:https://juejin.cn/post/7319330542100561932标注
    [1]

    https://juejin.cn/post/7275576110818099240

    [2]

    https://juejin.cn/post/7276817683110608930

    [3]

    https://juejin.cn/post/7278685769374990388

    [4]

    https://juejin.cn/post/7302698423840849960




    JavaScript 每日一练
    每天一道JavaScript 实战题,让大家平时多多积累实用的知识,提高开发效率,才有更多的时间摸鱼。
     最新文章