与 Ariya Hidayat 的程序员访谈






4.97/5 (9投票s)
欢迎来到我们持续进行的Code Project访谈系列,在这个系列中,我们采访开发者,了解他们的背景、项目、兴趣和不喜欢的。在本期中,我们采访了Ariya Hidayat,一位开发者、科技博主和“软件挑衅者”。
欢迎来到我们持续进行的Code Project访谈系列,在这个系列中,我们采访开发者,了解他们的背景、项目、兴趣和不喜欢的。在本期中,我们采访了开发者、科技博主和“软件挑衅者”Ariya Hidayat。
你是谁?
我叫Ariya Hidayat。我住在加州山景城。这里是硅谷的心脏地带——许多著名的科技公司就在附近,尤其是Mozilla、LinkedIn、Quora,当然还有Google。
目前我正在为Sencha工作,这是一家专注于Web框架和工具的公司。我最近的职责是构建混合Web运行时,以便我们的工具(用HTML、JavaScript、CSS编写)可以作为桌面应用程序运行并享受本地桌面集成。
如今,我喜欢称自己为“软件挑衅者”。其余的就留给您的想象力了 :)
您做什么?
除了我的日常工作,我业余时间也经常玩弄Web技术。很长一段时间以来,我主要从事C和C++,尤其是在我参与KDE、Qt和WebKit的时候。
几年前,我决定要了解前端Web开发。我很快意识到这个领域仍处于起步阶段,需要大量的工具和其他方面的改进。
我一直在努力推动的是将精湛技艺应用于Web开发。这就是我创立(并仍在维护)PhantomJS项目的原因,它是用于Web页面自动化的无头WebKit。它补充了成熟的TDD方法。在开发工作流中将PhantomJS作为第一道防线已被证明非常有效。PhantomJS被许多知名的Web相关项目使用,从Bootstrap到YUI3,并且下载量已超过50万次。通过与Travis CI集成,PhantomJS每月运行数千次(各种项目的)测试。
最近,我还鼓励开发各种JavaScript工具,从代码覆盖率到复杂度分析,这主要基于我在Esprima上的工作。JavaScript的语言工具现状远非完美,我们需要解决这个问题。
我在博客上有关于我工作过的其他项目的摘要。
您的开发环境是什么?
我没有特定的开发设置。目前我经常在MacBook Air和Chromebook Pixel之间切换。当我进行本地C/C++开发时,我经常依赖主流IDE,如Visual Studio和Xcode。另一方面,Vim是我系统中必不可少的工具,非常适合快速编辑甚至严肃的文本处理。
您对哪些新工具、语言或框架感兴趣?
我最喜欢的新玩具是Scala。我也希望有一天能有机会玩玩JRuby,特别是学习它获得惊人性能的技巧。
您最讨厌的编码习惯是什么?
“布尔陷阱”(虽然我不是这个词的发明者)。搜索这个词会引导你到我写的一篇关于这个主题的博文。我利用一切机会解释这个陷阱,并确保人们不会掉进去。我最大的骄傲时刻是当John Carmack发推文提及它时。 :)
您是如何开始编程的?
讽刺的是,我最初更偏向硬件。上小学时,我喜欢像达林顿对和德摩根定律这样的东西。最终,随着我逐渐从休闲数字微电子学转向微控制器,需要某种形式的编程,那时我决定自学几种语言,从BASIC、Turbo Pascal,还有一些奇怪的语言,如Fortran(没用多少,但很有价值)。
直到高中快毕业时我才真正拥有电脑(事后看来,这是个明智的决定——如果我在学校上花的时间少了,我的成绩会很糟糕)。我拥有的第一台机器是一台简陋的无品牌PC/AT克隆机。家里的电力安装太差了,以至于为了避免跳闸,我每次想启动我的机器时都需要关掉我们的(黑白)电视!
我不记得我的第一个真正的编程语言。我只记得我一直在BASIC(足够简单的原型)、Turbo Pascal(模块化且编译速度快)和Turbo C/C++(低级硬件交互)之间切换。BASIC给我留下了很好的印象。我甚至在一个无聊的暑假里完成了一个简单的BASIC解释器。阅读龙书很有启发,主要是因为我学习的是物理和工程,而不是计算机科学。
开发者社区是如何影响您的编码的?
我在各种典型的程序员“社交渠道”上都很活跃:GitHub、Twitter和Google+。然而,我现在没有时间再活跃于IRC了。
FOSS(自由和开源软件)社区在我早期进入软件行业方面发挥了重要作用。通过向他人学习来提升技能真是太棒了。我最喜欢的是分享的热情。这是协作力量的证明。
顺便说一句,有些社区充斥着无谓的争论和被动攻击。虽然工程师以社交技巧不佳而闻名(毕竟,我们主要与机器打交道!),但在某些情况下,缺乏外交手腕会让你抓狂。幸运的是,如果你巧妙地处理,你可以利用这些时刻来塑造你的性格。几年后,人们会忘记你们讨论过的细枝末节的技术问题。然而,他们仍然会记得那些互动是如何进行的。
您会对一个新兴的程序员提供什么建议?
我最近写了一篇关于这个的博文,影响力因子。简而言之:不要总是追求个人荣誉。成为一个放大器,对他y人产生影响。