65.9K
CodeProject 正在变化。 阅读更多。
Home

与 Ariya Hidayat 的程序员访谈

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.97/5 (9投票s)

2013年6月13日

CPOL

5分钟阅读

viewsIcon

17487

欢迎来到我们持续进行的Code Project访谈系列,在这个系列中,我们采访开发者,了解他们的背景、项目、兴趣和不喜欢的。在本期中,我们采访了Ariya Hidayat,一位开发者、科技博主和“软件挑衅者”。

欢迎来到我们持续进行的Code Project访谈系列,在这个系列中,我们采访开发者,了解他们的背景、项目、兴趣和不喜欢的。在本期中,我们采访了开发者、科技博主和“软件挑衅者”Ariya Hidayat

你是谁?

我叫Ariya Hidayat。我住在加州山景城。这里是硅谷的心脏地带——许多著名的科技公司就在附近,尤其是Mozilla、LinkedIn、Quora,当然还有Google。

目前我正在为Sencha工作,这是一家专注于Web框架和工具的公司。我最近的职责是构建混合Web运行时,以便我们的工具(用HTML、JavaScript、CSS编写)可以作为桌面应用程序运行并享受本地桌面集成。

如今,我喜欢称自己为“软件挑衅者”。其余的就留给您的想象力了 :)

您做什么?

除了我的日常工作,我业余时间也经常玩弄Web技术。很长一段时间以来,我主要从事C和C++,尤其是在我参与KDEQtWebKit的时候。

几年前,我决定要了解前端Web开发。我很快意识到这个领域仍处于起步阶段,需要大量的工具和其他方面的改进。

我一直在努力推动的是将精湛技艺应用于Web开发。这就是我创立(并仍在维护)PhantomJS项目的原因,它是用于Web页面自动化的无头WebKit。它补充了成熟的TDD方法。在开发工作流中将PhantomJS作为第一道防线已被证明非常有效。PhantomJS被许多知名的Web相关项目使用,从BootstrapYUI3,并且下载量已超过50万次。通过与Travis CI集成,PhantomJS每月运行数千次(各种项目的)测试。

最近,我还鼓励开发各种JavaScript工具,从代码覆盖率到复杂度分析,这主要基于我在Esprima上的工作。JavaScript的语言工具现状远非完美,我们需要解决这个问题。

我在博客上有关于我工作过的其他项目的摘要。

您的开发环境是什么?

我没有特定的开发设置。目前我经常在MacBook Air和Chromebook Pixel之间切换。当我进行本地C/C++开发时,我经常依赖主流IDE,如Visual Studio和Xcode。另一方面,Vim是我系统中必不可少的工具,非常适合快速编辑甚至严肃的文本处理。

您对哪些新工具、语言或框架感兴趣?

我最喜欢的新玩具是Scala。我也希望有一天能有机会玩玩JRuby,特别是学习它获得惊人性能的技巧。

您最讨厌的编码习惯是什么?

“布尔陷阱”(虽然我不是这个词的发明者)。搜索这个词会引导你到我写的一篇关于这个主题的博文。我利用一切机会解释这个陷阱,并确保人们不会掉进去。我最大的骄傲时刻是当John Carmack发推文提及它时。 :)

您是如何开始编程的?

讽刺的是,我最初更偏向硬件。上小学时,我喜欢像达林顿对德摩根定律这样的东西。最终,随着我逐渐从休闲数字微电子学转向微控制器,需要某种形式的编程,那时我决定自学几种语言,从BASICTurbo Pascal,还有一些奇怪的语言,如Fortran(没用多少,但很有价值)。

直到高中快毕业时我才真正拥有电脑(事后看来,这是个明智的决定——如果我在学校上花的时间少了,我的成绩会很糟糕)。我拥有的第一台机器是一台简陋的无品牌PC/AT克隆机。家里的电力安装太差了,以至于为了避免跳闸,我每次想启动我的机器时都需要关掉我们的(黑白)电视!

我不记得我的第一个真正的编程语言。我只记得我一直在BASIC(足够简单的原型)、Turbo Pascal(模块化且编译速度快)和Turbo C/C++(低级硬件交互)之间切换。BASIC给我留下了很好的印象。我甚至在一个无聊的暑假里完成了一个简单的BASIC解释器。阅读龙书很有启发,主要是因为我学习的是物理和工程,而不是计算机科学。

开发者社区是如何影响您的编码的?

我在各种典型的程序员“社交渠道”上都很活跃:GitHubTwitterGoogle+。然而,我现在没有时间再活跃于IRC了。

FOSS(自由和开源软件)社区在我早期进入软件行业方面发挥了重要作用。通过向他人学习来提升技能真是太棒了。我最喜欢的是分享的热情。这是协作力量的证明。

顺便说一句,有些社区充斥着无谓的争论和被动攻击。虽然工程师以社交技巧不佳而闻名(毕竟,我们主要与机器打交道!),但在某些情况下,缺乏外交手腕会让你抓狂。幸运的是,如果你巧妙地处理,你可以利用这些时刻来塑造你的性格。几年后,人们会忘记你们讨论过的细枝末节的技术问题。然而,他们仍然会记得那些互动是如何进行的。

您会对一个新兴的程序员提供什么建议?

我最近写了一篇关于这个的博文,影响力因子。简而言之:不要总是追求个人荣誉。成为一个放大器,对他y人产生影响。

© . All rights reserved.