伊万·沙马托夫(Ivan Shamatov):如何写钱

你好

我们正在为即将到来的RubyRussia 2019会议做准备(您已经在日历中标记9月28日了吗?),并且正在与我们的演讲者谈论生活,社区和编程。 在今天的采访中, Evrone的Felix Yasnopolsky与Ivan Shamatov进行了交谈:Ivan Shamatov:Saint P Ruby社区的负责人(您可以在Telegram上进行轻松的社区聊天)和Cyber​​gizer的工程副总裁。

图片

您将在即将举行的会议上发表什么演讲?

我想证明编程中的钱很容易! 在金钱的帮助下,我们表达了某种产品或服务的价值。 通常,它们可以描述为2维元组,由数字值(例如100)和字符值(例如USD,$)组成。 对于具有相同符号的货币交易,数学方法相对简单,但是即使在这里您也可以发现陷阱。 关于将货币从一种货币转换为另一种货币的方案,我们可以说些什么。 在这里,理想的数学世界崩溃了,企业会计开始了。 我将展示如何理解某些场景,以及金融科技项目实践示例中可能出现的错误。

为什么选择这个主题?

我参与了地铁付款系统Aeroexpress的开发,Aeroexpress是一种为美国某些州和其他许多州的水电费支付系统。 我写的第一个脚本是一个PHP脚本,用于通过Pushkin的终端机支付Internet费用。 下次当我在Cryptopay工作时遇到金钱的话题-那里也有转账和交易。 然后我去了Toptal工作,当时我是计费团队的一员。 为了准备这次会议,我想很多人可以谈论Ruby的功能,但是很少有人了解如何写钱以及如何正确使用钱。 这是我们在各种项目中经常遇到的话题。

您喜欢Ruby以外的哪些技术?

我真的很喜欢JavaScript。 享受在ES6上编写的便利。 我喜欢来自其他语言的Ruby范例:在这种情况下,我们不必使用这些其他语言。 您可以打开一个并发的gem,并查看Go,Clojure,Java和JavaScript中的许多工具。 我喜欢用不同的语言,有必要使用不同的思维方式。 有些人从Ruby转到Go,以维护Ruby思想的原理。 或者使用PHP的原理学习Ruby。 这在编程中不起作用:每种语言都有自己的方法,自己的工作流程,自己的思维方式。 您需要了解如何在特定技术的框架内精确地编写程序。

我对移动开发非常感兴趣:相同的模式,相同的MVC,但是一切都以完全不同的方式工作。 研究React和Redux非常有趣-对于典型的Rail来说是一个很好的仓库:)

告诉我们您最大的失败和骄傲的原因。

我为参与的项目感到自豪。 例如,一个项目使得在莫斯科可以使用Aeroexpress卡进行付款。 喀山都会使用相同的系统。 我在JRuby上为旋转栅编写了一个客户端,为这些传输事务提供服务的Rails后端可以与各种API一起使用。 这是一个非常有趣的项目,只有三个开发人员参与其中。

法卡波夫(Fakapov)不会感到羞耻,即使发生了。 一个人有权犯错。 错误-而且您不再这样做。

您的活动之一是辅导。 你为什么要这样做?

我本人总是有导师建议如何做。 这些人来自不同的聊天室,我在会议上与之交谈的人。 当我达到一定水平时,我开始指导离线和在线。 现在,我与来自Rubizz 's的人打交道。 这是我今天的主要项目之一,是针对初学者的Ruby深入实践研究。 给孩子最大的行动自由和犯错的权利。 并且只有在圆锥体装满后,指导者才能解释为什么这是一个错误以及为什么您不应该这样做。 我认为这是正确的方法:有些事情只有您自己收集这头耙子才能理解。 如果您从未错误地使用过回调,那么您将不了解它们可能是什么问题。 为何社区中的许多人讨厌回调。

我听说您试图加入Toptal团队六到七次。 是真的吗

是的,是的,我说了很多遍。 自公司成立以来,Toptal一直奉行积极进取的主动招聘政策。 我大约一年一次被邀请接受采访。 在反复尝试失败之后,我决定不再尝试。 但是我的朋友曾经和我们一起开始了Ruby之旅,在那里找到了工作,并建议我再试一次。 这次我可以完成面试的所有阶段。 入口处要进行一次大型的技术测试,然后是一次面试,然后再进行一次……现在,我认为进行5-6个阶段的面试是一种非常酷的做法。 只有这样,您才能了解谁在您面前,您是否想与这个人一起工作,他是否适合团队。 我知道为什么他们第一次不带我,那时我真的没有拉。

您认为应该如何安排理想的工作面试和招聘流程?

当我帮助选择前团队Cryptopay的人员时,我们有两个阶段。 作为测试任务,我们提供了一段重构代码。 基于这段代码,我们对候选人进行了初步评估。 然后,我们以实时编码的形式进行了一次采访,以了解此人是否适合我们。 实时编码可让您了解一个人的想法。 您不仅可以评估编写的内容,还可以评估开发人员如何使用操作系统(IDE),热键是否知道他对特定主题的理解程度,使用的方法以及在过程中向同事提出的问题。 这种方法比有关算法的测试或面试提供了更多有关人的信息。

但是我相信这还不够。 现在,在Cyber​​gizer,我经常雇用与我合作过的人。 有些人与我们没有合作,但是他们一起写了某种开源。 这样的联合活动使您可以看到一个人如何编写代码。 您还可以了解工作流程的匹配方式,在心理上的亲密程度。

我不认为自己是招聘专家,我的做法也没有用。 我最近的一个错误:我不想在现场编码会议之后带那个人去接受采访,他并没有给我留下深刻的印象。 但是其他团队成员投票赞成他,我们开始共同努力。 在合作中,我意识到这是一位高级专家。 当我是个全力以赴的人,而作为开发商时,他什么都不是,这是完全相反的情况。 在这两种情况之后,我还无法判断任何特定招聘方法的正确性。 也许是幸运的,也许不是幸运的。 解释一个著名的笑话:
-您如何聘请如此优秀的开发商?
-这就是雇用优秀开发人员的全部经验!
-以及如何获得这样的经验?
-我们需要聘请其他开发人员。

对我如此奇怪的是,这么多人都对如何吸引优秀的专家感兴趣。 但是很少有人对如何成为一家优秀专家想要在其中工作的公司感兴趣。 还是您首先应该考虑一下?

您正在组织在圣彼得堡举行的Saint P Rubyconf会议。 为什么以及为什么要这样做?

这是Ruby文化的一部分-社区贡献者。 有人嵌入代码,编写开源。 我为自己的贡献。 许多人认为,要做出任何贡献,您的额头需要七个跨度。 但是事实并非如此! 大约10年前,当我刚开始使用Ruby时,我和一群人一起翻译成俄语和有声的RailsCasts。 这样,每个人都可以对整个社区有用:无论您是用gem更新基座,写文章还是组织mitap都没关系。

9月28日在RubyRussia见!

观看此节目并加入此处 ,预计9月15日之后下一次提价。

感谢支持我们的公司:

主办单位-Evrone
一般合伙人-Toptal
金牌合作伙伴-Gett
银牌合作伙伴-JetBrainsBookmateCashwagon
铜牌合作伙伴-InSales

Source: https://habr.com/ru/post/zh-CN466881/


All Articles