
嗨,哈勃!
还记得
史蒂夫·乔布斯和丹尼斯·里奇的
故事吗? 我们无意重新引发辩论或使这个话题道德化,让我们面对现实:成千上万名杰出的技术人员生活在阴影中,而自己的故事则藏在满是灰尘的橱柜中。
我们,哈勃(Habr)编辑团队,热衷于解决这一不公正现象。 从现在开始,我们将定期采访那些在媒体和社交网络中低调的人。 因此,如果您有任何关于自己的信息,请做好准备。
为了让您大致了解情况,我们将带您前进。 单击下面查看我们将问每位客人的10个一般性问题。 对于我们的飞行员节目,第一个回答问题的客人是fillpackart。 (本月,我与他进行了几次相当不错的面试,请参阅文章一,二,三)。 请阅读它们,如果您决定以类似的方式讲自己的故事,请给我或我的消息打个招呼。

Filipp Ranzhin,来自俄罗斯小城市伊凡诺沃的一名工程师的儿子。 他16岁那年开始在大学里用C ++编程,后来他学习了.NET。 他目前在一家受人尊敬的外国公司担任高级软件开发工程师的职位。 除了常用的编程语言外,他还精通F#和OCaml。
1.告诉我您部署的一项功能,它会让您感到非常自豪。
-我还没有做出让我感到骄傲的事情。 在我的一生中,我一直在处理非常琐碎的问题。 因此,我为自己的能力而不是自己的成就感到自豪。
我想如果我设计了一个智能AI系统,我会感到很自豪。
2.现在告诉我你最糟糕的事。
-我花了整整一天的时间尝试使OCaml在Windows上运行(伙计们,不要尝试重复此操作)。 这不是与工作相关的活动,因此第二天早上我不得不在会议上提出一些借口。 就在那时,我看到了一个错误分配,我什至没有花时间去研究。 我想,“给我任何错误,我将在两天内修复它!” 我在会议上撒谎说我一直在研究该错误,希望在两天内发布PR。
但是事实证明,我不得不花三个月的时间来修复它。
该错误与两个大型系统之间的互操作性有关。 它可以被一致地复制。 在过去的三个月中,我不断提出各种建议并进行检查,一次又一次失败,以至于我放弃在Skyrim建造房屋。 那是我一生中最糟糕的三个月。
最后,我将其关闭为“禁止复制”。 我来到老板那里,我说:“我是个没用的白痴,所以我想辞职以减轻你的负担。” 但是她却给了我一大笔薪水。
3.描述您的工作场所:从办公椅和显示器到首选的开发环境和喜爱的实用程序。
-我使用Windows家族的操作系统,因为我使用.NET堆栈,并且Windows具有更好的UI。 我坐在自己做的桌子旁。 它是如此之大,以至于可以容纳六个编码器。
我的DevBox绝对不错,但是它有一个很大的缺陷-我试图降低成本并购买了AMD CPU。 这是史诗般的失败。 尽管声称它具有高性能,但运行该测试的速度是英特尔类似处理器的五倍(!!!)。
我目前只有一台显示器。 我打算再买两个,看起来像个专业人士。 我最喜欢的IDE是结合了Resharper的Visual Studio 2017。 我最喜欢的文本编辑器是Visual Studio Code,具有成千上万的插件。 下载它们并观看VSCode的演变是我的爱好之一。
就像我喜欢git一样,我会说我更喜欢Visual Studio Team Services,而不是GitHub。
4.您根据什么标准选择工作? 是堆栈,产品,工作环境,金钱吗?
-目前,对我而言,关键因素是薪水和仅能承担我潜力的三分之一。 我认为我已经精疲力尽,不再准备将我的心和灵魂投入到某人的事业中。 即使面临被解雇和失去我习惯的生活方式的威胁,我仍然不会太深入地研究该项目。 我说这是“一个半”孩子的父亲,所以这是一个严重的威胁。 但是我以前所做的每件事的可重复性和缺乏理智现在几乎对身体造成伤害。
有时我认为,以这种方式,我没有道德权利去找工作。 我的辩解是,就系统而言,一个人不能道德或不道德。 公司的抽象性质使我远离可能伤害现实生活的想法,因此我只接受大公司的工作。
同时,我为一个请求请求赚了多少钱(以我的城市的标准衡量)感到尴尬。 好像一个高技能的开发人员的身份使我的生活比一整群人每天辛苦工作八小时来做真正有用的事情要好十倍。
有时我认为,如果我在面试中设法胜过业务代表,那么在某种程度上,我应有的一切。 这使我与现实失去了联系,我开始相信这是应该的方式。
我不知道如何将它们结合在一起,但是我喜欢编码,同时我讨厌作为开发人员工作。 我可以说我只是还没有碰到一个有趣的项目而感到振奋,但我本人并不真正相信它。 这很难忍受。
5.您想在使用的技术和语言方面进行哪些改进?
-这是我要更改的内容:
- Typescript和C#的类型推断和编译时不变性。 这将使我有机会创建一个方法,该方法接收可靠地不可变的东西,这与当前使用的ReadonlyDictionary不同,后者实际上不是只读的(可以将常规字典传递给其构造函数,保留对其的引用,然后轻松进行变异它)。
- 我希望C#开发人员最终不要再向后兼容和愚蠢的using语句了,它们只能在一个文件中工作,并且可以使编程语言现代化。 严重的是,在一种通常的做法是写IDictionnary <IMyStupidType,IMyStupidType2> Foo(Func <IMySupidType,int,bool,string> trueStrangeCallback的语言,不实现类型别名的做法是一个非常奇怪的决定。
- C#中的自动后备字段,Func <T1,T2>上的某种语法糖。
- C#的现成代码合同(例如,在Roslyn中),而不是使IDE陷入困境的外部解决方案。
- 替代F#语言的jsx。 如果你们没人在下周发布它,那么我将不得不参加。
- 我希望社区意识到单元测试是无用的东西,而具有动态类型(不要与弱类型混淆)的语言是该行业历史上最大的失败。
- 为了使处理器体系结构更适合功能方法。
- 为了优化JS / TS中的尾部递归,以便我可以将尾部递归卡在任何地方而不必回头看栈的大小。 它存在于规范中,但是从事v8的开发人员似乎只是忽略语言规范,因为这对于开发运行时代码不重要。
- JS中开箱即用的静态键入选项,不影响打字稿。 与打字稿的创建者不同,我认为它是一种独立的编程语言,具有尖端,强大的多范式设计。
- 为了使WebAssembly之类的东西牢固地植根于前端开发的最佳实践和标准。
- 查看针对GitHub等的显着改进的Web客户端。 理想情况下,我希望能够在浏览器中编辑一个严肃项目的代码。
- 更多兼容性约定。 如果jvm可以解释和整合.NET CIL中的一段代码,那么生活会容易得多。
6.共享工作经验的最佳地点是哪里?是大学,会议,哈伯吗? 除此之外呢?
-我曾经在大学学习,但屡屡被开除。 我参加了会议,并且是Habr的常客。 我认为我没有从这些来源中获得任何真正的智慧。 也许我只是觉得很高兴。
我的诀窍是看书并与其他开发人员成为朋友。 我相信,与精通软件开发的人交谈对我的技能产生了最积极的影响。
7.如果您拥有无限的资源(时间,金钱,设施,人力资源),那么您将从事什么项目?
-创造人类最精确的模拟器(在可能的范围内),以测试社会达到其最幸福状态的途径,将是很棒的。 模仿人们在各种情况下的行为通常会很有趣。
8.您如何度过闲暇时间? 除了工作以外,您还做什么?
-我在树林里散步,沉思,有时会喝啤酒; 我偶尔弹吉他,不时玩电子游戏。 我会说我的爱好是思考和梦想。
我有几个与朋友一起工作的个人项目。 我喜欢有针对性地给他们做被动式的代码审查(例如“您是否愿意提出使用这种考虑周到的解决方案的原因?”),并观察这将如何改变我们的关系。
有时我会像接受采访一样做各种各样的文科工作。 我也经常写书,但是我还没读完。
9.告诉我们您最喜欢的三本书-一本学习书籍,一本非虚构书籍和一本虚构书籍。
学习 -Jeffrey Richter通过C#进行CLR。 它包含了有关.NET运行时的详细知识,这使它成为真正的宝藏。 凡死记硬背地学习本书的人,都将通过任何有关.NET开发人员工作的面试。 我还将重点介绍克里斯·冈崎(Chris Okasaki)的纯功能数据结构。 虽然不是很实用,但由于作者对数据结构的实现使我的脊梁发生了形而上的颤抖,因此本书重新灌输了我对编程的信念。
非小说类 -我不知道Code Complete是否适合该类别,但我喜欢重新阅读。 作者讲述了令人难以置信的明显事物,但是在我从事的每个项目中,似乎没有人能够充分遵循这些原则。
小说 -西奥多·德雷塞(Theodore Dreiser)的美国悲剧。 我永远也不会认为像我这样务实的数字怪物能够同情一个女孩,这个女孩先被男友抛弃,然后被谋杀。 但是我确实很同情,这对我来说意义重大。
10.如果一个AI系统突然在您面前变得有意识,您会对它说些什么?
-我会提供它来设计一个人工智能项目,然后将两者进行比较。 如果新项目证明是卓越的,我会要求它设计一个人工智能项目,依此类推...
如果AI机器人恰巧是熟练的编码器,我将使用它来创建可靠的证明,证明Golang是编程发展的死胡同。 因为我在这个主题上看到了太多的《圣战》,但我没有预算去深入学习Golang来建立可靠的论据。
奖励:问其他开发人员您喜欢的任何事情。
-最让您学习的技术是什么?