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

与 Alex Tatiyants 的程序员访谈

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.82/5 (18投票s)

2012年2月15日

CPOL

6分钟阅读

viewsIcon

29551

欢迎来到我们的Code Project系列访谈,在这些访谈中,我们与开发者们交流他们的背景、项目、兴趣以及他们不喜欢的事物。本期,我们采访了Alex Tatiyants,JS.js的骄傲创造者,MoreSQL运动的发起人,以及Guilt Driven Development的发明者。

欢迎来到我们的Code Project系列访谈,在这些访谈中,我们与开发者们交流他们的背景、项目、兴趣以及他们不喜欢的事物。本期,我们采访了Alex Tatiyants,JS.js的骄傲创造者,MoreSQL运动的发起人,以及Guilt Driven Development的发明者。

你是谁?

我叫Alex Tatiyants,和我的妻子及女儿住在美国加州格伦代尔

我在Zynx Health工作,这是一家专注于临床决策支持的优秀公司。我目前的头衔是“技术总监”,但我真正的工作是让软件工程师快乐。优秀的工程师是稀缺品种,我很荣幸能与软件开发界的海豹突击队六队(如果海豹突击队六队喜欢吃咸味零食和软饮料的话)相提并论。

虽然我现在空闲时间不多,但我喜欢阅读、绘画、创作音乐、玩弄新技术、在海边散步,以及写博客。其中,我花费最多时间在写博客上,我最喜欢的话题是技术幽默。我还是一个革命性的JavaScript库JS.js的骄傲创造者,MoreSQL运动的创始人,以及Guilt Driven Development的发明者。

您做什么?

到目前为止,我的职业生涯很幸运,因为我曾有机会在一些非常不同的系统上工作:大规模后端处理、EAI、企业数据管理和数据仓库、桌面和Web应用程序等。在Zynx,我们的主要产品是一个名为AuthorSpace的基于Web的内容管理系统。除其他功能外,它还有一个相当复杂的编辑环境,该环境是基于原生浏览器技术构建的。毋庸置疑,我过去几年的主要关注点是Web应用程序技术和模式:JavaScript,RESTMVC等。

您的开发环境是什么?

我们的技术栈包括Ext JSASP.NET MVC 3Fluent NHibernateSQL Server。我们使用GitHub Enterprise(私有托管)作为我们的源代码仓库,Jenkins负责我们的持续集成。我们的主要IDE是Visual Studio 2010Resharper,尽管我们在办公室还有一些IntelliJEclipse的安装。

我们进行大量的自动化测试,所以我们的环境中有一整套测试框架。我们的单元测试和集成测试使用MSTest(针对C#)和Jasmine(针对JavaScript),而我们的功能测试则用Twist(来自ThoughtWorks Studios的测试管理系统)和Sahi编写。

就硬件而言,我的工作电脑是一台Windows 7系统,配备四核Core i7 CPU,8GB内存,以及一个SSD驱动器,而我的家用电脑是一台升级过的Mac Mini。两者都有双23英寸宽屏显示器,这很棒。

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

在新兴趋势方面,我开始觉得全JavaScript栈可能会成为许多人的未来。一个好的前端库(Ext JS,PrototypeBackboneKnockout等)+Node.js+MongoDB的组合可以非常优雅地解决许多棘手的问题。事实上,我想创造一个符合新流行语的术语来描述这个新栈:JS Climist(JavaScript Client/Middle Tier/Store)。是不是很吸引人?

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

就编码上的令人讨厌之处而言,它是注释掉的代码和TODOs之间的平局,因为我非常讨厌杂乱(任何人看到我的桌子都会证明这一点)。此外,TODOs确实让我很烦恼,因为有时很难分辨它们是否已经被处理过了。

至于喜欢的命名约定,我个人坚定推崇Bob Martin的《Clean Code》这本书。他编写清晰、易于理解的代码的整个方法一直很吸引我。

您是如何开始编程的?

我的第一台电脑是Tandy。它没有硬盘,所以你必须从软盘启动所有东西。我记得我为它写了第一个程序,是一个简单的Snake风格游戏,用QBASIC写的。那是一次非常赋权人心的经历,因为突然间我能让电脑做事情了。它也给了我巨大的成就感,因为我真正地从无到有地创造了东西。

我的第一份付费编程工作是为医学研究人员编写SAS中的临时查询。这是大学期间的工作,在毕业前几个月,我写了一个Web应用程序(使用经典的ASP),它为底层的SAS环境提供了一个简单的接口。该应用程序受到了最终用户(因为他们能非常快速地获得他们需要的数据)和我的老板(因为它基本上消除了我职位的需求)的好评。

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

我对开源运动对我们行业的影响印象深刻。我喜欢一个(或少数几个)人带着一个解决实际问题的绝妙想法,就能吸引社区的强大支持,并迅速带来重大突破:jQueryCoffeeScript,Node.js,Rails,MongoDB,Sinatra,Backbone,以及许多其他。

我也对如今信息的丰富程度以及我们领域的快速变化感到惊讶。因此,我花了很多时间跟进技术。我定期阅读Code Project(当然)、Hacker News、Slashdot和DZone。我关注像Kent BeckUncle Bob MartinMartin FowlerAyende RahienJimmy BogardMiguel De IcazaJeff AtwoodScott HanselmanDevOps Borat这样的前瞻性技术人员。

最后,我非常努力地每个月阅读一本技术书籍,以便对一个有趣的主题有更深入的理解(我目前正在阅读《Functional Programming for Java Developers》)。顺便说一句,在技术书籍方面,Safari Books Online一直是一个很好的资源,尤其是现在他们有一个还算不错的iPad应用程序。

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

在我的职位上,我做了很多招聘工作,并且几乎能与各个级别的开发者交流,从实习生到高级架构师。

过了一段时间,我开始注意到那些让开发者出色的特定特质。有些是一系列的能力:抽象思维能力、简化复杂问题空间的能力、注重细节等。

然而,拥有正确的态度同样重要。 S不可避免地,真正伟大的开发者对软件充满热情,他们倾向于投入大量精力来提升自己的技能。

因此,假设一个人具备成为伟大开发者的先决能力,我的建议是专注于发展你的技能。其中一部分是学习和尝试新技术。无论是自学还是从事其他项目,如今新兴的开发者都有许多可用的选择。毕竟,为开源项目做贡献从来没有比现在更容易,而(使用你能想到的大部分技术)搭建一个新网站也从来没有比现在更便宜。

技能培养的另一部分是实践良好的开发习惯,无论是TDD、自动化测试、CI,还是仅仅编写清晰的面向对象代码。如果你足够幸运,你会进入一个信奉优秀工程并期望每个人都如此的地方。但即使你没有,也有其他学习途径。加入用户组,寻找导师,在自己的项目中使用它们。

© . All rights reserved.