第二期
Run Loop的嘉宾-有关用自己的双手制作产品的播客-Yegor Bugaenko。 我们将询问他有关创建自己的Zold加密货币的目标。 了解为什么使用Ruby编写它。 让我们马上讨论很多事情,从日常工作和书籍开始,最后是关于程序员工作质量的挑衅性问题。 最后,我们将讨论那些不知道如何参与开源项目的开发人员将很快对任何人都变得毫无用处。

主讲人:Ilya Tsarev,Alexey Mileev,Roman Busygin。
Ilya Tsarev在Alfa Bank从事iOS开发,在各种会议上发表演讲。
阿列克谢·米利耶夫(Alexey Mileyev)正在开发Air的Android版本,领导Android开发的Telegram频道,并监督AppsConf的报告。
Roman Busygin-适用于iOS的Yandex.Music的领先开发人员,经常在会议上发表演讲并参加播客。
离开:
Yegor Bugaenko -
Zerocracy的创始人兼首席执行官,这是一家开发用于管理程序员的AI机器人的公司; OOP原教旨主义者; 优雅对象(Elegant Objects)的作者,有关面向对象编程的一系列书籍; Cactoos,Takes Framework,JCabi和Rultor的创建者,以及博客作者和慈善家。
阿列克谢 :告诉我你自己在做什么。Egor :我主要是编程和管理程序员。 这是我活动的两个领域。
伊利亚 :请告诉我如何结合使用。 您在什么时候管理开发,什么时候在编程? 请向我们详细介绍您的公司。
关于公司
Egor :我们的公司称为Zerocracy,是自由职业者交流的场所,自由职业者,程序员,测试人员,设计师和各种其他技术人才都得到了联系。 另一方面,需要这些人才并希望完成软件项目的客户。
该站点的关键核心是自动化人工智能。 这是一个机器人-控制开发过程的聊天机器人。 他为程序员设置任务,从程序员那里收集结果,付钱给他们,评估他们的工作质量并组织整个开发过程。 最初,我自己写了这个机器人,人工智能。 现在,我在其开发中扮演着微不足道的角色,开发团队不断完善和完善。
我是Zerocracy的首席执行官。 我大部分时间都花在了此上。 在编程领域,我有几个正在积极开发的项目。 其中之一是我们的试点项目zold.io。 这是我们在公司内部创建的一种加密货币,可以替代现有的区块链解决方案。 我是此解决方案的架构师。 我不是唯一从事此工作的人,但我是一名建筑师。 该产品很有趣,因为它是用Ruby的当前版本编写的。
zold.io项目是
解决分布式支付问题的
另一种方法 。 区块链是一个众所周知的,广为流行的解决方案,用于以零信任的方式在服务器上组织分布式数据。 我们提出了我们的解决方案,该解决方案不使用块,链和区块链中的所有内容。 我们以自己的方式解决这个问题。 在我们看来,我们的解决方案也很有趣。 这就是我在主动编程中所做的。
为什么红宝石
Roman :Egor,听说区块链非常有趣。 这是一个非常复杂的计算。 您使用的是Ruby,它以其缓慢性而闻名。 几乎每个人都在尝试避免在大型项目中使用它。 请告诉我为什么使用Ruby?Egor :我们没有区块链。
我们有加密货币,但没有区块链 。 人们经常将两个概念联系在一起。 在他们看来,加密货币=区块链。 这些东西可以放在一个包中,例如在比特币中,但是实际上,区块链只是一种将数据存储在许多服务器上的方式,每个服务器的信任度为零。 区块链实际上是一种需要大量速度和计算资源的数据存储技术或方法。
我们的项目不使用区块链。 因此,其他方面也很重要。 对于我们来说,计算速度并不重要。 我在博客上写了一篇文章“
为什么要使用Ruby? ”,并指出了回答这一问题的三点。
- 与我所说的其他语言(Java,C ++和JavaScript)相比, Ruby是一种非常紧凑的语言 。 Ruby代码更短,更容易编写。 在Java中需要100行代码,而在Ruby中则可以容纳20行。
- 由于其紧凑性, Ruby非常便于实验 。 该解决方案不是立即创建的;花了几个月的时间来处理示例,错误和损坏的版本。 因此,很多对应。 这样做并用Java反复重写将不太方便。
- Ruby有一个非常方便的系统,用于部署 ,安装和重新安装Java等不可用的版本。 对于JavaScript,存在npm,在C ++和Java中,如果存在这样的系统,则它们依赖于平台。 Ruby是一个跨平台的系统,对于重新安装新版本非常方便。 这对我们来说非常重要,因为我们正在与不同平台上的贡献者社区打交道,但他们并不隶属于我们。 根据定义,系统是分布式的和匿名的。 因此,对我们而言,易于安装的解决方案非常重要。
因此-Ruby。
创建的加密货币的目的
阿列克谢(Alexei) :创建加密货币,创建黄金时,您追求什么目标?埃格 :我们有几种动机,后来出现了目标。 坦率地说,第一个动机是纯粹的技术动机。 解决这样的技术问题很有趣。 我是一名工程师和技术员,解决复杂的技术问题使我感到很高兴。
我听说过很多有关区块链的知识,并且加密货币现在越来越流行。 市场问题是经济问题。 他对我不是很感兴趣;我对技术问题更感兴趣。 也就是说,他们如何做出区块链决策,以便我们信任没有集中式服务器和中央控制点的系统。 由于每个人都在谈论区块链,所以以我自己的方式尝试解决此问题对我来说很有趣。
如此纯粹的技术挑战:让我们尝试,应该解决。立即无法正常运行。 三个月不起作用,但最终找到了解决方案。 它现在已经在工作,即使使用这种货币,我们也已经向在我们平台上工作的程序员支付了费用。 交易开始进行,尽管到目前为止还没有广告,但是在生产模式下供我们内部使用,但是在小额交易中,我们一直通过它进行交易。
第二个动机是大经济。
对于在Zerocracy平台上工作的
程序员 ,
我们不喜欢现有的薪酬方法 。 目前,我们使用PayPal和比特币。 在这两种情况下,交易都非常昂贵。 我们必须支付大笔佣金才能将资金转移到程序员和Zerocracy小额支付中。 对于微任务,我们向程序员支付最高几十美分的微付款。 如您所知,PayPal,比特币在这方面非常昂贵,不适合微交易。 在比特币上,一笔交易的佣金约为50美分,在PayPal上则为30-40美分。 如果整个交易金额为1美元,则非常昂贵。 因此,其经济动机是
做出比原本
便宜很多倍的付款决定,并且非常适合小额支付 ,而不是像比特币那样适合大额支付。
目标最近出现了。 它包括使用加密货币为该项目吸引投资资金的金融工具,
向Zerocracy平台吸引足够的资金 。 我们想使用募集的资金
来增加在平台上工作
的程序员的工资 。 因此,该平台吸引了众多专业开发人员。
现在,不幸的是,该平台上没有这么大的预算来支付给开发人员
每小时100-150美元 。 通过我们的控制模型-微任务处理,微预算-一切都在微观层面,我们在微观层面进行了注重结果的工作。 因此,非常重要的是人们要努力工作并想为结果而努力,而不是像在其他开发模型(包括敏捷)中那样经常花时间在项目中。 为了使模型变得有吸引力,人们需要付出很多。 我们得出了这个结论。 在传统模式中,一个人习惯以每小时15-20美元的价格工作,但是当他们支付8个工作小时的工资时,无论他在这8个小时做什么。 在我们的模型中,他被迫提供8个结果块,以便在8个小时内收到付款。 因此,每小时15美元已经是没有意思的了,因为从天文数字上讲,他们全职工作的8个小时,人们通常有15-20%的时间在工作。 其余时间用于阅读新闻,休息和其他并行支持活动。 在我们的情况下,这些活动没有支付。
我们知道,在我们的模型中,每小时费用应该是传统费用的5-10倍。 我们还没有这样的资金。 我们计划使用Zold加密货币,通过对新型支付手段的兴趣,通过金融加密货币市场吸引投资资本,并利用它们提高开发人员的关税。 这将增强该平台的营销手段,在以后的帮助下,我们将能够吸引有价值的客户。
工作日怎么样
Alexei :您提到过,作为一名工程师,您喜欢解决复杂的问题。 让我们多谈谈您。 您通常每天工作时间如何?罗曼 :我为您提供一些细节。 也许您醒来后马上工作。 我建议不要将工作时间限制在到达办公室的那一刻。埃戈尔 :首先,我没有办公室:我什么都没来。 其次,我不工作。 就是说,
我不认为自己在做什么 ,也不认为自己是上班族。 我喜欢我所做的事情。 我之所以选择它们,是因为我喜欢它们,而不是因为我来到办公室必须要做一些事情来完成一些任务。 我喜欢我的工作。
幸运的是,我有一些项目,可以在其中进行编程或管理这些过程。 因此,我醒来后,打开笔记本电脑,看看我对自己满意的事情以及接下来16个小时想做什么。 我不喝咖啡,我喝茶,所以
先喝茶,然后是笔记本电脑 。
人们经常问我如何安排时间。 我尝试进行整理,但对我来说效果不佳。 我经常放弃,随心所欲。 通常,这是组织时间的最有效方法。 我总是尝试倾听内心的渴望,只做我想做的,而不做我需要的。 通常,我要带我去正确的方向。
阿列克谢 :您关注的事实是您不是办公室工作人员。 您从未在办公室里工作过或者没有时间,但是随后您转而执行任务了吗?埃格 :我有个办公室。 我在办公室工作了多年。 在我看来,这项工作对我个人来说压力很大,令人沮丧。 她使我沮丧的速度比我感觉到办公室的影响要快得多。
我不明白为什么在现代世界需要办公室。
我了解为什么我们需要一些可以喝咖啡并躺在沙发上的地方。 我知道为什么需要水烟和餐厅。 我了解您为什么需要可以花时间的地方。 但是我绝对不明白为什么我们应该成排坐下来,看着显示器,在某个时候去喝咖啡,然后再回来坐在同一地方。 在我看来,这是不合理的。 在许多其他地方,工作更有趣,更舒适:在咖啡馆,家里或自然环境中。 我认为没有理由在这样的办公场所团结人们。 在最近的著作中,我相当多地批评组织通过激励人们在地理上相结合来激励他们工作的想法。 在我看来,这种将人们连接到一个地方并将其指向一个方向,以便他们做一件事并共同实现某件事的概念应该已经成为过去。 现在,对此没有特别的需要,有了高质量的通信方法,好的软件和高质量的管理工具。 我们只是不必再坐在一起工作了。
罗曼 :当我谈论办公室时,我会澄清一下,我的意思是为某人工作。 您是否为某人工作,并且开始为自己做些什么? 在什么时候以及为什么会发生从自雇人士到自雇人士的过渡?埃戈尔 :我为个体经营者工作了一些,但我从未为某人工作。 我一直为自己工作。 问题是,谁付钱给我,我付钱给谁。 它在我生命中的某些时候发生了变化。 一旦由一家公司付款,则由另一家公司付款。 现在我的工作由我的客户支付。 明天我的投资者可以为我的书的读者第二天付钱。
问题“钱从哪里来?” 总是有选择权 。 这个问题总是有不同的答案。 我一直只为自己工作。
我很难想象我会花时间,精力和精力去做一件事情,然后再交给别人。 这对我来说是不可接受的。 这将使我非常沮丧,并且我不会持续很长时间:几天,也许几周,但我会尝试摆脱这种情况。 在办公室里,为别人的项目工作时,做的事情看起来像是为某人工作,我总是为自己工作。 我发现
这项活动对我个人有什么帮助 。 如果我在一个项目中,并且需要在其中安装新的部署系统,他们会为此付费。那么,我一定会制作该系统,以便以后可以在某处进行介绍,然后告诉我,以便从中获得一些开源产品。忍受它,这样我个人就可以为此承担一些责任。 此外,此系统上的所有工作看起来像是我自己的工作。 客户当然也将因此获得一个工作系统。
但是首先,我个人得到了好处 。 所以我总是这样做。
伊利亚 :埃戈尔,请告诉我,如果您没有上班的地方,您仍然可以选择:今天您在咖啡馆里,明天在家中或自然界中。 您有时间表吗?还是刚醒来,想去哪里?Egor :无论您想去哪里,都可以。 我尽量不要为此计划,因为如果您听取自己的欲望和内心的,常常是莫名其妙的动机,那么最终结果会更好。 我不知道,按照计划,也许某人按计划进行会比较方便,但是我尝试听自己内心的声音,说:“我厌倦了家,我们去某个地方。”
我带一台笔记本电脑,然后出去 。 有时,我只是沿着街道走,去我看到的任何咖啡馆,点东西,花了三四个小时,直到笔记本电脑坐下,我开始工作。 然后我很无聊,然后我回到家。
前面的代码
阿列克谢 :您提到了您的最后一本书。 它称为预编码。 来吧,Egor,让我们尝试用一句话简短地阐述一下您的最新著作。埃格 :好问题。 确实,七月初出版了一本书,我写的书比其他所有书都要长;我花了八个月的时间写这本书。 总共开始于1年零8个月前。 我准备了很长时间,然后写了将近8个月的文章,重写了大量内容,更改并抛出了整章。
他付出了很多努力 。 我无法判断发生了什么。 我希望收到反馈,但亚马逊上尚无评论。
有趣的是,
Code Ahead是一本美术书 。 也就是说,它不是用技术语言编写的,有人物和情节,对话,独白,对话。 但是,与此同时,这当然是一种混合类型。 我以前没有看过,但是我选择了这种类型。 在免费的艺术演示中,大量的技术和科学参考资料。 角色之间相互交谈,并且在与他们的陈述,评论和事实进行对话的过程中,页面底部有大量脚注可以确认或驳斥角色所作的陈述。
总共,该书包含三百多种对书籍,文章,科学文章及其他所有内容的引用。 我将艺术体裁和半科学结合在一起。 怎么回事-我不知道。 尝试购买和阅读。 对我来说似乎很有趣。 我读了很多遍,以前的书没有。 我写过以前的书,读过一次,出版过一次。 我读了这个削减十。
罗曼 :要写书,您需要阅读很多书,并朝着这个方向努力。 埃戈尔,您有什么建议读给我们的读者阅读,而不是您写的内容,而是其他人的读物。 首先想到什么?Egor :我的博客中有一篇名为“
我最喜欢的书 ”的文章。 我绝对建议阅读16本书。 这些是我读过不止一次的书。 它们对我来说很有价值,我经常回到他们身边。 另外,我会推荐《 Code Ahead》一书。 这三百个链接中约有百分之十用特殊的星号图标标记。 其他链接只是确认事实或反驳事实。 带有星号的链接是我绝对建议阅读的文献,甚至不止一次。
AppsConf报告
伊利亚 :请告诉我们您报告的主题。 不久您将在AppsConf上发表演讲,您将谈论什么?Egor :我将通过编程及其质量来介绍一下这种情况,并尝试针对这种冲突提供自己的解决方案。 在我看来,冲突在于程序员对管理,技术和组织的标准期望归结为
程序员必须编写无错误代码的事实。 这种期望是非常传统和流行的。 我在实际操作中和在文学上都遇到了他,我可以提供几本书的链接,这些书说一个好的程序员编写的代码中没有错误。 如果我们将此概念作为基础并以此为基础,那么在实践中,我们很快就会发现问题:该怎么做才能使程序员编写没有错误的代码?
如何找到一个好的程序员,如果程序员不好怎么办?有两种解决方案:
- 聘请“优秀程序员”;
- 通过围绕可能存在的错误或错误的观念加强负面印象,来弥补不良影响。
一方面,我们雇用好人,另一方面,吓scar坏人,使他们变好。 我到处都可以找到这种方法。 在报告中,我将尝试提供一种适用于我们公司且适用于我们项目的替代解决方案。
我们对错误有积极的态度 。 我们认为,程序员创建的错误和缺陷是创建软件产品的任何过程的自然组成部分。 错误是必须的,必须是必须的。 , Production, , . , , , — . , - . .
: , , ? , , ?: . , , , . . — , , . , , .
. .
, , , , , , , 100%? , , , . , ,
, . . . , , , , - , , - , , . . , . , , .
: , . , - Production, , - . , ? -, ?: , , .
. , , , , —. . , , , , Code review. , Code review-, contribution , , Production.
: , ?: . . , .
: , ,: : « Big Data ? ?» , , , . , web. , . , . , , , , . Big Data .
: , GitHub, 1700 300 , . . , , ? , - , ?: -, . 2009 GitHub. , , . - , Open Source , , . , , . , , , .
,
, , , . Open Source. ,
. , , . , - , , , 10 . , . , Open Source .
, , Java , , . , , , . - , , — . , , pull request production.
Open Source. pull request. A pull request , , . , Open Source . , . , , . , . , , , , , . . , , . , deployment, . , .
, , : «, ? , ». . — 15% , 85% — . , . , , , , . — .
. , . . , , . . , : « , . , , Open Source, - Open Source».
- . - . Open Source, GitHub Stack Overflow. , , . , , pull request-, , , pull request-. , .
— . — . 10-15 , , . , GitHub.
deployment
: , , . , , - , . , - . ?: . , 25 . . — 70, , , 70 . , . — Zold, Ruby gem, .
deployment, , , . . 70 e-mail, Bitcoin, , . . . , , . , , . , . , , -- , 5-7 . . deployment . - , . , , , .
: , AppsConf , 8-9 . , , .: , . , , . , , . , .
, , .