2

在嵌入式电信系统开发(C、MAKE、Symbian、100 编译器等)工作了大约 8 年后,我正在考虑通过进入桌面开发(VC++、MFC、C# 等)“稍微”改变我的道路。

然而,我担心的是,我在嵌入式系统方面的经验在进入桌面开发时可能不会给我带来太多价值。例如,我工作了这么长时间的特定领域问题和环境仍然没有给我太多谈判薪水的机会,因为它在桌面上几乎没有价值。

我认为这个地方可能对这方面有帮助。

所以,问:

如果您忽略了在编程语言级别上明显的通用经验,请举例说明您在使用嵌入式系统时学到的东西,您可以在桌面环境中重用这些东西。

PS:我应该注意我不是桌面领域的初学者——因为很多年前我所有的爱好项目都集中在桌面开发上。

4

5 回答 5

3

在验证操作和处理有限资源时,嵌入式工程师通常会更加自律。

这也可以转化为更早提出异常处理策略。

典型的例子是检查 malloc 的返回值。我见过很少有桌面软件能持续检查它,但它在嵌入式环境中很常见。

于 2009-03-17T19:50:48.637 回答
1

许多仅使用桌面的开发人员可以从使程序适合 128K 的 FLASH 和 32K 的 SRAM 的经验中受益,更不用说仅通过一个或两个 LED 和几个按钮与用户进行有意义的交流。提出这一要求可能会减少应用程序行业中的一些地方性代码膨胀。:-)

即使您不转向直接的应用程序开发,嵌入式体验也可以很好地转化为驱动程序开发,以及低级实用程序和长期运行的服务。在所有这些领域,对于成功的嵌入式开发人员来说,几乎是第二天性的学科仍然很有价值。

于 2009-03-18T06:49:30.627 回答
1

拥有一套干净、组织良好的源代码的纪律是很好地转化为“桌面体验”的关键技能。——我注意到我编写和学习的嵌入式项目通常比桌面项目更干净。

于 2009-03-18T01:47:32.817 回答
1

在切换到嵌入式环境之前,我做了将近 5 年的桌面开发人员。我发现在嵌入式环境中工作更具挑战性,因为我们必须处理内存限制、CPU 速度慢、交叉编译问题等。

在学会了很多耐心、纪律和低层次的复杂性之后,桌面开发应该像在公园里散步一样容易。

于 2009-03-18T07:31:50.650 回答
0

嵌入式系统上的状态机/事件驱动编程与桌面上的事件驱动编程没有什么不同。您在嵌入式系统(尤其是电信嵌入式系统)上对这些编码技术的丰富经验应该会让您成为一名出色的桌面程序员。

同样,您对通信协议的体验应该很好地转移到桌面上。大多数桌面应用程序都与网络有关。

于 2009-05-30T15:09:07.343 回答