我从工程师到程序员的方式

总结
作者了解俄罗斯工程师的生活有多么艰辛,因此决定去找程序员。 他做到了。 有关如何的帖子。

我为什么要写这一切


  • 感激 。 对Habr社区说“谢谢”。
  • 支持和动力 。 支持工程师的道德是道德的,他们也决定将其呼叫更改为一个新的呼叫,但无法决定。
  • 自我激励 。 公开发表一份小报告和一些计划对于向前迈进非常有用。
  • 分享经验 。 也许有人会向我展示自己的道路。

感激之情


为此,该职位被构思出来。 这是起点。
我的帖子“ 工程师VS程序员。 或工程师去的地方 “带来了很多评论,一些个人信息,几次采访。 最重要的是,他给我带来了一波支持,积极性和动力。


非常感谢整个Habr社区! 正是社区的支持使鼓舞人心的前进,实现了我的目标,并带我进入了程序员。


特别感谢我要说的是serenityfx ,他专门注册是要发表评论并提供他们的经验,并花时间与我亲自交谈,回答我的问题。 他给了我指导,并帮助我理解了下一步如何去哪里。


谢谢,哈伯! 你真酷!


上一篇文章摘要


我担任工程师14年,包括一名开发工程师,因此我决定转而使用程序员,因为软件工程师是高薪,广阔前景和机遇的必备专业。

我的方式


得益于Habr的反馈,我得以进一步明确阐明两条发展道路。
首先是在俄罗斯和其他国家再次尝试找到一名自己的开发工程师。 幸运的是,这些评论直接来自几个个人联系人,这使我们能够进行几次尝试。


第二种方法(也很清楚)是下载微控制器和嵌入式系统程序员的技能,并寻找该领域的初始职位(6月中旬)。
作为有时间的“聪明而美丽的猴子”,我试图同时向两个方向行走。 积极从事求职工作,包括在国外,并开始提升他在控制器领域的技能。


六个月后,很明显,第一条路仍然是死胡同。 我们必须去程序员。 巧合促使我辞退了。 我专注于控制器和求职,但作为一名程序员。


出乎我意料的是,我收到了一份邀请,成为一个项目的自由职业者,同时又让我既担任控制器程序员又担任开发工程师。 我的自由职业者的生活持续了8个月,以订单付款结束。 但是我的编程技能在这段时间里增长了很多,所以我回到了劳动力市场并寻找了一名软件工程师的工作。


根据其中一次采访的结果,我首先被邀请参加实习,然后进入试用期,然后逐渐变成了永久合同。 因此,我成为一名嵌入式软件工程师。


但是,让我们更详细地了解每个步骤。


起始位置


从开发工程师开始。 实际上,我的工作包括算法的开发和测试,硬件,四分之一的组织问题-团队管理,采购和文档以及四分之一的编程开发设备。


作为一名老式工程师,我对理论知识很感兴趣,所以当我被开除时,我已经有几门有用程度不同的课程:



此外,ITMO 学院还提供了一些有趣但毫无用处的课程HTML(HTML / CSS / JS),
HSE的“ 项目管理 ”和ITMO的“ 图论 ”。 还有一半的已完成JavaRush课程,该课程在决定使用嵌入式后被放弃了。
在实践中,我有建模和处理与设备相关的信号的经验。 具有编写SiliconLabs C8051系列控制器,Atmel初级控制器的固件的经验,以及一些Altera FPGA的开发经验。


在我身后的还有管理团队和小规模生产的经验,但我认为这无关紧要。


找工作


采访主题值得单独发表。 有很多,他们波涛汹涌。
采访中有很多怪异之处。 当我来采访程序员的职位时,他们问我为什么凭着这样的经验我不想当工程师。 在接受工程师采访时,我因编程经验而遭受折磨。
我在简短的会议上说:“停止,您不需要我。” 相比之下,其中一个职位是在Skype上用英语进行的五次两个小时的采访中的马拉松式采访。 原则上我不想去伪装过的军人。 有一家公司,本质上是由经理领导的自由职业者合作社。
我大多数面试的主要结果是,在我想要的地方缺少工作机会,而在我不想工作的地方提供了工作机会。


自由职业者的生活


在这里,我全神贯注于自由职业的所有利与弊,在哈布雷(Habré)上对此进行了多次讨论。 对我而言,时间已成为一大优势。 我住在大自然中的联排别墅中,没有花时间在路上。 但是我很容易每天为该项目提供12个小时的时间,从而有机会学习和弥补我在编程方面的知识鸿沟。 我沉迷于STM32的世界,包括FreeRTOS。 首先,我模拟了Discovery上需要的项目,然后制作了一个电路板,并在10x系列上重复了该过程。 同时,我发现Git和为UML设计是必要任务的一部分。 不幸的是,我不能离开家,因为我必须随身携带示波器,烙铁和电源。


同时,与天线和雷达有关的项目也进行了。 但是主要收入是由一位客户带来的。 顺便说一句,这个收入比我作为开发工程师的薪水高出一倍半。


但是,起初客户开始延迟支付阶段的费用,但是我忍受了。 当他完全停止付款并从地平线上消失时,他不得不拉紧腰带,再去找工作。
是的,众所周知的常识-签订合同。 我用金钱交换了自由职业者和编程方面的经验。


战斗测试


我第二次进入这家公司。 解决测试任务(微控制器的一项小任务)的第一次尝试并未导致面试。 我回了电话,找出了完全不喜欢我的解决方案的东西(很少有评论,只提出了一个解决方案)。 六个月后的第二次尝试更为成功。


人力资源代表访谈,并进行一些小测试。 与未来同事的对话是漫长而彻底的。 总共超过2小时。 几天有偿“实习”的建议。


在“实习”期间,他关闭了两个错误。 他收到了这笔钱,并提供了三个月的试用期。


可以说,从这个时候开始了真正的跳水,半年了。 在这段时间内简要介绍一下:


  • 一头扎进整个遗迹湖,挣扎着虫子;
  • 从驱动程序到bash脚本,我都选择了内置Linux。
  • 快速运行SVN;
  • 通过GTest学习了单元测试;
  • 掌握了CI方法,并通过一系列Hudson / Ant / Python->编译+单元测试配置了他的任务;
  • 弄清楚了Qt及其小部件;
  • 在STM上推动了FreeRTOS的实际应用;
  • 为新设备编写了退出测试脚本;
  • 几乎停止感觉冒名顶替综合症。

前六个月非常活跃。 您工作了8个小时。 然后,您回到家中,并在其余时间中尝试快速吸收知识和技能,以解决一天中设定的任务。 第二天,您开始工作,并尝试使用新知识解决问题。


同事们提供了很多帮助。 哪里有实用建议,哪里才有想法。


当您在该模式下工作时:存在一个问题-您需要紧急解决它,然后训练才能更快地进行。 最主要的是不要忘记看起来更宽一点,并有时间了解自己到底在做什么。


现在我已经放慢了一点速度,尤其是自从冬天我进入一种接近冬眠的状态以来,但我不仅作为程序员工作,而且感觉还不错。 旧版代码,冲刺,设计,测试,CI / CD全面增长。 我喜欢那该死的!


与开发工程师相比,薪水增加了一倍以上。 没有处理或模糊要求。 这甚至比我去程序员时的预期还要多。


接下来是什么...


不要停下来。 这并不困难,因为编程具有拖入过程的能力。 开始之后,很难停止。


要学习。 因为我所学的仍然有很多白点,包括理论上的白点。 以及如何不够实用。


我真的很想处理我的项目,特别是因为我脑子里有几个想法,而且手上有两条有趣的围巾。


参加了几门课程。 算法和数据库。


我想在同一个领域去见主,但我们会看到的。


结论


本文的主要信息是,我能够在两年内从一名开发工程师成为嵌入式系统的软件工程师。 如果我没有在虚无的希望和践踏下浪费时间,那我肯定会在一年半的时间内完成。


重要和必要的是理论知识。 基本概念,铁,Linux,控制器。
显然还不够-实践。 找工作时,我的任何项目,都必须加上漂亮的代码和注释,这是非常缺少的。


有信心一切都会成功。 我对相信我的哈布雷和“坚强的后方”给予了鼓舞性的评论。


再次感谢大家!

Source: https://habr.com/ru/post/zh-CN441070/


All Articles