与达到较低级别的软件水平相比,达到6级或更高水平的Google软件工程师有什么特点?

斯蒂芬给出了一个很好的答案,但是由于我正在接受A2A认证,因此让我提及一个相关方面。 您必须能够超越问题的短期技术方面。 如果您比当前的问题更广泛地思考和采取行动,而不仅仅是在公司或组织的更广泛部分方面做事,那么他人通常会认为这是斯蒂芬所指的领导。 在工程学以外的许多领域中,这是一个非常普遍的范例,可能大多数营销或销售人员已经以与经理人相同的方式看待世界,但没有机会参与其中,但在工程学中是不一定是这样。 刻板的工程师喜欢技术性的东西,即易于测量的东西,而不是糊涂的以人为本的东西。 他们喜欢解决定义明确的问题,但是高级和高级工程师在可以定义自己的问题时最有用。 这意味着至少在一定程度上要走出结构化工程世界。 请注意,想要成为一名工程师的人可能具有这些软技能,但没有这些技术技能,在这种情况下,他可能会做出出色的PM,但不会成为一名优秀的高级工程师。 要成为一名真正的工程师,您必须首先专注于技术技能,一旦获得成功,您就会变得足够有信誉,可以从事更具战略意义的工作。 捷径通常不起作用,因为工程师可能根本不会认真对待您,尽管“老板”可能会。 如果发生这种情况,您最终会与Dilbert尖顶的老板组成一个功能失调的团队。 但是尖顶老板的反面是一位工程师,他不在乎业务或客户需求,而他们肯定没有得到晋升。 就是说,真正的晋升通常是容易出错和不公平的,并且有很多人在做所有正确的事情,但却没有得到认可。 通常是因为他们根本没有机会展示自己的东西。 如果发生这种情况,您可能应该尝试四处走动或前往较绿的牧场。

为什么如今越来越少的人使用硬件,而越来越多的人使用软件?

也许较低的进入壁垒? 深入挖掘并开始使用它非常容易吗? 编写第一个“ Hello World”程序(使用您选择的编程语言)比用电池,开关,灯泡插座,灯泡和电线构建物理电路要容易得多。将它们连接在一起。 (然后,您需要进行所有的绕线,压接或焊接。) 现在将上面的示例的复杂度提高到更高的水平:与设计/构建相比,编写计算机程序来执行复杂的数学运算,加密和/或解密某些数据以及渲染某些3D图形要容易得多。具有专用电路的多层电路板(也许是基于FPGA的,具有存储器和I / O端口),可以完成基本上相同的事情(或复杂程度相似的事情)。 与硬件相比,软件的故障排除,调试和修改也容易得多,并且不需要脉冲发生器,逻辑分析仪和示波器之类的昂贵设备。 利用已经存在的商品硬件(或当今许多情况下,由云计算提供商提供的“虚拟”硬件)来实施软件问题的解决方案要容易得多。 大多数繁重的工作(就算法和/或计算复杂性而言)更容易在软件中实现,并且在大多数情况下,商品硬件或虚拟硬件的性能已足够。 例如,当我们想在硬件中实现某些东西时,就是要与“现实世界”接口-硬件成为现实世界与商品硬件上发生的繁重计算之间的桥梁。 另一个示例是,如果需要极高的性能,并且只有高度优化的专用硬件才能提供此级别的性能。 (也许有大量的高度专业化的专用GPU和/或FPGA设备可以进行比特币挖掘。)另一个原因是要保护知识产权-复杂的硬件设备(例如XBox,Sony Playstation,Apple iPhone和iPad)非常难于保护。以制造商不认可的某种方式闯入,逆向工程或改变用途。

在计算机工程方面,软件比硬件付出的更多吗?

计算机硬件工程师本质上要求两个学位,即计算机科学和电气工程。 因此,这样的计算机硬件工程师几乎总是会最终赚到更多钱,甚至可能在您的一生中都赚钱。 但是,由于软件工程师不花费额外的4年时间,而没有获得经验(和更多的学生贷款),所以您可能会发现自己赚了更多的钱(至少有一段时间)。 随着您事业的发展,这将发生变化,最终您将获得更多。 不同于获得硕士学位或博士学位的人。 在计算机科学领域,您一生的收入将比那些仅以BS为基础的人更高,因为高端差异往往约为50%或更多。 但是,对于硬件,情况有所不同,因为具有CS和电气工程经验的人员通常很少。 在某些情况下,计算机硬件工程师会从电气工程师或CS专业人士那里招募,他们由于需求而对学习另一面感兴趣。 请记住,尽管存在许多相似之处,但是硬件工程在许多方面都比较繁琐,并且可能非常具有挑战性(您不仅必须根据距离和布线中的电阻来布置事物,而且还需要了解诸如热量之类的事物)。 )。 硬件工程需要更多的逻辑,数学,物理和病人。 如果您不确定是否可以升至更高的水平(并享受生活),我建议您先选择CS,然后再涉足电气工程,因为您的收入稳定。 如果您必须退后一步,还清第二笔学生贷款可能并不有趣,并且肯定会导致终身收入降低。