Search
× Search
Saturday, February 8, 2025

Archived Discussions

Recent member discussions

The Algorithmic Traders' Association prides itself on providing a forum for the publication and dissemination of its members' white papers, research, reflections, works in progress, and other contributions. Please Note that archive searches and some of our members' publications are reserved for members only, so please log in or sign up to gain the most from our members' contributions.

Programming Languages

photo

 private private,

 Saturday, June 25, 2016

Hi everyone, My name is Jack Norton and I am currently a sophomore in high school interested in maybe one day attending a financial engineering program such as UC Berkley's FE Program. I was wondering if anyone could give me some insight on which types of programming languages (C++, Java, Python, etc.) are best to learn that would give me a leg up in a Financial Engineering Program?


Print

33 comments on article "Programming Languages "

photo

 Alex Krishtop, Consultant at Edgesense Solutions. Mentor at Algorithmic Traders Association

 Sunday, June 26, 2016



This topic has been raised quite several times here. In brief: if you mean writing anything which assumes parts critical to speed/latency, then C++/ASM. Anything else — whatever language you know, they are pretty much the same in this regard. If you need pre-built libraries then the vastest ones are for Python and Java. If you don't plan to trade, only research (mostly academic) then R or Matlab or whatever is popular in your college/university. If you plan to get hired then first make a research about the most popular languages among your potential employers. And remember that no language by itself will ever give you an advantage over others (edge). That's all.


photo

 Henry Enslin, Consultant at Deloitte SA

 Monday, June 27, 2016



Try to get a feel for Matlab


photo

 Subhash Thakur, Client Engagement Manager at Syntel

 Monday, June 27, 2016



C++ is always in demand when it comes to Trading Platforms. Once you know C++ rest all are straight forward


photo

 Jon Grah, Trading Signals Automation Expert AwarenessForex.com

 Tuesday, June 28, 2016



Agree with C++ coming up consistently. What about c# or .NET?

P. S. Android Mobile app has no ability to like comments. Anyone else feel the same?


photo

 Alex Krishtop, Consultant at Edgesense Solutions. Mentor at Algorithmic Traders Association

 Tuesday, June 28, 2016



Jon, I can't find this functionality since the latest "design improvement", even in desktop browsers.


photo

 Wai-Mee Ching, chief architect of ELI, an array programming system

 Tuesday, June 28, 2016



why not you google "ELI APL". this is closely related to the k/Q language of kdb used widely at Wall Street.


photo

 Len R. Holliday, Founder and CEO at Lead Weather Forecaster for Stormy Weather Service, Inc.

 Tuesday, June 28, 2016



Short GE! Turning into a dog!


photo

 Xenophon Koumourou, PSM I Certified - Migration Planner at NN Investment Partners

 Wednesday, June 29, 2016



Great idea! Seek advice from professionals!


photo

 Michael John, VP-Private Placement Fundraising Agent at MJK 33PP

 Wednesday, June 29, 2016



want to join


photo

 Roberto Spadim Beto, Developer / DBA at Spadim/Spaempresarial

 Wednesday, June 29, 2016



learn c++/java/python/.net/R/matlab/octave, that's the main languages, the main problem is learn all libs you will need, but try to learn at a high level language first (.net for example) and go to lower levels after, the idea is produce results, performace in future will not be a problem, and if you have performace problems try to learn lower levels tricks


photo

 Larry Panos, Lecturer at University of Toronto, Faculty of Medicine

 Wednesday, June 29, 2016



You are a sophomore in high school. I disagree with the guys telling you to start with C++. Wrong. Start with Python a terrific first language now being taught by many high schools and even more University intro to programming courses. If you are interested in a career that requires you to be a programmer you will be learning many different languages over the course of your education (which still has many more years ahead). Yes eventually you will tackle C++ but don't do that as a high school sophomore.


photo

 private private,

 Wednesday, June 29, 2016



Larry Panos I agree with you sir. I have started a bit of Java on a course website called Udemy which I find so far is pretty straightforward (Java is junior year programming material at our high school) but yes I will find a course in college down the road where I will get into more advanced languages such as C++, Matlab, etc. But all this advice is great so I can get a feel for what I will eventually need to know down the road. Unfortunately our Computer Science teacher at our school isn't very helpful so that's why I take courses online when it comes to programming languages, but thank you everyone for the advice as it is greatly appreciated.


photo

 private private,

 Wednesday, June 29, 2016



Larry Panos And of course I'll start learning Python also :)


photo

 Paul Baumann, Performance Engineer

 Wednesday, June 29, 2016



A language decision can be influenced by the complexity and dynamics of the object model needed. If you care only about raw bit twiddling performance then go with C++. If you want something easier to use then Java. If you want the most adaptable language then use GemStone/S. GS/S is an object database with perfect integration with the Smalltalk language. Smalltalk is the most productive language you could ever use because the syntax isn't filled with data type assumptions that need constant revision. Yeah, but who still uses Smalltalk? Little companies like ICE and JPM, along with other banks. For raw database performance you can forget the common relational database. Dozens of queries of data structures to reassemble an object graph? With GS/S the full object graph is as fast as a read from memory and can be instantly acted upon. My 23 year experience is that taking the less common route (for good reasons) is better then chasing the shifting winds of technologies.


photo

 Tim Carpenter, Head, Test Engineering, at Standard Chartered Bank

 Thursday, June 30, 2016



I would recommend Python first. Then do something unusual like Haskell, clojure or f# in the functional space. Java is a commodity, but worth having up your sleeve for general compute.


photo

 Tayloe Draughon, MD of Product Design at Neurensic

 Thursday, June 30, 2016



In the world of Algos, most do not write their own "Black Box". Rather they use APIs to connect to execution management systems RealTick, Trading Technologies, OptionsCity, or CQG. Or they use platforms that allow you to program your algos directly into their applications like Portware, FlexTrade, RTS (now part of Bloomberg). So what I would do is look at the APIs and the platforms and then pick a language that they use.

Also think about what you want to accomplish. If you need research first, maybe you need to start with skill sets that allow you to validate your data and analysis.


photo

 Marcel Ndje, CFA, FRM, Senior Manager Global Risk Management

 Thursday, June 30, 2016



Jack is in high school. So i think he needs formal education in Math and stats. Take all the advances class in those subjects you cam take. Also try to study a subject that blends economics, finance, technology and quant methods. It will help you for sure in the future. Programming is going to be easier once you get the formal education as building blocks...


photo

 private private,

 Thursday, June 30, 2016



Marcel Ndje, CFA, FRM That's a great idea I will do that. They offer AP Stats so I will take that and they offer Macroeconomics Senior year. And I will continue with the online coding classes.


photo

 private private,

 Thursday, June 30, 2016



C++


photo

 John Cairns, Lead Engineer at Conversant, Inc.

 Thursday, June 30, 2016



Python is a great choice to start. Eventually you will be able to port some of what you learn to C++. The best thing to do is focus on learning fundamental problem solving. Almost every firm and university wants to recruit smart problem solvers more than people who have one or two skills in particular. Did you know a Ph.D in Physics will get you into almost every top financial firm?

When I was your age I started programming on my calculator. Then I learned FORTRAN 77. I've never mentioned that in an interview but I use some of those skills every day.


photo

 Karl Steinbrecher, CFA, Proprietary Trader

 Friday, July 1, 2016



If you haven't already, check out Quantopian. It might be just what you're looking for.


photo

 Mara Sidlo, Software Developer in CRM, Finance and Trading Systems

 Friday, July 1, 2016



Python is a good starter as would be any basic shell scripting in unix. Of course java, c++, even c# might be called for from an employer. It's great that you're thinking about this all now! Online/self-paced courses are faster than waiting for a class to come up once a semester. I can tell you that the learning never stops after you've graduated, so keep up an enthusiastic curiosity. Remember to always have a dictionary (online or otherwise) to hand to clear up definitions. Go to any programmers' forums online for help if you don't have someone nearby.


photo

 private private,

 Friday, July 1, 2016



Mara Sidlo That sounds like a great plan! Thanks for the advice as it is much appreciated.


photo

 Christopher Reeves, Outlaw of the order book

 Friday, July 1, 2016



all of the above.


photo

 Tim Hodder, Software Consultant

 Saturday, July 2, 2016



Once you know C++, Java and C# are fairly easy to learn. That could be a target for a programming language, but you'll want to learn some easier languages first to understand the concepts. Some developers write their own trading systems while others write scripts for trading platforms like TradeStation. These trading platforms often use proprietary languages that are specific to their tool. It all depends on where your interests lie in the field.

As stated by others, you'll want to learn some math and statistics along the way. Quantitative analysis helps if you'll be developing your own strategies.


photo

 Jason Richard, CEO of Search2Go

 Monday, July 4, 2016



C#, and Java are a good start.


photo

 Len R. Holliday, Founder and CEO at Lead Weather Forecaster for Stormy Weather Service, Inc.

 Monday, July 4, 2016



Thanks guys! lenholliday56@yahoo.com


photo

 Ross Bonallo, Analyst Developer at Barclays Capital

 Monday, July 4, 2016



If you want to be light years ahead of the curve, F#


photo

 Colin "Soup" Campbell, Retired, Independent Trader, C++ Programmer, Electical Engineer

 Monday, July 4, 2016



You should be aware:

Under the Texas Engineering Practice Act, only duly licensed persons may legally perform, or offer to perform engineering services for the public. Furthermore, public works must be designed and constructed under the direct supervision of a licensed professional engineer. The terms "engineer" or "professional engineer" can only be used by persons who are currently licensed. Anyone who violates these parameters is subject to legal penalties.

The term financial engineer is illegal in your state.


photo

 York Tsang, System Analyst at China CITIC Bank International

 Tuesday, July 5, 2016



Mathematics is important


photo

 Jerry Kim, I have a background in Physics but am pursuing a career as a Data Scientist or Software Engineer

 Tuesday, July 5, 2016



I agree with the others who said to start off with Python as it's much easier to learn than C++. After learning Python, he can then learn Java and C++


photo

 Tom Gladd, Principal at Retired Quantitative Analyst

 Tuesday, July 5, 2016



Hello Jack, Congratulations on thinking ahead. Besides programming skills, you will need a lot of exposure to mathematics and mathematical modeling. Although it is used mainly by hard core quants, I recommend Mathematica (check out wolfram.com). It provides instant access to many analytical tools that you would use as a financial engineer. They encourage young users and have a very inexpensive student version. I bet your parents will spring for a copy.

Good luck.


photo

 Helga Briziarelli, Accountant and management assistant at SMP Cannes

 Wednesday, July 6, 2016



Hi everyone, i heard about "easylanguage" as another language to know. What do you think about that ?

Please login or register to post comments.

TRADING FUTURES AND OPTIONS INVOLVES SUBSTANTIAL RISK OF LOSS AND IS NOT SUITABLE FOR ALL INVESTORS
Terms Of UsePrivacy StatementCopyright 2018 Algorithmic Traders Association