我对超高频交易很感兴趣,Java是我最熟悉的语言。
我总是觉得我必须完善我的C++技能,才能在超高频范围内工作(不是双关语),因为很多工作规格似乎都要求这样做。
在互联网上的其他地方,我看到人们评论说Java实际上是首选的,因为您可以更容易地找到Java开发人员。然而,我认为这是一个很糟糕的论点,因为就超高频而言,你需要尽快获得订单,而基于易于找到程序员的设计系统并不能达到你所需的延迟。
那么,你是说我最好专注于Java,还是专攻C++才能进入这个职业呢?
发布于 2012-01-02 20:29:50
有一些用Java构建的低延迟系统(例如腐朽者),但是C++仍然是这个领域中常用的语言。我会亲自学习两者以及如何在两者之间交流(例如JNI或类似的)。
看看这方面现有的招聘广告可能也是个好主意。
发布于 2012-01-02 23:46:25
首先,我要说,我曾在金融业工作过,所以在开始学习C++之前,我先从一个小的历史教训开始。
在Java发布之前,C++主要用于银行应用程序,特别是在处理诸如HFT等低延迟情况时。当Java通过交付“写一个,运行任何地方”的口号变得足够稳定时,银行开始采用它作为小型应用程序的新默认语言,并且当它的性能得到改进时,他们开始将它用于更大的应用程序。
记住这一点,你还应该知道,银行习惯于在默认情况下编写所有自己的东西(除了一些例外),如果只是为了赚钱,就不重写它;你确实看到了许多遗留应用程序,它们需要JVM的古老版本或某种魔法才能运行,但却增加了业务价值。与当时的C++相比,较旧版本的JVM性能糟糕,而且实际上是当前一代JVM,因此从性能角度看,编写低延迟、实时系统可能并不是特别可行的。
换句话说,您很可能会维护一个现有的平台,这个平台可能是在C++成为首选语言时编写的。最后,您可能会遇到一些C,甚至是程序集(不太可能)。此外,即使应用程序是Java,它也可以通过JNI调用C++来完成繁重的工作,这样我就可以学习C++,在其中做一些有用的事情。
在掌握Java之上的C++方面,或者反之亦然:学习到可以通过面试的程度,就会有拥有Java的平台,掌握就会伴随着使用。
发布于 2012-01-02 20:36:26
你听起来好像在C++高频交易行业之外没有工作。但事实并非如此-- C++是一门优秀的语言,学习和掌握有很多其他原因。
https://softwareengineering.stackexchange.com/questions/128058
复制相似问题