关于测试任务在开发人员生活中的作用

您一生中接受过多少次技术面试?

在过去的五年里,我参加了 35 场技术采访,涵盖了各种可以想象的类型和具体情况——从哈萨克斯坦集体购买冬季肉类的初创公司到德国和美国的金融科技服务和银行; 重点关注规划、交付和管理; 远程和在办公室; 时间有限和无限; 压力和放松,用不同的语言。

再加上我作为雇主进行的约 20 次面试,这些数量足以让我成为面试之王,以做出以下观察(最初完全不明显)并在其中确立自己的地位:我相信在很大程度上由于进行了如此多的面试,它开始看起来像是边缘习惯,尽管我已经在 Web 开发领域工作了 10 年,但我在专业水平上研究了我的堆栈并成为了一名有竞争力的专家。

本文是写给那些刚刚开始其旅程并且尚未耗尽其知识深度的程序员的。 在其中,我想扩展关于测试任务和面试中提出的技术问题的巨大教育效益的论文 - 并邀请每个人使用我新编写的电报机器人 实现机器人,按照我的计划,你至少每天都可以参加技术面试,直到结束。 为了让它们不会结束,你还可以分享一个有趣的技术任务、问题或在面试过程中遇到的有用/有趣的情况。

我将在下面告诉您有关机器人的更多信息,让我们首先弄清楚为什么了解和理解这些技术问题和任务的答案如此重要,即使您已经成功运行自由项目多年。

为什么我们的基础知识质量还差得远呢?

如果你还没有成为面试之王,那么技术面试对身体来说是一个严重的压力,就像一般的找工作一样——无论你是新手专家、转行者,还是在某一行业工作过的开发人员放置很长一段时间(在我们这个时代,“长”可以被认为是一年)。

在许多采访中,人为因素加剧了这种压力。 你的面试官可能不是 Alena Vladimirskaya,而是一个普通的程序员,你很难指望从他那里得到足够的任务和评估,或者是一个铁杆团队领导,他会等待时机降低他在工作中的所有严厉程度。他的目光注视着你,问着这样的问题:什么是适合你的敏捷!?

有一天,由于没有对这个问题给出必要的、但正如你所知、不可预测的答案,我没有得到一份工作邀请,对此我感到非常高兴。

通过尽量避免这种压力和不必要的动作,我们不仅可以避免大声暴露我们对语言的一些基本特征的无知,而且可以至少减少一点这种无知。

问题是,在实践中我们很少能遇到这类问题。
任何曾在多个地方工作过的开发人员都会确认,面试中提出的基本或创造性问题很少与程序员在现实生活中处理的问题有任何关系——世界上没有递归、图形和异步电梯控制系统。银河系另一臂的引力。 很遗憾。

与我的原生 JavaScript 相关,有一个很好的例子 - 如果 React.JS 没有出现,98% 的 JavaScript 程序员将成功地继续生活在对 Bind 是什么的无知之中 - 在它出现 20 多年后 - 并且会继续会感到困惑,在面试中收到有关它的问题,只有那些发明了所有这些高度抽象的库、框架和模块的人才会继续使用它。 今天,由于大家的反应,这个数字已经减少到了 97%。

显然,看到这些任务的“脱离现实”,许多开发人员忽视了它们,或者浪费时间沉浸在其中 - 并继续进行他们的日常工作,也就是说,形象地说,不仅走过了生产开发的雷区没有地雷探测器,而且也不知道自己身处雷区。

缺乏语言基础知识会产生什么后果?

这个问题的答案似乎很平庸,但出于某种原因,人性总是把它的解决方案推到遥远的角落——这在初级和中级程序员的生活中扮演了一个悲伤的角色,延长了他们通往高度(和深度)的道路。 )的语言知识提高了几年。

如果他们在编写时没有充分了解其执行的各个方面,那么使用他们每天习惯编写的框架和库的应用程序代码就不能被认为是可靠的。 JavaScript 世界中 JQuery 库的命运很好地说明了这一点,它曾经是进步的引擎,而今天,作为一个自我封闭的知识领域,与语言的其他部分分离,自然地在市场 - 半专业脚本匆忙编写并根据需要工作,作为从廉价自由职业者引导的相同快速布局的礼物。

以这种不负责任的方式开发的项目的未来,尽管是出于无知,却是平淡无奇且短暂的:突然的大量时间损失、失败、财务和声誉损失,结果是,继续下去的热情下降。合作。

另一方面,对于一个选择了程序员道路的人来说,没有什么比理解自己正在做的事情更令人愉悦的了。 明白他就像孟乔森男爵一样,骑着马跃过雷区。 不用说,一个体面的雇主能清楚地看到人们在雷区中肆无忌惮地行走,以及在什么都不用想就能跑跳的情况下犹豫不决的人吗?

实现机器人

看到了面试的好处,并且意识到进行空白面试并不完全道德,我认为创建一个机器人会很棒,让初学者或移植到另一种语言的开发人员可以参与教育培训,而无需求助于其他语言。在这种程度上,真实的采访就发生在我身上。 并记住程序员如何喜欢讨论和比较他们必须解决的问题 - 特别是如果它是一些不平凡的事情 - 我意识到一切都适合,拒绝所有疑虑,瞧。

该机器人目前有 3 个简单的功能:

  • 订阅特定语言/框架以接收新任务。 您订阅并在任务到达时,您会在每日时事通讯中收到它们
  • 发布任务或测试任务 - 在我的书中他们说分享就是关怀
  • 一个出色的名称生成器,您可以使用它为您发布的任务文本选择最佳签名,包括女性词典,而不是没有女权主义者

目前有以下语言可供选择:JavaScript、Java、Python、PHP、MySQL。 由于我的理解有限,选择有些有限。 我希望在 Habra 社区的帮助下添加到这个列表中。

该机器人以纯粹的摇滚形式推出;不需要支付任何费用。
您可以使用以下链接访问它: 实现机器人

简述技术实现

这个机器人是几个小项目之一,我在其中带来了我的开源迷你框架的第一个公共版本,用于开发具有复杂结构的机器人,被亲切地命名为 Hobot,并在 NPM 中为铁杆人士提供。

该框架基于Telegraf.JS和TypeScript构建,其零零优先版本,配有使用示例,可​​以查看 吉萨贝 并立即尝试。 很快我会上传0.0.2版本,为外部人员进行扩展和梳理,并将专门撰写一篇文章(主干)。 如果它对某人和对我一样重要,我会很高兴。

那么,您需要参加多少次面试?
我相信你有话要说!

来源: habr.com

添加评论