Learn investing as a programmer
"My master's thesis was on using genetic algorithms and candle stick method.  If you are familiar, the AI was used to answer questions like ""what is a long day"", which is not formally defined in most candle stick texts.   So in theory unlimited potential for learning including teaching machines to learn.  Wall street pays pretty well for such developers, and if you are young and single man Manhattan is pretty sweet place to be. In practicality your formula for building wealth is the same as everyone else's:  get out of debt, build an emergency fund, and invest.  Initially invest in growth stock mutual funds through a 401K (assuming US)." The software you provided as an example won't teach you much about investing. The most important things of investing are: These are the only free lunches in investing. Allocation tells you how much expected return (and also how much risk) your portfolio has. Diversification is the only way to reduce risk without reducing return; however, just note that there is market risk that cannot be eliminated with diversification. Every penny you save on costs and taxes is important, as it's guaranteed return. If you were to develop e.g. software that calculates the expected return of a portfolio when given allocation as an input, it could teach you something about investing. Similarly, software that calculates the average costs of your mutual fund portfolio would teach you something about investing. But sadly, these kinds of software are uncommon.
Hey man. First of all, having a firm understanding in SE is a blessing! Finance firms are actively looking to hire with software engineering skills from tech. The closer to your background skills, the easier it will be to get a job. If you don't want to be a programming drone for Goldman, i'd say algo trading or being a quant at a hedge fund would be an awesome gjg. If you definitely want to do investment banking (m&amp;a/ibd), focus on spinning your story and background targeting tech companies.   Just make sure you know why you want to go into finance and that role vs SE. Make sure you truly try to understand what investment banking/algo trading is and can explain it to your grandma. Above all, network, network, network. Good luck. Most quants I've worked with aren't exceptional programmers. I definitely think you can teach yourself enough C++ to get by. You probably want to learn a little of Matlab, R, Sas, Excel, and SQL along with C++ rather than to try to be an expert in programming. The article links to William Bernstein’s plan that he outlined for Business Insider, which says: Modelling this investment strategy Picking three funds from Google and running some numbers. The international stock index only goes back to April 29th 1996, so a run of 21 years was modelled.  Based on 15% of a salary of $550 per month with various annual raises: Broadly speaking, this investment doubles the value of the contributions over two decades. Note:  Rebalancing fees are not included in the simulation. Below is the code used to run the simulation.  If you have Mathematica you can try with different funds.    Notice above how the bond index (VBMFX) preserves value during the 2008 crash.  This illustrates the rationale for diversifying across different fund types. "A couple options that I know of: Interactive Brokers offers a ""paper trading"" mode to its account holders that allows you to start with a pretend stack of money and place simulated trades to test trading ideas. They also provide an API that allows you to interface with their platform programmatically for retrieving quotes, placing orders, and the such. As you noted, however, it's not free; you must hold a funded brokerage account in order to qualify for access to their platform. In order to maintain an account, there are minimums for required equity and monthly activity (measured in dollars that you spend on commissions), so you won't get access to their platform without having a decent amount of skin in the game. IB's native API is Java-based; IbPy is an unofficial wrapper that makes the interface available in Python. I've not used IB at all myself, but I've heard good things about their API and its accessibility via IbPy. Edit: IB now supports Python natively via their published API, so using IbPy is no longer needed, unless you wish to use Python 2.x. The officially supported API is based on Python 3. TD Ameritrade also offers an API that is usable by its brokerage clients. They do not offer any such ""paper trading"" mode, so you would need to ""execute"" transactions based on quotes at the corresponding trade times and then keep track of your simulated account history yourself. The API supports quote retrieval, price history, and trade execution, among other functions. TDA might be more attractive than IB if you're looking for a low-cost link into market data, as I believe their minimum-equity levels are lower. To get access, you'll need to sign up for an API developer account, which I believe requires an NDA. I don't believe there is an official Python implementation of the API, but if you're a capable Python writer, you shouldn't have trouble hooking up to the published interfaces. Some caveats: as when doing any strategy backtesting, you'll want to be sure to be pessimistic when doing so, so your optimism doesn't make your trades look more successful than they would be in the real world. At a minimum, you'll want to ensure that your simulations transact at the posted bid/ask prices, not necessarily the last trade's price, as well as any commissions and fees associated with the trade. A more robust scheme would also take into account the depth of the order book (also known as level 2 quotes), which can cause additional slippage in the prices at which you buy/sell your security. An even more robust scheme would take into account the potential latency of trade execution, looking at all prices over some time period that covers the maximum expected latency and simulating the trade at the worst-possible price." Many people have provided very good answers to this question and all the answers provide sound advice and justification. Below are some of my thoughts on the questions that you have put forward. 1) The investment manager question: The returns on your capital for a half year has been quite low; having said that, some investments do take more than half year to show some growth. You could try talking to your investment manager and ask where your money has been deployed and why the returns are low. If there are no real explanation given forth (which would be more likely as you have mentioned your investment manager does not like to discuss your money with you) you should conside Xolorus & Pete's advice and forthwith take all your money from investment manager and park it in the bank till you figure out what to do next with it. 2) Finances are not my forte: At 22 finance is nobodies forte, it takes longer than that; however having said that, how do you know finance is actually not your forte? Being a computer science graduate you would be more than comfortable with the mathematics required for finance. You may not have looked seriously at finance till now (I assume by your statement). Once way to be certain about this would be self learning, some good books have been refered above and there are online information, courses and articles on the Internet, for example here. You could give some spare time and explore if finance interests you or not. 3) If finance interests you: Then consider the 30K as your seed fund and take a small portion of it say 2K and try out your hand at investing on your own in the instruments that you feel most comfortable and see how you fare, you are young enough to take the risk. Rest of the money you could put in other low risk instruments (that you have identified through self study) 4) If finance does not interest you: The probably you are better off with an investment manager, as observed above, it will take some time for you to identify him/her 5) On returns: As mentioned above different instruments produce returns differently, however, one question that is universally asked is how much return on an invetment shoule one expect (you were expecting more than $12 on your investment). It is a difficult question to answer as invetment returns and investment needs depend on a persons financial goals and risk taking profile. One way to have some measure is to take 15-20 years CAGR of the stock index return and reduce it by 2-3%, that is (in many cases, not all) a reasonable return expectation in medium-long term. no offense, but clicking through to that guys blog and fund page he seems like a charlatan and a snake oil salesman. It's not surprising that he doesn't like asset manager software because he himself is an asset manager. the software is trying to replace him.  He doesn't make money by beating the market... he makes money by convincing others that he can... he is exactly the type of person that the original article is warning against investing with. “Burt Malkiel is still the high priest of passive investing,” said Jakub Jurek, vice president for research at Wealthfront. “To be absolutely clear, we’re not stock pickers. There are decades of research on active investors, which show they underperform.”   So ... not really straying, just promoting a somewhat more sophisticated model based on algos (robo-investors?) Assuming you were immersed in math with your CS degree, the book **'A Non-Random Walk Down Wall Street' by Andrew Lo** is a very interesting book about the random walk hypothesis and it's application to financial markets and how efficient markets might not necessarily imply complete randomness.    Lots of higher level concepts in the book but it's an interesting topic if you are trying to branch out into the quant world.  The book isn't very specific towards algorithmic trading but it's good for concept and ideas.  Especially for general finance, that will give you a good run down about markets and the way we tackle modern finance.    **A Random Walk Down Wall Street** (which the book above is named after) by **Burton Malkiel** is also supposed to be a good read and many have suggested reading it before the one I listed above, but there really isn't a need to do so.    For investing specifically, many mention **'The Intelligent Investor' by Benjamin Graham** who is the role model for the infamous Warren Buffet.  It's an older book and really dry and I think kind of out dated but mostly still relevant.  It's more specifically about individual trading rather than markets as a whole or general markets.  It sounds like you want to learn more about markets and finance rather than simply trading or buying stocks.  So I'd stick to the Andrew Lo book first.    ---  Also, since you might not know, it would be a good idea to understand the capital asset pricing model, free cash flow models, and maybe some dividend discount models, the last of which isn't so much relevant but good foundations for your finance knowledge.  They are models using various financial concepts (TVM is almost used in every case) and utilizing them in various ways to model certain concepts.  You'd most likely be immersed in many of these topics by reading a math-oriented Finance book.  Try to stay away from those penny stock trading books, I don't think I need to tell a math major (who is probably much smarter than I am) that you don't need to be engaging in penny stocks, but do your DD and come to a conclusion yourself if you'd like.  I'm not sure what career path you're trying to go down (personal trading, quant firm analyst, regular analyst, etc etc) but it sounds like you have the credentials to be doing quant trading.    ---  Check out www.quantopian.com.  It's a website with a python engine that has all the necessary libraries installed into the website which means you don't have to go through the trouble yourself (and yes, it is fucking trouble--you need a very outdated OS to run one of the libraries).  It has a lot of resources to get into algorithmic trading and you can begin coding immediately.  You'd need to learn a little bit of python to get into this but most of it will be using matplotlib, pandas, or some other library and its own personal syntax. Learning about alpha factors and the Pipeline API is also moderately difficult to get down but entirely possible within a short amount of dedicated time.     Also, if you want to get into algorithmic trading, check out Sentdex on youtube.  He's a python programmer who does a lot of videos on this very topic and has his own tool on quantopian called 'Sentiment Analyzer' (or something like that) which basically quantifies sentiment around any given security using web scrapers to scrape various news and media outlets.  Crazy cool stuff being developed over there and if you're good, you can even be partnered with investors at quantopian and share in profits.    You can also deploy your algorithms through the website onto various trading platforms such as Robinhood and another broker and run your algorithms yourself.    Lots of cool stuff being developed in the finance sector right now.  Modern corporate finance and investment knowledge is built on quite old theorems and insights so expect a lot of things to change in today's world.  ---  With a math degree, finance should be like algebra I back in the day.  You just gotta get familiar with all of the different rules and ideas and concepts.  There isn't that much difficult math until you begin getting into higher level finance and theory, which mostly deals with statistics anyways like covariance and regression and other statistic-related concepts.  Any other math is simple arithmetic. -Get a job doing it.  -Try the CFA curriculum if you want the base financial knowledge - but only if you don't have that knowledge already.  -Check out coursera  -Try writing some pricing tools or trading algo, depending on what area you're interested in. The future is not options pricing, the future is in data aggregation and prediction.  Yes it's possible to learn if you have the mathematical foundation. It's really no as complicated as the world believes. Remember that most people go finance -&gt; math and find it hard whereas you're going math -&gt; finance. "While I've never used Wall Street Survivor, I took a look over the marketing materials and I've seen multiple similar contests run among investment interns also just out of college.  I see some good here and some bad. First off, I love interactive web-based tutorials.  I've used one to learn the syntax of a new programming language and I find the instant feedback and the ability to work at your own pace very useful.  The reviews seem to say that Wall Street Survivor is a good way to learn the basics of how trading stocks works and the lingo.  Also, it seems pretty fun which I've found helps a lot. Wall Street Survivor will hopefully teach you that there are many real stock markets and that they may have somewhat different prices and they likely take the real and timely data from a single market. Wall Street Survivor also frightens me.  The big problem that I see with interns running similar contests is that the market is extremely random over short to medium periods of time.  An intern can make an awful portfolio or even pick stocks at random and still win the contest.  These interns know a lot about the randomness in markets already so they don't believe they are trading geniuses because they won a contest, I'm not sure there is much to temper this view on this web-site. Also, while Wall Street Survivor teaches you about trading it doesn't appear to teach you about investing.  The website appears to encourage short term views and changing positions a lot and doesn't seem to simulate the full trading costs (including fees) that would eat away at the gains of a individual investor that trades that much.  It gives some help with longer term thinking like diversification, but also seems to encourage trading that makes Wall Street Survivor more money, but are likely detrimental to the user. I would say have fun with Wall Street Survivor. Let it teach you some things about trading, but don't give the site much if any money.  At the same time, pick up a copy of short book called ""A Random Walk Down Wall Street"" and start learning about investing at the same time.  Feel free to come back to Stack Exchange with questions along the way." "I'm 39 and have been investing since my very early 20's, and the advice I'd like to go back and give myself is the following: 1) Time is your friend. Compounding interest is a powerful force and is probably the most important factor to how much money you are going to wind up with in the end. Save as much as you possibly can as early as you can. You have to run twice as hard to catch up if you start late, and you will still probably wind up with less in the end for the extra effort. 2) Don't invest 100% of your investment money It always bugged me to let my cash sit idle in an investment account because the niggling  notion of inflation eating up my money and I felt I was wasting opportunity cost by not being fully invested in something. However, not having enough investable cash around to buy into the fire-sale dips in the market made me miss out on opportunities. 3) Diversify The dot.com bubble taught me this in a big, hairy painful way. I had this idea that as a technologist I really understood the tech bubble and fearlessly over-invested in Tech stocks. I just knew that I was on top of things as an ""industry insider"" and would know when to jump. Yeah. That didn't work out so well. I lost more than 6 figures, at least on paper. Diversification will attenuate the ups and downs somewhat and make the market a lot less scary in the long run. 4) Mind your expenses It took me years of paying huge full-service broker fees to realize that those clowns don't seem to do any better than anyone else at picking stocks. Even when they do, the transaction costs are a lead weight on your returns. The same holds true for mutual funds/ETFs. Shop for low expense ratios aggressively. It is really hard for a fund manager to consistently beat the indexes especially when you burden the returns with expense ratios that skim an extra 1% or so off the top. The expense ratio/broker fees are among the very few things that you can predict reliably when it comes to investments, take advantage of this knowledge. 5) Have an exit strategy for every investment People are emotional creatures. It is hard to be logical when you have skin in the game and most people aren't disciplined enough to just admit when they have a loser and bail out while they are in the red or conversely admit when they have a winner and take profits before the party is over. It helps to counteract this instinct to have an exit strategy for each investment you buy. That is, you will get out if it drops by x% or grows by y%. In fact, it is probably a good idea to just enter those sell limit orders right after you buy the investment so you don't have to convince yourself to press the eject button in the heat of a big move in the price of that investment. Don't try to predict tops or bottoms. They are extremely hard to guess and things often turn so fast that you can't act on them in time anyway. Get out of an investment when it has met your goal or is going to far in the wrong direction. If you find yourself saying ""It has to come back eventually"", slap yourself.  When you are trying to decide whether to stay in the investment or bail, the most important question is ""If I had the current cash value of the stock instead of shares, would I buy it today?"" because essentially that is what you are doing when you stick with an investment. 6) Don't invest in fads When you are investing you become acutely sensitive to everyone's opinions on what investment is hot and what is not. If everyone is talking about a particular investment, avoid it. The more enthusiastic people are about it (even experts) the MORE you should avoid it. When everyone starts forming investment clubs at work and the stock market seems to be the preferred topic of conversation at every party you go to. Get out!  I'm a big fan of contrarian investing. Take profits when it feels like all the momentum is going into the market, and buy in when everyone seems to be running for the doors." The best way I know of is to join an investment club.  They club will act like a mutual fund, investing in stocks researched and selected by the group.  Taking part in research and presenting results to the group for peer review is an excellent way to learn.  You'll learn what is a good reason to invest and what isn't. You'll probably pick both winners and losers. The goal of participation is education.  Some people learn how to invest and continue happily doing so. Others learn how to invest in single stocks and learn it is not for them. "You bring up some very high level stuff, each of which can be the subject of a life's work.  For taxes, I first read J.K. Lasser's Your Income Tax. I actually read it cover to cover instead of using it as a reference guide. I hit topics that I'd otherwise have never looked up on purpose. Once you familiarize yourself with the current tax code, keeping up on changes to the code goes pretty well.  As far as investing goes, William Bernstein has two titles, “The Four Pillars of Investing” and “The Intelligent Asset Allocator”. Others have liked “Personal Finance for Dummies” by Eric Tyson. These are great introductory books, the classic is “Security Analysis” by Graham & Dodd. Warren Buffet was a student of Benjamin Graham and he did fine applying these principals.  For retirement, The Number by Lee Eisenberg was a good read. I consider retirement an extension of the investing education, only the money flow is reversed, withdrawals, no new deposits. Of course this is an oversimplification.  In my own reading list, I include books such as “Extraordinary Popular Delusions & the Madness of Crowds” by Charles MacKay and “The Great Crash 1929″ by John Kenneth Galbraith. Understanding how these bubbles happen is critical to a complete education. I'm convinced that when it comes to investing if I can teach my daughter to understand the concept of Risk and Reward and to understand there are certain common alerts to such bubbles, the simplest of which is the term ""this time is different"" as though a hundred years of market dynamics can change in a matter of a few years.  Last, there are books like ""Stop Acting Rich"" by Dr Thomas Stanley. Not quite investing, per se, but a good read to get an idea of how we have a distorted view of certain signs of wealth.  Keep reading, no harm in taking books out of the library and returning if the first chapter or two disappoints." Most programming for financial engineering will be in C++, Python, R, or MATLAB; some books written by Mark Joshi or Daniel Duffy may be a good place to look for how C++ is used in FE (Duffy also has an online C++ course that's quite good).   If you have a physics/math background then you likely have 90% of the required maths, such as calculus, linear algebra, probability and statistics. I would recommend taking a course/reading a book on advanced probability, real analysis, and stochastic calculus, but these are not trivial subjects. If you are more interested in learning specifically about how math is applied to FE you can take a look at a book such as [a primer for the mathematics of FE](https://www.amazon.com/dp/0979757622/ref=cm_sw_r_cp_api_2KumzbMN6ZPE5).  Also, check out online forums that discuss this such as [quantent](quantnet.com). "It reminds me of the Efficient Market Hypothesis, except that just states in its weakest form that the current market price accounts for all information embedded in previous market prices. In other words, people buying today at 42 know it was selling for 40 yesterday, and the patterns and such. To say that stock is memoryless strikes me as not quite right -- to the extent that stocks are valued based on earnings, much of what we infer about future earnings relies on past and present earnings. One obvious counterexample to this ""memoryless"" claim is bankruptcy. If a stock files bankruptcy, and there isn't enough money to pay senior debt, your shares are worth 0 in perpetuity."