为什么我决定继续做前端工程师,不再寻找全栈工作
我写这篇文章的目的是强调你应该深化你当前所在领域的知识,而不是试图过快地转向新的领域。如果你自己就是一名前端工程师,并且认为自己所做的只是基础工作,那就读读我的故事吧!
我的软件工程职业生涯大致始于2018年1月。由于我的专业是机械工程,所以很难找到软件工程的工作。当时,我成功地在一家小公司找到了一份实习生的工作,这家公司为客户提供一个使用Angular构建的前端解决方案。在工作中,我接触了Angular、UI架构和客户端-服务器架构。学习Angular的过程非常有趣,因为这个框架本身开发速度非常快,而且有很多东西可以学习,并应用到我维护的应用程序中。
在实习了两年,对 Angular 有了扎实的了解之后,我决定继续前进,在一家同时处理多个项目的公司找一份软件工程师的工作,这样我就可以从不同的环境中学习。幸运的是,我进入了一家机构,这家机构通过根据客户的需求创建 React 前端,帮助客户扩展数字化战略。与此同时,我完成了学业,获得了计算机科学学士学位。在这家公司待了一年半之后,我偶尔会关注一下当地的就业市场,发现中大型公司对全栈开发人员的需求呈上升趋势。全栈工程师的职位数量是前端工程师的两倍。作为一名初出茅庐的软件工程师,我希望通过学习全栈工程师的知识来为未来做好准备,这样当我再次需要转换工作时,就能轻松找到工作。但我对创建全栈应用程序几乎一无所知。在大学里,我学习了所有基础知识,例如关系数据库、服务架构、MVC,甚至 .NET 和 C# 基础知识,但多年来我都没有实际动手的经验。因此,我决定在业余时间通过创建休闲项目和在线学习来加深我对 C#/.NET 的了解。
2021年年中,我开始申请各种需要.NET全栈工程师的职位。我总共参加了三次面试,几乎不出所料,全部被拒绝了。原因如下:
面试官一号
第一个项目让我创建一个小型解决方案,用于可视化以文本文件形式保存的 IIS 日志。于是我创建了一个解决方案,将文件解析、写入 SQL 数据库、使用 Entity Framework 读取、使用映射器映射到数据传输对象、通过 API 端点以 JSON 格式发送到客户端,并在浏览器中完美显示。我想,这就是全栈开发人员应该做的事情。我及时提交了解决方案,并被邀请到公司进行演示和讨论。演示完解决方案后,负责人开始问我一些问题,例如:
- LINQ 内部做什么?
- 行号 so 和 so 起什么作用(在自动生成的 .cs 文件中)?
- 对象类型和值类型有什么区别?
- 当您需要处理数百万行日志时,您的应用程序可能存在哪些潜在问题?
- 什么是内存泄漏?
- 什么是垃圾收集?
- UTF-8 编码是什么?
这个故事的寓意是,他问了我很多关于后端开发的问题,我几乎答不出来。关于前端工程的问题几乎没有。所以我的印象是,这些人实际上是在寻找一个懂一点HTML/CSS的后端工程师,而不是一个全栈工程师。被拒后,我参加了第二次面试。
面试官二号
第二位面试官没有要求我创建一个小型应用程序,但在面试过程中,他们希望我在 15 分钟内创建一个描述问题的 UML 类图。因此,我尽力创建了一个不可知论的类图,并尝试解决这个问题。他们问了我一些关于我的解决方案的问题,这些问题与基于该解决方案创建关系数据库有关。总的来说,他们进一步问了我一些问题,例如:
- 关键字 virtual 在 C# 中起什么作用?
- C# 中的抽象类、接口和类继承有什么区别?
- 抽象方法是否必须被重写?
- SQL 和 No-SQL 有什么区别?
他们主要问了我一些概念性的问题,比如类建模、关系数据库等等。同样,他们也问了一些关于前端工程和 UI 架构的问题。
三号面试官
第三位面试官几乎只问了关于.NET和SQL Server的技术问题。这些问题包括:
- 您可以从 C# 中的多个类继承吗?
- 什么是 SQL Server 函数和过程?
- 什么是左连接、右连接和内连接?
这位面试官问的前端和后端的问题数量差不多。前端的问题我几乎能完美回答,但后端的问题我几乎答不出来。
我的结论
被三家公司全部拒掉后,我非常沮丧,感觉自己这辈子都只能做前端了。一开始,我对后端开发也很感兴趣,但我高估了自己的技能,不知道后端工程师到底需要什么。冷静思考并重新考量了收到的反馈后,我思考了这些面试的构成。可以看出,他们并不想了解太多我的前端工程技能,就好像他们只在寻找一个拥有一些前端技能的普通后端工程师一样。如果我能很好地回答他们关于后端的问题,即使前端开发做得很差,我仍然可以找到一份全栈工程师的工作。对我来说,这意味着在我所在的行业,或者至少是我面试过的那些公司,仍然没有认识到前端工程是一门独立的、极其复杂的学科,甚至如今它甚至有自己的学士学位课程。对我来说,同时成为后端和前端专家并达到一定深度是不可能的。所以我必须集中精力,继续前进。
经历了这一切,我终于明白了自己真正想要什么。我想成为一名非常熟练的前端工程师。成为一名优秀的前端工程师,需要的远不止用一些 JavaScript 和 CSS 编写精美的 HTML。我意识到,创建前端其实还有很多东西需要学习,而我的旅程才刚刚开始。是的,我甚至还没有完全掌握 JavaScript 的精髓。为什么我要在成为我现在所做工作的专家之前就转行呢?从现在开始,我会更加深入地学习,努力学习关于 Web 的一切,成为一名优秀的前端工程师。
文章来源:https://dev.to/webdevken/why-i-decided-to-stay-a-frontend-engineer-and-stopped-searching-full-stack-jobs-590c