I’ve written a lot about Python over the past few years, explaining how it fits in with the ecosystem of other languages. I’ve also discussed good resources for learning of Python, in particular books and tutorial websites. There are two ways that I can see learning programming language. The first way is a formal module, kind of like the ones I did at university or indeed many of the coding boot camps. Whilst, I don’t know the specific pros and cons of each course around, I do know that learning programming in a formal way, in particular in terms understanding the more generic parts of software engineering (how to do design a system?). If you’re looking a data science boot camp, DataCamp is worth a look, a link of which was posted by Eduard Silantyev on my LinkedIn feed. I haven’t taken the course myself, but the modules look to cover all quite a few of the basics for that you’ll need to get up to speed on data crunching with Python (and R).
Whilst the process is quicker to learn Python if you already know another programming language, it will still not be instant. For example it takes time to learn the syntax and in particular the APIs of various Python libraries. Whilst of course it is possible to look up APIs on Google, if you can remember a couple of heavily used commands, it will obviously make your coding somewhat quicker. For example, the pandas library in Python is a very well featured time series library. I’m not going to claim to know every single API call in pandas, but having a good grasp of what the library does, how to create DataFrames and Series objects (the pros and cons of each), the major API calls, understanding how numpy fits in with pandas is an important base for everything else in the library.
So how do you find the motivation to put aside time to learn a programming language, in particular if you have a full time job? One of the best ways I’ve find to motivate learning a new programming language whilst working, is when I have a particular problem to solve. So whilst it’ll take time to learn the language in the first place, at least you can see a direct way to use that language to save time in the future and to justify the time you spend to yourself (and maybe your boss!). In financial markets there are endless motivating problems that you can find to take up Python, given that problems revolve around crunching market data (and there’s a lot of that!). I’ve put a few motivating problems below, which I used myself to learn Python:
- Analysing a dataset which is too big for Excel (high frequency data)
- Updating a model on a regular basis, in an automated fashion, without having to resort to a patchwork of VBA
- Download data from your market data sources without ended manual intervention on spreadsheets
- Backtesting a trading strategy
- Automating capture of market data
- Simply the fact that you’ll save hours of drudgery updating spreadsheets!
If you have a data science problem to solve urgently, hopefully it’ll make it easier to motivate learning Python!