介绍:
Arturs在 2011 年共同创立 Jenots.com,从事游戏开发和游戏设计的工作。 他在 2013 年加入了 Gideros,一个开源跨平台的游戏引擎。他写了一本关于手机游戏开发的书《使用 Gideros 引擎开发手机游戏》。
Arturs 在 2014 年加入了 Countly,一个实时和开源的移动数据分析方案。他参与许多功能开发如插件系统、转介归属和崩溃分析。他继续在开发有趣的小游戏,在博客(http://waterbreadinternet.com)分享。
一位开发者的诞生
问题 1:感谢您从忙碌的工作中抽出宝贵的时间分享您的想法。为了让我们的观众更好地了解您,我们从头聊起。您可以分享一下开始编程的起点和原因吗?
答:我是无意间成为程序员的。我在2013年毕业于拉脱维亚大学计算机科学与信息系统设计专业,并获得了硕士学位。我喜欢计算机相关的一切。第一年,我尝试了各种事情,比如联网、系统管理、还有编程/开发。我选修的大多是知识面比较广的课程,因为那时我不知道自己到底想做什么。直到学习了 Web 开发课程之后,我做了一些东西,然后发布到互联网上,让大家都能看得到,这种能力震撼了我。也就是从那时起,我决定要成为一名程序员,把 Web 开发作为我的主要课程(除了 Web 开发之外,我还学过 C++、Java和.Net,但都没有像前端和后端开发这样热衷)。
问题 2:回想起最初的那几年,您掌握的哪些技能一直沿用到了今天?
答:因为我不知道自己想做什么,便学了各个领域中的课程,而我认为最重要的技能是,快速学习和了解新信息,通过浏览去了解,先掌握少量信息,然后不断增加信息量,最后理解透彻,而不是试图一次了解所有信息。
在编程方面,我尝试了许多语言和环境,我认为最重要的是学习 Basic、编程体系结构、不同类型的语言,以及这些语言的差异。然后,你基本上就能以任何语言进行编程,因为当你了解了所有范式之后,需要更改的就只有语法(syntax)了[不管怎样,适当的Integrated Development Environment (IDE) 会对你有所帮助]
问题 3:你那时接受什么样的建议继续使您产生了共鸣?
答:我从教授那里获得了最重要的一个建议:那就是学习不是为了取得好成绩,而是为了自己,为自己积累经验。我并不害怕学习非常复杂的课程,虽然我当时没有取得好成绩。我也曾成绩不佳,甚至挂科,但通过这些课程我开阔了视野,了解许多方面的知识,并且获得了很好的体验(就像机器人课程,我在这门课程获取最好的体验之一)。
培养专业技能
问题 4:技术飞速发展,您是否可以分享一下您是如何保持您的相关技能?请您分享您在 Github 或其他社区中密切关注的三个开发者或网页。
答:不是简单地关注,实际上我会和搭档主持每月的播客(podcasts),关于 Javascript (jsclasses.org) 和 PHP (phpclasses.org) 的新闻,并对库/框架进行讲解。我想了解感兴趣的技术的新闻,发布个人 Twitter 简讯。我的主要信息源是:
问题 5:您如何看待技术,特别是移动技术在未来五年的发展?作为程序员,您要如何培养自己的技能来适应这些变化?
答:我认为移动开发目前过于分散。不仅在同一平台上过于分散,就像 Android,基本上在所有平台上都很分散。你需要 iOS 和 Android 应用程序(就像 Windows Phone)的不同代码库。我认为这将是未来五年要解决的首要问题。对我而言,作为 Gideros 这款跨平台游戏开发工具的一名维护者,我会经常尝试了解不同平台的风格,并且在相同的 API 下使用通用接口进行匹配测试。 老实说,即使它们与众不同,但还是会有很多通用的方法。就像应用内购买、推送通知,甚至 UI 小工具,它们看起来大相径庭,但API是相似的,虽然有一些限制,但相似选项在一个界面下也是相匹配的。
问题 6:我注意到,您之前为初创企业工作,并积极参与开源社区。您从这些经验中获得了什么?
答:我在职业生涯为当地的一家小公司担任 Web 开发者。我做了很多小型库自己使用,同时也发布到互联网上方便他人。当然,我得到了很多回应,包括评论等等,最主要的是得到了更多机会。
发布小型 Javascript 库,让我获得了一份额外工作,那就是为 JS Magazine 编写 JavaScript 文章。
我分享了为 Gideros 引擎创建的组件,坦率的说,这给我带来了更多的机会,比如写一本书介绍 Gideros。
甚至现在的雇主 Countly 也是如此,它是一家开源分析公司,面试时,我告诉面试官我没有 NodeJS 方面的经验,也没有尝试过 MongoDB,但他们说:“我们不在乎”,因为他们看到过我发表和公开源码的作品。他们认为是社区那些评论和赞美帮了我,所有的反馈比一份简历更珍贵。他们是否满意自己的选择?我不知道,你能试问问吧。但有一点,我努力工作,我喜欢现在所做的一切。基本上,这就是从贡献开源项目得到的回报。获得了认可、声誉以及向你敞开的众多机会。
立足当地,与全球接轨
问题 7:你认为中国程序者的优势和劣势都是什么?
答:开发 Gideros 引擎期间我曾与中国的开发者一起工作。有很多独立开发者会通过插件系统添加自己所需的本地功能,如特定的广告框架等。我与他们密切合作,帮助他们创建这些 Gideros 插件并融入他们的游戏中。
我喜欢与中国的开发者一起工作,因为他们十分注重细节。欧洲的开发者会很散漫,特别是在时间上,一定要在截止日期前才完工。而中国的开发者会遵循每一个步骤,确保不会落下任意一项工作。就应该是这样,哪怕占用了更多的时间。
我认为中国开发者的一个很大的弱点就是局限在特定知识领域内,只在自己的小圈子里工作,而不是尝试学习其他技术。
问题 8:欧洲开发者在哪些领域可以与中国同行合作?
答:最强的是责任感,特别是西欧的开发者。你只要知道安排他们工作就好了。
欧洲和中国的开发者在团队中可以相互协助,找到一个折中的方法来解决这个问题。
问题 9:在您看来,如何在五年内实现之前提到的领域合作?
答:全球沟通交流如此方便,一切皆有可能。我们应该分享关于开发方法和职业道德的经验。由于我自己主要是远程办公,我敢肯定,将不同的开发者组织到同一个在线团队中,一起致力于同一个项目已经在开源社区实现。这样,我们便可以找到自己合适的方式去合作、互相学习,从而提高自身实力,弥补并消除自己的不足之处。
结束陈词:
我要说明,这些采访问题是互动性质。作为开发者,我们应该常反思自己的专业发展方向。如果你不介意的话,请将你的答复发送电子邮件至jx@count.ly,我们 Countly 团队很想听听你的故事。这些内容将保持隐私和机密。
你可以将我们的问题稍作调整,并给出您的回答:问题 6:将 Arturs 的经验替换为您自己的经验。问题 7:将“中国开发者”替换为“欧洲开发者”。问题 8:回答中国开发者在哪些领域可以与欧洲同行合作。