首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于低延迟交易的职业生涯来说,深入学习C++值得吗?

对于低延迟交易的职业生涯来说,深入学习C++值得吗?
EN

Software Engineering用户
提问于 2012-01-02 19:50:08
回答 6查看 9.7K关注 0票数 7

我对超高频交易很感兴趣,Java是我最熟悉的语言。

我总是觉得我必须完善我的C++技能,才能在超高频范围内工作(不是双关语),因为很多工作规格似乎都要求这样做。

在互联网上的其他地方,我看到人们评论说Java实际上是首选的,因为您可以更容易地找到Java开发人员。然而,我认为这是一个很糟糕的论点,因为就超高频而言,你需要尽快获得订单,而基于易于找到程序员的设计系统并不能达到你所需的延迟。

那么,你是说我最好专注于Java,还是专攻C++才能进入这个职业呢?

EN

回答 6

Software Engineering用户

回答已采纳

发布于 2012-01-02 20:29:50

有一些用Java构建的低延迟系统(例如腐朽者),但是C++仍然是这个领域中常用的语言。我会亲自学习两者以及如何在两者之间交流(例如JNI或类似的)。

看看这方面现有的招聘广告可能也是个好主意。

票数 13
EN

Software Engineering用户

发布于 2012-01-02 23:46:25

首先,我要说,我曾在金融业工作过,所以在开始学习C++之前,我先从一个小的历史教训开始。

在Java发布之前,C++主要用于银行应用程序,特别是在处理诸如HFT等低延迟情况时。当Java通过交付“写一个,运行任何地方”的口号变得足够稳定时,银行开始采用它作为小型应用程序的新默认语言,并且当它的性能得到改进时,他们开始将它用于更大的应用程序。

记住这一点,你还应该知道,银行习惯于在默认情况下编写所有自己的东西(除了一些例外),如果只是为了赚钱,就不重写它;你确实看到了许多遗留应用程序,它们需要JVM的古老版本或某种魔法才能运行,但却增加了业务价值。与当时的C++相比,较旧版本的JVM性能糟糕,而且实际上是当前一代JVM,因此从性能角度看,编写低延迟、实时系统可能并不是特别可行的。

换句话说,您很可能会维护一个现有的平台,这个平台可能是在C++成为首选语言时编写的。最后,您可能会遇到一些C,甚至是程序集(不太可能)。此外,即使应用程序是Java,它也可以通过JNI调用C++来完成繁重的工作,这样我就可以学习C++,在其中做一些有用的事情。

在掌握Java之上的C++方面,或者反之亦然:学习到可以通过面试的程度,就会有拥有Java的平台,掌握就会伴随着使用。

票数 12
EN

Software Engineering用户

发布于 2012-01-02 20:36:26

你听起来好像在C++高频交易行业之外没有工作。但事实并非如此-- C++是一门优秀的语言,学习和掌握有很多其他原因。

票数 6
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/128058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档