首页 > 其他分享 >Qt职业之路--成为一名卓越的Qt开发者

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

时间:2024-03-29 11:29:05浏览次数:18  
标签:Qt 项目 -- 学习 开发者 开发 HMI QML

本文翻译自: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. 最后要记住,开发者的动力来自零食和咖啡,所以一定要准备充足的补给!

标签:Qt,项目,--,学习,开发者,开发,HMI,QML
From: https://blog.csdn.net/Infedium/article/details/137047716

相关文章

  • 拆解机械不再难,三维可视化技术让一切尽在眼前
    在科技飞速发展的今天,我们身边的机器设备变得越来越复杂,其内部构造和运行原理往往让人望而生畏。然而,随着三维可视化技术的崛起,机器拆解三维模型正在成为我们理解机械世界的新魔法。 想象一下,你不再需要手持沉重的工具,在昏暗的工厂角落里摸索机器的每一寸细节。只需轻点鼠标或......
  • 3、WinDbg的安装
      一、安装1、通过应用商店MicrsoftStore(推荐)或者软件管家下载2、从网上下载文件安装: https://aka.ms/windbg/download,下载偶尔403,多试几次。推荐IE浏览器下载。下载的文件直接双击安装,如果不能直接安装,可以手工把复制这个链接下载,下载完后双击windbg.msixbundle安装。......
  • Oracle中表空间查询
    1、查看表占的空间SELECTt.segment_name,round(SUM(t.bytes/1024/1024/1024),2)FROMuser_segmentstGROUPBYt.segment_nameORDERBYSUM(t.bytes/1024/1024/1024)DESC2、查看表空间使用率(包含临时表空间)SELECT*FROM(SELECTA.TABLESPACE_NAME,ROUND(A.BY......
  • vulntarget-e内网靶场笔记
    vulntarget-e一.打靶过程1.外网打点向日葵rcenmap-T4-sV-O-p0-65535192.168.126.130访问了49773端口后只有这个页面,只能扫描一下目录看看,但是扫出来也都是跳转到这个页面扫一下指纹信息,发现是向日葵(这里我自己扫不出来,俊贤哥说向日葵端口是变化的的自己写识别)未......
  • ESP32-P4 --- 多核影响
    为避免意外读取flashcache,一个CPU在启动flash写入或擦除操作时,另一个CPU将阻塞。在flash操作完成前,会禁用所有在CPU上非IRAM安全的中断。 HAL函数``cpu_hal_get_cycle_count()``,PU周期是各核心独立计数的,因此本方法仅适用于测量中断处理程序或固定在单个核心......
  • 018、宿业师山房待丁大不至
     唐●孟浩然夕阳度西岭,群壑倏已暝。松月生夜凉,风泉满清听。樵人归欲尽,烟鸟栖初定。之子期宿来,孤琴候萝径。 【现代诗意译】等不到的好友丁大 夕阳慢慢落下西山岭,千山万壑很快地暗淡下来。黑夜在松树间的幽冷月光下越来越凉爽,晚风中,清脆婉转的清泉声听起来别有一番......
  • 芯片关键工艺(AA POLY CT M1)
    芯片关键工艺分为几步:AA(就是离子注入的主要位置)、poly(多晶硅材质,电压就是压在他上面)、CT(这里指下面晶体管跟上面金属线的连接层)、M1(金属线第一层,一般越先进的工艺,金属线排布越复杂,不过工艺条件差不多,以第一层来代替后续工艺),AA、Poly更是将晶体管定义出来了,关键之处不言而喻,后面的C......
  • WPF实现placeholder效果
     概述:WPF中通过`Style`实现TextBox水印文本,使用`WatermarkTextBox`类及`ControlTemplate`。这个示例通过`VisualStateManager`在文本框失去焦点且内容为空时显示水印文本。通过`Watermark`属性简化水印文本设置,提高可维护性。在WPF中,通过Style实现TextBox中的水印文本(水印、......
  • 软件工程1
    请阅读北航陈彦吉同学的这篇博客中(地址:https://www.cnblogs.com/ChildishChange/p/7363123.html)的各参考资料,并回答如下问题:1.回顾你过去将近3年的学习经历当初你报考的时候,是真正喜欢计算机这个专业吗?你现在后悔选择了这个专业吗?你认为你现在最喜欢的领域是什么(可以是计算机......
  • EFCore
    《1》数据更新方法//方法1批量更新数据库数据,直接使用SQL语句ctx.Database.ExecuteSql($"UPDATE[T_Books]SET[Price]=[Price]+2");//方法2EFCore仍会为每个本书发送UPDATE语句,并且数据库必须单独执行每个语句......