自从我上一篇文章以来,这是一场旋风,我想分享我一直在做的事情、我学到的东西以及我的前进方向。过去的几个月充满了作为软件工程师成长的机会,虽然充满挑战,但我为自己取得的进步感到自豪。
泄漏测试设备项目进展
我们的泄漏测试设备项目即将完成。我一直在努力理解代码库并尽我所能做出贡献。虽然我的贡献主要集中在测试和验证上,但它们对于确保我们满足所需的规范至关重要。
该项目的代码库非常有趣——Java 处理 ui 和部分后端,而 python 脚本则管理与设备内部组件的套接字通信。这些脚本控制机器运行的各种泄漏测试程序。
对我来说最大的游戏规则改变者是学习有效地使用 IntelliJ 及其调试器。我不再盯着代码并试图在脑海中将它们拼凑在一起,而是能够单步执行代码并理解一切是如何配合的。
我们最艰巨的挑战之一是对反编译的 JAR 文件进行逆向工程以恢复源代码。最初编写它的程序员拒绝分享源代码并被解雇,留下我们来收拾残局。我为我们已经取得的进展感到自豪,并且我很高兴在所有测试完成后最终确定存储库。
深入 c++
我一直在提高我的 C++ 技能。我一直在关注 The Cherno 的 C++ 系列,它让我大开眼界。共享指针、唯一指针和弱指针等概念很有趣,我期待探索更高级的主题。
为了练习,我一直在玩《超级马里奥兄弟》C++ 存储库。使用 VS Code 中的调试器逐行浏览代码是了解所有内容在幕后如何工作的好方法。
新工作:ReactJS、docker 和移植程序
我最近通过推荐找到了另一份工作(仍然没有报酬)。该项目涉及将 Windows 程序移植到 linux。源代码是 C++ 语言,虽然我已经设法使用 Wine 在 Linux 上运行 .exe,但我们缺少几个头文件。我正在与团队联系,看看它们有多重要,但与此同时,我已经开始深入研究 reactjs 和 Docker,这两个都是我被要求学习的角色。
Docker 是一个启示。如果说VM虚拟化了硬件,那么Docker则虚拟化了操作系统。我已经开始复制我们一直在其中进行开发的 Raspberry Pi 环境,设置 JDK 11 和 mariadb。未来的自我提醒:它本质上解决了“它可以在我的机器上运行!”的问题。问题。
对求职和职业建议的思考
就业市场一直很艰难,有时感觉会一直如此,但事情终于开始好起来。在过去的几个月里,我的简历有了显着的改善,我开始感觉自己像一名专业的软件工程师。
我学到的一件事是,这个行业中相互矛盾的建议无处不在。例如,您的简历应该是一页还是两页?每个人似乎都有不同的答案。归根结底,我只是专注于获得尽可能多的反馈并对其进行迭代。
我注意到的另一件事是很容易陷入学习的困境。网页开发?人工智能?游戏开发?嵌入式系统?我的建议:选择一个并坚持下去。如果需要的话可以稍后再进行调整,但不要把自己分散得太分散。现在,我正在学习我正在从事的工作所需的一切——ReactJS、C++ 和 Docker——这足以让我忙碌起来。
展望未来
我每天对自己的技能越来越有信心,但我知道我还有很长的路要走。我想用 leetcode 温习我的数据结构和算法,并开始构建更多项目来展示我所学到的东西。
作为一名在新冠疫情期间毕业的第一代大学生,这段旅程很艰难。但我在这里,我正在学习,我为自己所取得的进步感到自豪。我迫不及待地等待作为专业软件工程师拿到第一份薪水的那一刻。
敬请期待。