10

像大多数人一样,我在 C 之后学习了 C++。我学习 C++ 是因为它是那些能找到工作的语言之一。我还在学习(做硕士)。我的一个表兄弟从事开发人员工作了大约 12 年。

他建议我学习 Java,这样我才能找到一份好工作。他说只有少数行业,如电信通信使用 C++,几乎所有的企业软件都是用 Java 开发的。我在我的大学担任学生技术员。该工作涉及使用 C++ 进行 Windows 编程。我学习了核心 Java。我不知道那些StrutsHibernate或其他任何东西。

为了安全起见,我打算同时掌握两者。但我认为 Java 是一片海洋,尽管用 Java 编程比 C++ 更容易(这是我的观点。C++ 爱好者不会杀了我)。

你们那里的极客和专业人士有什么建议。你觉得我应该两个都学。软件行业的哪些部门使用 C++?

4

25 回答 25

55

我本科时得到的最好建议来自我的语言教授,他告诉我(在这里转述):“不要记住语言;不要将自己嫁给一种语言。它们只是工具。它们都做同样的基本操作“不要学习特定的语言,而是学习良好软件开发的基础。然后你就可以学习任何语言并成功地使用它。”

在他告诉我之前,我害怕学习新的语言。之后,我把他的建议铭记在心,这一切都变得不同了。语言只是您工具箱中的工具。如果你能用一种语言编程和编写好的软件,你就可以用另一种语言来做。

于 2009-02-11T16:32:44.487 回答
19

C++ 仍然广泛用于性能密集型任务。例如,我在视频压缩和解压缩方面做了很多工作——都是 C++。部分是因为我们需要性能,部分是因为需要使用的所有 3rd 方库都是 C++,所以如果我们使用相同的语言,则更容易与它们集成。

于 2009-02-11T16:33:08.370 回答
19

使用 C++ 的项目的简要清单:

  • 设备驱动开发
  • 游戏
  • 高级引擎(音频、图像处理等)
  • 电信
  • 嵌入式软件(设备等)
于 2009-02-11T16:33:56.713 回答
16

C++ 甚至还没有接近死亡。

我的经验:

彭博、路透社及其所有需要低延迟市场数据馈送的银行/交易客户都使用 C++。(富达、摩根大通、法国巴黎银行、花旗银行等)

国防工业使用 C++。(在其他语言中 - Java 也很流行)

这些行业也使用 java 和其他语言,但 C++ 很难被击败。另请注意,现有的大量 C++ 代码库需要很长时间才能消失(如果有的话)

了解和使用它们并不难。不要太担心特定的语言。这不是开发软件的真正症结所在。

于 2009-02-11T16:32:56.047 回答
11

一些自称为 Google 的网站认为它广泛使用 C++。感谢上帝,他们不需要性能来索引那里的少数网站。

如果这个 Interweb 东西起飞了,他们会遇到真正的麻烦。(-:

不过说真的,除了当前的频道更改(回归?)到 C 和 Perl 之外,之前的四个项目都是 C++。

  1. 用于世界几家主要航空公司的大型离港控制系统(每天 30,000 个 10MB 日志文件)
  2. 一种新型军用飞机的飞行训练模拟器和地面软件验证平台
  3. 现有空中交通管制模拟器的大型框架,用于整合新的航空电信网络 (ATN)
  4. 用于空中交通管制中心的先进雷达处理和显示系统

一切真的很有趣。

于 2009-02-11T16:37:03.523 回答
9

视频游戏仍然使用 C++。想到的一个例子是可用于 iphone 和 xbox 游戏开发的 Torque 引擎。

于 2009-02-11T16:30:46.597 回答
6

C++ 并没有接近死亡,正如其他人所建议的那样,不要将自己嫁给一门语言。如果您在工作前景方面学习 C++,我宁愿建议您选择编程范式的代表。

  • C - 命令式编程
  • C++/Java/Obj-C - OOP
  • Lisp/Haskell/Scheme - 函数式编程

适应范式通常比学习语言本身更难。希望其他人能提出其他建议。

于 2009-02-11T19:52:48.327 回答
5

许多国防承包商,特别是在处理硬件时,使用 C++

许多先进医疗设备(例如 MRI)的制造商使用 C++。

我说如果可以的话,两个都学。即使您最终使用像 C++/C# 这样的沙盒语言,拥有 C++ 基础也很好。太多人不了解基础知识。

请注意,不同城市的大部分工作都使用特定语言。前往您认为最终会进入的城市的 craigslist 工作委员会,看看他们寻求什么。例如,匹兹堡是一个 C# 城镇,而纽约则更加平衡。

于 2009-02-11T16:33:22.550 回答
5

C++ 仍然广泛用于工程应用,例如高端 CAD/CAM 系统。

我认为本机代码的消亡被夸大了。甚至微软也放弃了在 Visual Studio 2008 中将 C++ 全部用于 .NET。它似乎再次积极改进其原生 C++ 开发工具,并使与托管世界的互操作更加容易。

于 2009-02-11T17:06:56.760 回答
5

我的建议,学习 C#。这些天来,几乎 50% 的工作列表是 Java,几乎其他 50% 是 C#,只有少数列出 C++。

也就是说,使用 C++ 的人知道他们为什么要使用它,并且可能有很好的用例……这意味着您将真正学习如何在最高级别使用该语言……同时公司在 Java 中推出业务逻辑应用程序/C# 可能不会很快教你太多关于编程的知识。

如果您决定从事 C++ 工作,请确保该商店有效地使用 STL 并且他们正在使用 Boost。不是考虑使用 Boost/STL,而是实际使用它。

于 2009-02-12T01:01:00.487 回答
3

关键词:银行(金融机构)、游戏

哦,还有粒子物理学家和其他使用著名的ROOT框架的科学家。

并查看这个基于 C++ 的应用程序列表。

于 2009-02-11T16:32:12.863 回答
3

Bjarne Stroustrup 有一份用 C++ 编写的公司/应用程序列表。

于 2009-02-12T14:37:30.727 回答
2

您的大学没有任何基于 Java 的课程?这很奇怪!

您不仅应该学习 C++ 和 Java,还应该接触多种语言和范式

于 2009-02-11T16:34:35.370 回答
2

我倾向于同意你表弟的观点。Java 肯定用于更多的企业应用程序(想想银行或保险公司需要的东西),而 C++ 用于更多“利基”市场。我也同意你的观点,Java 比 C++ 更容易学习和掌握。承认这一点没有羞耻或冒犯。

我们在我工作的地方都使用,用 C++ 编写嵌入式软件,但通过用 Java 编写的 GUI 应用程序与之通信。对于这两种(以及更多)语言,软件行业肯定有足够的空间。

于 2009-02-11T17:31:26.327 回答
2

大多数打包软件仍然是用 C++ 编写的。这意味着游戏、办公应用程序、图形和视频编辑器以及操作系统。事实上,如果您想到您每天使用的不在线软件,它很可能是用 C++(或 C 或 Objective-C)编写的。它不是用 Java、Python、Ruby、Perl 等编写的。虽然打包软件变得不那么流行了,但它仍然被大量使用并且不会很快消失。

操作系统,无论是嵌入式操作系统还是桌面操作系统,几乎都是用某种 C 语言编写的。已经尝试用 Java 或 C# 编写它们,但都没有成功。您所有的驱动程序也是用一些 C 变体编写的。我认为这种情况不会很快改变。

于 2009-02-12T01:03:27.627 回答
1

Java 非常棒,除非您必须开始关心它抽象出来的细节。大多数人不需要这样做。

于 2009-02-11T16:50:20.013 回答
1

我的建议是掌握你更喜欢的任何一种语言。我非常了解 C++ 和 Java,并且都专业地使用过。但是,我永远不会接受另一份 C++ 工作,因为我发现 C++ 乏味且令人麻木。我宁愿花时间掌握更有趣的语言。

于 2009-02-11T17:27:22.840 回答
1

很长一段时间以来,我一直在使用 C++ 编写主要用于制造和电信公司的内部和外部桌面应用程序,并且在 16 年中只全职使用 Java 大约 1 年。

Java 似乎从来没有像他们在 90 年代中期刚问世时所预测的那样接管桌面,现在 C++ 似乎有来自 .net 和 AJAX/web 应用程序的更多竞争。

我真的不能说它在后端系统中的使用,但我在那里看到的比我看到的 C++ 更多,所以这取决于你在谈论什么样的编程(例如面向用户与内部系统) .

于 2009-02-11T19:16:46.213 回答
1

好吧,我建议学习多于几种语言。我在通信行业工作,是的,我们使用 C++,但是我们正在进行的很多项目也是用 Java 编写的。

我建议你学习:

1) C++ / C 2) Java 3) Erlang 或 Haskel 4) Ruby

这将帮助您理解存在于一种语言中但不存在于另一种语言中的概念。也有助于适销性。

看看tiobe 编程索引,你就会对正在兴起的语言有所了解。

于 2009-02-12T01:24:31.117 回答
0

C++ 在嵌入式系统中大量使用。它被用于 UI 开发。例如。著名的 QT 框架是用 C++ 编写的。

最终这取决于你想做什么。如果你想在嵌入式系统中工作,最好学习 C/C++。

于 2009-02-11T17:06:06.107 回答
0

我在从事嵌入式设备工作的工作中经常使用 C 和 C++。我们在这里也不是在谈论超低级的东西。我做中级和 UI 工作。想想 Qt、Gtk+、Windows Mobile SDK 等。

于 2009-02-11T18:58:00.160 回答
0

ISV 大量使用 C++。想想微软、Adobe、甲骨文、Sun、赛门铁克……

于 2009-02-11T19:40:39.167 回答
0

我不得不一直滚动到底部才能看到一篇提到电子游戏的帖子。C 和 C++ 在该行业中是巨大的。

至于“我应该学习什么问题”。这是非常开放的,你想尽可能多地学习。所以是的,你应该同时学习它们。正如一些人所说,C# 也是一个不错的选择。您还应该学习 Python、Ruby 或 PHP 以及一些 Web 框架(Rails、Symfony、Django、ASP.Net)。如今,Web 应用程序非常庞大。

如果您的泡沫仅由 C++ 组成,那么您将不会很有市场。

编辑:哎呀,我想游戏被提及的次数比我最初在这里看到的要多得多。我的错。

于 2009-02-12T01:09:25.350 回答
0

游戏行业似乎永远都在使用C++ 。

于 2009-02-12T01:14:58.597 回答
0

在我的职业生涯中,我开发了 C++ 用于:

  • 服务器应用(证券行业)
  • 嵌入式软件(无线电信)
  • 桌面应用软件(无线电信)

我还看到了很多针对国防工业中 C++ 开发人员的广告。C++ 开发人员有很多工作要做,虽然没有过去那么多,但仍然有很多工作要做。

虽然我说学习 Java 并没有什么坏处,但掌握它是一项很好的技能。

于 2009-10-16T20:41:11.487 回答