立足中国创新 迎接工业4.0

EMBRACE THE NEW ERA OF INDUSTRY

Qt职业之路--成为一名卓越的Qt开发者

来源: 日期:2024-03-28

本文翻译自:Qt as a Career – Becoming A Stellar Qt Developer


本系列文章中,我们将分享多位Qt从业者的职业发展故事。

今天,我要采访的是Mike Trahearn,他是一名资深软件工程师,也是2022年的Qt Champion,现居住在澳大利亚昆士兰州阳光明媚的黄金海岸。

你好,Mike!跟我们介绍一下你自己和你的工作吧?

你好!我是一名生活在澳大利亚的高级软件工程师。2017年,我从阴冷的英国搬到了这里。

我现在的工作是为一家全球性的民用建筑企业提供HMI机器可视化和校准系统。除了负责项目外,我还专注于Qt研发、架构设计、工作流程设计、品牌/样式制定,以及通过咨询和培训确保我们所有产品和部门基于QML的开发遵循最佳实践和质量保证。这份工作非常适合当时搬到澳大利亚的我,顺利延续了我在全球汽车零部件供应商那里积累的16年汽车HMI安全概念及研发经验。

闲暇之际,我还是个音乐爱好者,擅长演奏键盘乐器,热衷于音乐制作,同时也很享受美味佳肴。

问:最初是什么激励你走上了这条职业道路?

自从上世纪80年代初通过各种家用计算机控制台学习编程以来,屏幕的像素、数据的传递以及它们之间的一切都始终吸引着我。将精妙绝伦的前端和稳如磐石的后端通过中间优雅且可扩展的逻辑结合起来,对我来说是一种极具创造力的满足!

甚至在我了解HMI(人机交互)的意义之前,我便意识到自己需要致力于在这方面提升我的技能,让人们的日常生活更加精彩、充实,且富有互动性和乐趣。

我的职业生涯一直沿着一条明确的轨道发展,幸运的是,有人为我提供了宝贵的建议,并引导我走上了最佳的职业道路。

你在校期间主修哪个领域?这方面的学习是如何帮助你为职场生涯做准备的?

从小时候起,我就对数学、物理和计算机科学表现出了浓厚的兴趣。2001年,我以优异成绩获得了通信工程学士学位,学习了包括数学、电子、编程、IP网络、光电理论、无线电理论、电力及机械控制系统、信息理论,并专攻先进的数字逻辑和RISC处理器管道设计。

在大学期间,我获得一家全球电信公司的赞助,在大学三年级时担任软件工程师,参与各类产品的开发,并与当地社区教育项目合作。毕业后,我正式以嵌入式软件工程师的身份加入了该公司,负责光子密集波分复用数据交换机的工作。

闲暇时,我常常构建一些小项目,以各种编程语言为乐趣,探索各种视觉控制技术和后端数据协议。我的主要兴趣始终是HMI,我一直热衷于学习各种HMI工具和生成器(并拆解它们)。当我发现Qt和QML时,接下来发生的一切就都顺理成章了!

你最初是如何接触到Qt的,结果带来了哪些改变?

许多年前,当Qt和我还都非常年轻的时候,我在许多不同的项目中使用过许多不同的HMI工具。其中大多数在某些方面非常出色,但总是缺少某些功能或工具。在一个项目中,其UI表现令人满意,但却缺少了许多其他部分。另一个开发者向我推荐了当时的Qt(4.7.4版本),我决定自己研究一下Qt。此后我所发现的,对我职业生涯起到了决定性的作用。有了Qt,我迅速构建了原有UI缺失的各个部分,增加了许多额外的功能和工具,并在很短的时间内完成了一个非常成功的项目。

自从我开始用QML和QtQuick HMI构建纯Qt C++项目后,就坚定不移地沿着这条路走下去了。Qt将所需的所有功能完备集成,提供了一个一体化的产品解决方案。

自我接触Qt之后,我便找到了自动化大部分工作的方法,这不仅提高了我的工作效率,也使我得以更好地运用我的创造力。QML与我一拍即合,它的声明式语法不仅适合创建HMI的任务,还与我对代码设计和视觉行为的整体思考方式非常契合。

那是一段非常激动人心的旅程开端。随后,我们轻松地开发出了令人惊艳的应用程序。

你能描述一下你的工作中的一天或一周是怎样的吗?

在日常的一周中,我会设计、实施、测试或修复跨平台项目中的C++/QML代码,支持我负责的UX、中间件和通信协议的开发。我会使用Confluence、JIRA、Bitbucket和Git等常用工具,进行数百次提交、测试驱动开发(TDD)/单元测试,并与全球各地负责其他系统组件、内部API和需求的部门交流。

我会花费大量的时间开发公共项目库,以扩展和优化我们所有的产品,特别是(但不限于)Qt Quick组件和样式。我还负责指导、培训和审查其他团队成员的代码,以便他们在使用Qt和QML时提升自己的能力和创造力。

通用架构规划和项目结构至关重要,尤其在Qt6/CMake过渡中发挥了重要作用。与Qt Group在多个层面上就Qt路线图进行密切合作,有助于我们实现共同目标。定期与Qt支持和开发团队举行会议,双方都非常享受并期待这些会议。

你最喜欢你工作的哪个方面?

我热爱工作中需要解决的丰富多样的任务与挑战,以及有机会和这些出色的同事一起并肩作战!无论是短期还是长期的项目,还有研发的重点,这些都意味着总有些新鲜有趣的事情等着我去投身其中。

每当我向同事和上级展示基于Qt新功能的创新应用以及惊艳演示时,总会出现很多让人惊叹的瞬间。

当然,全球背景已经发生了根本改变,能够远程灵活办公确实大大丰富了我们的生活,但这同时也要求我们更加勤勉和负责。然而,我同样非常珍视直接面对面交流时那些闪光的创意碰撞和相互鼓励的时刻。

要在这个领域取得成功,你认为哪些技能或品质最为重要?

创造力、热情和韧性。你需要能够退后一步,观察所有细节,以及这些细节如何形成一个完整的图景。深入掌握你的编程语言,并通过自我驱动的学习成为专家。

成为那个人们都愿意来寻求好建议的对象,并且要擅于在不同层次进行有效沟通。因为你会面对需要从多角度共同认可解决方案的观众和利益相关者。

保持勤勉并关注细节,哪怕别人“只是想要”一些简单的东西。事实上,我总是首先问“为什么”,而不是“要什么”。很多时候,最好的解决方案是先退后一步去思考:我们为什么要这样做?这样做能够帮助你走得更远。

对于那些有意追求类似职业生涯的人,你有何建议?

  1. Qt是当前行业领先的跨平台开发框架之一,提供社区版和商业版的授权方式。你可以下载安装程序,并尝试通过学习其提供的一些示例来熟悉这个框架。

  2. 如果你在选择大学课程,请确保所选的课程包含优秀的C++模块,同时学习一些人机交互(HMI)设计和全方位的计算应用知识 — 做一个能够吸收渊博知识的“海绵”。

  3. 当今世界,用户体验(UX)至关重要,因此你需要深入掌握它。我建议熟悉Figma等设计工具,这样至少你可以与设计师开展有深度的交流。

  4. 投入到学习中去!Qt Group在其学习页面和媒体渠道上提供了大量优质内容,如网络研讨会回放以及来自Qt Group和合作伙伴公司的数小时YouTube内容。

  5. 尽可能亲自或在线参加Qt World Summit,并积极参加本地举办的Qt线下活动。

  6. 阅读相关文档,充分利用Qt提供的支持服务或者Qt论坛,那里有许多乐于助人的高手。

  7. 最后要记住,开发者的动力来自零食和咖啡,所以一定要准备充足的补给!