[程序员] 写了一年多的前端,现在准备后端的校招还来得及么?

我个人的基本情况是浙大本硕,研究生转到了软件工程,算是挨着边了。原本 21 年就该毕业,不过因为中途和同学捣鼓着创业延毕了两年。创业做的项目是一个在线众包数据标注平台,由于并发也不高再加上我们认为难点主要在于前端的图像 /3D 点云的处理,所以我们前后端就选择了 TypeScript 一把梭( Vue3+NestJS )。这导致我至今没有写过一行 Java/Go 。今年三四月的春招找过前端的工作,拿到过一些 offer ,但是由于毕业论文流程导致我无法按时毕业,所以 offer 也作废了。但我就想着索性借着这个机会破罐子破摔转到后端好了。

想转后端的的原因是:

  • 我个人觉得后端的知识更加持久一些。在我粗浅的理解之下,后端代码是运行在服务器上,当你遇到了问题,你需要检索的领域是计组、操作系统、计算机网络、数据库这些知识。但是前端遇到的问题可能是框架问题,可能是打包工具的问题,可能是库问题,可能是兼容性问题等等。前者只要冯诺伊曼结构不变,可能几十年之后还是如此,而后者的知识就显得没有那么 stable 。
  • 前端的知识体系给人一种语焉不详的感觉,我始终无法很好地理解。作用域、原型链、执行上下文这些,起码是有迹可循的,在阅读完 ECMAScript Language Specification 之后会觉得确实是这么一回事。从this开始,我就不理解为什么有四种情况?哪怕是 Specification 也是在做分类讨论。还有面试经常被问到的「盒模型」、「居中的若干种写法」、「 position 值的各种意义」、「块级格式化上下文」。我至今都不知道「块级格式化上下文」这玩意儿的意义是什么??为什么overflowauto, hidden的时候就可以创建 BFC ?为什么 flex/grid 就能搞定的垂直居中会有七种写法?为什么模块化除了 ESM 还有 AMD/UMD/CommonJS ?为什么判读 js 变量类型也会有三四种方法?诸如此类令我猪脑过载的问题还有很多。。

转后端的一些顾虑是:

  • 没有任何项目经验以及实习。感觉并无竞争力。
  • 时间成本。秋招马上就要开始了。当时春招的焦虑感还历历在目。哪怕当时我认为我已经写了那么久的 js ,面试的很多问题也无法很好作答。
  • 机会成本。

    • 一个公司一般只能投递一个岗位。
    • 准备后端就无暇准备前端。

想要请教各位前辈的是:

  • 我应该转后端么?
  • 如果该转的话

    • 在简历不突出的情况下(无实习无项目),该如何一两个月的时间内提高自己的竞争力?例如夯实计算机基础?熟练背诵八股文?
    • 在语言上应该怎么选择? Java 还是 Go ?我个人有 c++的经历,不过仅限于刷 leetcode 。

最后想说的是,如果不深入研究前端,只把它作为兴趣,其实前端还挺有意思的。当时公司也没钱招 UI ,我们就模仿一些原生 macOS 应用 /各大网站来设计界面,在一些成熟的 UI 库的加持下,哪怕没有任何设计基础也能做出乍看之下还不错的效果,即时反馈非常强烈!让我回到了写hello world的那个下午😂