今年,
AppsConf计划委员会
拥有超酷的移动开发人员。 每个人都有丰富的经验,在领先的公司和初创公司,公司解决方案及其产品中工作-他们知道自己处于潮流中,并且可以分享许多技巧。
我们将在会议上讨论特定的工作问题案例,但现在我们将讨论:工作工具,时间管理,产品开发动机,教育在程序员工作中的作用以及其他有趣的事情。

在第三期《
运行循环》中 ,介绍了用自己的双手制作产品的播客,主持人决定不给任何人打电话。 并告诉自己,因为他们也会做有用的事情。

Roman Busygin是 iOS的Yandex音乐的领先开发商。
| 
Ilya Tsarev Alfa Bank iOS主管。
| 
Alexey Mileev在空中开发Android开发者应用。
|
经验。 公众活动
罗曼 :我要谈的第一件事是关于经验:我们在哪里照明和做什么,而不仅仅是当前职位的那几行。
我从一开始就从事iOS开发。 我记得当平台也称为iPhone SDK时,它是第二个Beta iOS 2.0。 我之所以被这个平台吸引,是因为我使用了将近一年的第一台iPhone,我喜欢在自己的生活中拍摄各种有趣的东西,但是照片仍然保留在设备上,我想与他人共享。 我的第一个项目只是一个客户,他知道如何将这些图片从我的iPhone上传到Internet。 然后它旋转,旋转。 然后我在Yandex工作,在那里他们怀着极大的兴趣接受了这个项目。 在我的记录中记录了Yandex.Maps,Search,Browser,KinoPoisk,smartpass,这是iPad上的应用程序,可让您去电影院Yandex.Afish。
在iOS诞生之初,几乎没有任何信息开发,我真的很想告诉我一些关于自己的事情,并找到那些也在他们身边挖洞的先驱,因为那时还不流行。 慢慢地,我开始组织有关移动开发的Yandex子机器人,这些子机器人逐渐发展成为Yandex Mobile Camp活动的另一种形式,并在Yandex大会议上又发展成为一个独立的移动部分。 公共活动列表可以附加播客。 我第一次成为
潜水艇的客人。 我非常喜欢这种体验,因此决定继续。现在,我与您一起发布Run Loop播客。 这是我的简短故事。
伊利亚(Ilya) :当然,我的经历并不比罗马人的印象深刻。 在iOS开发中,我才刚刚进入,只有5年。 我从iOS 6开始。我对iOS开发的所有了解都来自该机构。 第三年,我俩开始做一个项目。 我喜欢它,并且我认为
编程可能会很有趣 :不仅在这里写一些废话,而且您可以制作应用程序并用手触摸它们,这很酷。 因此,我开始进行iOS开发。 之后,我设法在多家初创公司工作。 有些关闭了几个月,而另一些则住了几年。 一切都差不多。 然后我进入一家大公司。 我在阿尔法银行工作了三年。 在这段时间里,我设法留在Alfa-Bank时是一名普通的产品开发人员,然后是一名领导,目前负责所有iOS开发。
在公众面前,我在会议上讲话总是很有趣-我一直对此感到害怕。 因此,我们决定制作我们的mitaps,它们应该是用更少的人来容纳更多的房间(不是那么吓人),并确切地说明这在Alfa-Bank中是如何发生的。 我们想谈谈我们的经验,并向所有人表明,银行不仅可以是可怕的,庞大的,官僚的组织,而且在创新和技术方面也可以很酷。 因此,进行了一次iOS-mitap Mobile Talks。 这是我第一次参加播客,
AppsConf对此表示感谢。
经验。 编程之路
Alex :我从事Android已有5年了。 其中三年零一个月,我一直在空中开发App。 这一切都始于学校。 我已经开始了解编程是一件有趣的事情。 当您只有一台计算机时,似乎什么都没有,然后您编写了类似的内容,并且出现了一些新内容。 这种编程魔术吸引了。 但是,我开始积极地从事这项业务。 我不知道为什么会这样,但是
我遇到的
第一件事是Perl教程 。 太吓人了。 众所周知,俄罗斯普通和高等教育中体面的部分是备忘单,没有备忘单,无处不在。 在我和我的朋友们通过了物理和数学学院的所有考试之后,我们决定将物理方面的所有知识以及数学的所有分支驱动到某种电子备忘单中,这是很好的。 这就是我们第一个Android应用诞生的方式。 然后我的朋友将其改编为iOS。 公式簿应用程序是一个公式参考,仍然存在于两个商店中:Google Play和AppStore。 当我和同一个朋友从事一家初创公司时,经历了一个黑暗的时期,在此我将不做详细介绍。 关于他,我唯一能说的是他是在Parse的后期托管的,如果您还记得的话,Facebook就有这样的Parse.com。 这是一个社交网络,它提供了许多不同的有趣体验,因为我必须解决很多方面的问题。 当我还是二年级学生时,她成功地屈曲了。 需要钱。 我意识到
编程是一个主题 ,每个人都很感兴趣。 我以为我的父母对教孩子编程感兴趣,所以我提供了辅导:“我会教你如何制作Android应用程序。” 我指望的是孩子们的年龄较小的听众,但最终我还是
在教30至40岁的叔叔 。 这很奇怪,但很有趣。 顺便说一句,在我们学习的这段时间里,有几门课程几乎没有成功地达到了报价,并于6月开始工作。 在我三年级的时候,我在想去哪里练习暑假。 起初,我以为您只需要列出莫斯科顶尖的移动开发工作室的清单,向他们写信我是谁,我就可以得到见习生。 但是,当我将这个事情告诉一个好朋友时,我却将它转播到了App中。 我来到他们那里,做了一个测试任务,经历了实习,实习,从那时起我就一直在那里。
罗曼 :阿列克谢提出了一个有趣的话题,关于编程的道路。 我的经验也是间接的,因为我不是在纯粹的程序员学院学习的。 我几乎总是使用计算机解决一些应用问题。 我的第一台计算机是游戏机,在那里我学会了重新排列窗户。 我可能仍然记得如何完成此操作,即使我闭着眼睛也可以做到。 正是由于编程的帮助,我才回到学校。 我看到了什么漂亮的图纸,图形都可以编程。 他们吸引了我太多,我决定报名参加课程。 是帕斯卡(Pascal),非常令人兴奋。 Ilya,您是以程序员的身份学习还是在一边?
伊利亚(Ilya) :我从学校了解到,似乎我喜欢计算机科学和数学,尝试所有这一切将很有趣。 因此,我去了应用数学与程序设计学院莫斯科航空学院学习。 前两门课程我真的很后悔我的选择,因为这里面有些锡:大量的分析,大量的C语言开发,我们在其中写了一些奇怪的东西,如后缀树,各种令人毛骨悚然的算法。 我不喜欢它,我不明白为什么这样做是必要的。 然后我尝试了iOS开发,然后意识到我绝对喜欢编程。
现在,我当然知道了为什么需要所有这些算法 。 这是一个非常酷的基础,现在对我有帮助。 但是后来我认为这完全没用。
阿列克谢 :关于可怕的数学。 最后,我还在高等经济学院完成了应用数学。 印象是完全一样的:糟糕的数学四年。 唯一的区别是,在过去的两年中,她并不那么糟糕,因为我并不经常出现在大学里。 这很有帮助。 这样的建议是如何处理数学。
罗马 :生活骇客真是太好了。 亲爱的同学,请不要听,这是一个坏建议。
程序员教育
伊利亚 :你们有没有文凭的人吗? 我的团队中没有文凭的人,我们有几位Android开发人员,他们也什么都没做,而且他们的代码很酷。
阿列克谢 :我们有很多人还在读书。 应用程序在空中有这样的招聘政策。 我们总是邀请很多学生参加暑期实习。 他们完成一些任务。 那些做得最酷的人会收到礼物和要约来实习。 现在,大多数人都是从这种做法和实习中招募的。 直到最近,大多数人还是来自高等经济学院,但不是来自应用数学,而是来自软件工程。
罗曼 :我从没注意过。 这个问题使我感到困惑。 但是,如果我的记忆为我服务,那么会有很多文凭的人。 我们总是看结果。 最有可能接受高等教育。
关于产品开发
伊利亚 :让我们谈谈我们正在做的事情-关于产品开发。 Lesha,您认为在产品开发中什么重要?
阿列克谢 :非常有趣的一个问题,我什至会说一个困难的问题。 最重要的事情就是不要忘记,最终您正在做的事情(我正在特别谈论移动开发)将在小屏幕上绘制,并且有生命的人将与之互动。 这就是您要做的。 在追求时尚的技术解决方案时,对于灵活的体系结构,我们必须记住,实际上
用户并不在乎您内部的内容-主要是它可以正常工作 ,最好是快速且没有错误。 更加注意给您用户感觉的反馈。
伊利亚 :是的,我同意你的
观点 。 这主要是一个客户端应用程序。 但是您说自己可以听到这样的声音:“锤击建筑,到底有什么不同并不重要。” 实际上,这并非完全正确。 如果我们在开始阶段不做任何事情,它将在稍后返回给我们。 都一样,您需要考虑一下。
罗曼 :我在这里补充。 在您的团队庞大且产品不断发展的时刻,架构变得很重要。 我认为,当项目不是很大时,它会妨碍您的工作,因为您需要处理大量文件。
在一个规模不大的团队中,架构更容易造成干扰 。 我说的一个小团队是三个人,最多四个人。 如果更多,并且在不同的城市,那么那里就已经需要流程和规则,您不仅要达成协议,还要将它们正式写在纸上。 回到产品开发,我一直对自己喜欢使用的那些产品和应用感兴趣。
主要标准是每天使用所做的事情的乐趣。 您不仅可以关闭任务,而且还是自己应用程序的活跃用户。
伊利亚 :是的,当您使用它并真正享受您在工作中所做的事情时,这可能是最酷的事情。 我相信最有用的应用程序是使我们节省时间的应用程序。
这就是我去银行工作的原因之一。 金钱占据了我们生活的很大一部分。 我们让它们投入工作,我们将它们花费在任何地方,如果我能节省与他们一起工作所花费的时间和时间,我认为这很酷。
罗马 :有趣。 我只想走开,问Lesha一个问题。 由于某种原因,我认为“空中应用”是一个应用程序。 你有几个吗?
应用在空中
Alexei :实际上,这是Android和iOS上的一个应用程序。 如果绝对简单,那么App in the Air就是一个航班跟踪器-旅行者的助手。 我们的目标受众是经常飞行的人。 我们尽一切努力为Ilya所谈论的人们减轻他们的生活-节省他们的时间。 还有一个副产品,这是与见面的人一起在空中播放的App的小型副本。 也就是说,如果您遇到飞机上的亲戚,则可以将应用程序与截短的功能一起使用。 但这不是主要分支,而是一个实验。
罗曼 :令我惊讶的是,您说您不断邀请人们进行实习。 我感觉到您拥有一支强大的团队,并且你们都在做某事,但是App in the Air是一个小型应用程序。 这是真的吗?
阿列克谢 :是的。 直到最近,甚至不到一年之前,我们也只有10个人:平台,后端,分析和支持。 目前,主聊天室中有25个人。 这是由于以下事实:首先,一些地方(例如支持)正在扩大,并且出现了人们也需要的一些其他指示。
罗曼 :您邀请的所有这些实习生都去发展或平均分布在公司的各个领域?
阿列克谢:大约均匀。 怎么样了 有学生需要练习。 我们告诉他们:“看,您可以做到这一点。” 现实世界中有很多不同的任务。 它不是发明的,但是如果做得好,我们可以参与构建和使用。 他们选择最喜欢的东西:一些Android,一些iOS,一些后端,一些Web。 数据科学和机器学习中的许多任务。 即使有很多学生来,也并不是所有人都剩下了,但仍有一部分人留在了我们公司并成为了我们的员工。
工作日
罗曼 :听某人如何建立一个典型的工作日很有趣。 伊利亚,你最近怎么样?
伊利亚 :我的故事不是很典型,因为现在我更是一名经理而不是开发商。 因此,典型的工作日包括几次会议,几次平行会议,几次紧急会议以及许多其他亟待解决的情况。 有一个问题,您需要及时,但是不需要某些事情。
需要优先考虑 。 这可能是我工作中最困难的事情,因为您需要了解5分钟后应该做的事情,建议您事先了解一下。
Roman :当我领导Yandex.Browser开发团队时,很难在同一天举行几次会议。
即使一天开会两个小时,我仍然感到自己像柠檬一样被挤压。 您如何处理这样的信息流?
伊利亚 :我想我已经习惯了。
我平常的一天至少要开会四次 。 当我知道自己需要做一些技术任务或项目上的某些事情时,我会在日历上预定一段时间。 我有时仍然试图走私某个地方。 因此,我在日历上计划事情。 我总是有一周的计划,我绝对必须这样做。
顺便提一下,一个很酷的技巧:在一个任务跟踪器中记录所有事务。
例如,我所有的工作和非工作事务(我仍在同时进行家庭装修)都在同一个Task Tracker中。 这是我每天要投入工作并做的所有清单。 它有助于解决问题。 例如,两次会议之间有一个半小时的时间,看来您没有时间转移任何东西并解决任何重要问题,但是您可以执行一些晚上不需要回家的任务。
罗曼 :事实证明,您既有工作任务,又有个人住所,放在一个地方。
伊利亚 :是的。 我为此使用Wunderlist。 如果我们谈论工作任务,那么仍然有一个日历和一个小吉拉。 例如,对于AppsConf,我们使用Trello。 但是对我个人而言,Trello表现不佳。 对于我的东西,我使用Wunderlist。
Alexei :Ilya,您说您有自己的Wunderlist,其中有所有任务。 您如何将其与工作中使用的同步? 同步是手动进行的还是为此配置的?
伊利亚 :是的,请手动。 我通常会困惑不解。 我花了很多时间。 因此,到目前为止,此选项适合我。 但是似乎有些现成的东西可以拧紧并做所有事情。 但是直到痛苦为止,我还没有解决。
罗曼 :除了工作以外,还有其他适合的工作吗? 例如,爱好。 你早上做什么,晚上什么?
伊利亚 :当然,主要的爱好是修理,如果没有修理,怎么可能。 有许多其他活动与之相关:录制播客,我们现在正在做的事情或准备AppsConf。 还有足够的时间来处理任何事情。 有时我晚上会设法散步,但这是最大的次数。
Alexei :罗马,您从事iOS开发多年了。 当然,您已经开发了一些经过时间验证的铁制方法,可以自己使用。 您如何建立工作日?
罗曼 :我的工作会议相对来说比较平静。 每天都有一个站起来,我们由分散的团队进行同步。 莫斯科有几个人,其中大多数人在新西伯利亚。 像往常一样,每个人都站着,所以我们站着。 在从事开发的所有时间里,我都有两种操作模式。
- 流动模式 ,当我了解需要做什么时,思想就如河流般流动。 我不会束缚自己,也不会停下来。 我最多可以坐两个小时并编写代码。
- 用于不确定性较高的任务的模式,这样我就可以清楚地了解我在此不确定性任务中是否有所进步。 这是Pomodoro 技术 ,需要25分钟的计时器。 在接下来的25分钟开始之前,我设定了一个微型目标-最后,我确定自己是否已达到目标。 如果我没有实现连续三个西红柿的目标-这是一个思考的机会:要么休息一下,要么高估对方的解决方案。
它对我有很大帮助。 另一个超级有用的功能是关闭所有即时通讯程序并设置每小时一次的邮件自动更新,甚至更好,只需用自己的双手启动邮件客户端并检查这段时间内受到的攻击。
伊利亚 :在这里,我完全同意你的看法。 我决定进行实验,并在手机上打开了请勿打扰模式。 我唯一剩下的就是所有来电。 在这种模式下,我已经生活了第三周。 该死,它变得多么平静。 现在,我根本不担心任何振动,因为它们根本不存在。
罗曼 :我在iPhone和Apple Watch上住了很长时间。 Telegram, , .
: Android. Twitter, Instagram, Telegram . . .
: . . , . , . , - , .
: , , , .
: . , , - , , . : , , . Pomodoro , : , . . - , , . , , , 10-15 . . , , . , - . , , .
. , , - . , -. , , , , - , . , - . , , : «, ». , . . , , - .
, , , Excel, , : , , - . - , , , 1, 2, 3. 30-40 . . , -, . . : , , . , . , - : , , , , , . , : «, , — . , 3-4 ». - , . , , . , .
: , , , . , . , ? , , - .
: , , - , , , , . - , . , , , . , , , , . - . .
: , .
, , , .
- , . , , . . , - , .
: — , ? . ,
X , .
X . . , , ( , ), 2-3 , , « ». . . , , , . .
X .
, . .
: , ? , - IDE, Xode. Xode, ?
: Android Xode. , .
Android : Android Studio, IntelliJ IDEA. Android Studio, MacOS.
: Git ?
: , , Git UI. , alias. — , . ,
GitUp . Mac. , . , . , . , , , . .
: , , , rebase . UI , , - commit messages.
GitUp — .
: , . , . Xcode,
SourceTree . : «, , ». ,
Fork . . , , . , , .
: .
Dash Mac. Windows, Linux, . Mac . , . Dash :
- , . , , Android , , .
- snippets. , alias. Dash, alias, Tab «paste» . , . IDE, , Xcode, Android Studio.
: , Dash — . , . , , ?
: Xcode. , . IntelliJ IDEA. Swift , Objective-C. AppCode . : , . JetBrains . , , Xcode, AppXode - Swift, , Objective-C, . Xcode, .
: : Vim Emacs?
: Vim.
: Emacs. Vim, Emacs.
: , .
: , Vim Xcode ?
: , .
: , - , Vim Pet Project Python. IntelliJ Xcode Vim, . , , . - — , .
: - . , Starcraft. , , .
, , ,
. , , - , , . , MacOS , . , . SourceTree, Fork. ? ? .
: , . , , Lotus Notes. , . , , .
Mind Map,
MindNode . . - , .
: Xcode Fork . , , Keynote, , . Keynote .
: ? ?
:
MindNode . mind map , , . , - , : , - . mind map, , . .
: Dash ,
Snitch . MacOS. , , Firewall, , , , , , . , , . , . - , , , . , Adobe, .
MicroSnitch — . , , . , , , , . , , Android Emulator . , , OK Google, OK Google, , . , , , .
: , . 4 .
当我现在书写或画画时,我的思维过程最有效。
阿列克谢 :听着,但是在这件事上,您并没有观察到规模上的这种影响,如果您从笔记本电脑或仅从A4纸切换到白板或活动挂图,那么效果会更好,它正试图在所有这些方面引起嗡嗡声?
罗曼 :是的。 我什至想到要像在办公室一样在墙上在家中制作一块大木板。 是的,确实有这种效果,直觉思考甚至令人愉悦。
阿列克谢 :听说,您可以用一些特殊的涂料覆盖墙壁,将墙壁变成木板,也就是说,您可以在墙壁上写字和擦除。 伊利亚(Ilya)从事修理,告诉我在哪里可以得到这样的油漆?
伊利亚 :是的,我们在办公室里有这个-很容易做到。
罗马 :时间流逝,我提议总结一下,也要感谢我的对话者和您的收听或阅读。
最后,请参见Alexei Mileev
邀请参加
AppsConf 。 我们仍在研究程序的完整版本,但报告已被接受: