您的当前位置:首页正文

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

2024-11-07 来源:个人技术集锦

点击上方 程序员成长指北,关注公众号
回复1,加入高级Node交流群
经历时间轴
  • 地点:上海

  • 8.31做完后离职

  • 9月份开始边复习边玩,轻松加愉快

  • 10月中旬开始投递简历

  • 11月月底绝望,期间仅有1次面试机会,伴随着的是各种焦虑

  • 12月开始随遇而安,每天复习或者学习2小时,然后就是打游戏,刷剧,中旬突然开始了1波疯狂面试,1周8面,收到满意offer

离职原因

离职前对自己的认知

优势:

  • 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

Node 社群

我组建了一个氛围特别好的 Node.js 社群,里面有很多 Node.js小伙伴,如果你对Node.js学习感兴趣的话(后续有计划也可以),我们可以一起进行Node.js相关的交流、学习、共建。下方加 考拉 好友回复「Node」即可。

   “分享、点赞、在看” 支持一波?
显示全文