
In this video, we learn about two quant roles that have a great deal of skills overlap but with heavier emphasis on certain areas.
In this video, we look at the quantitative developer skill set in more detail.
Here, we define production-grade code and see how to ensure our code is of sufficient quality for a production environment.
Here, we run through the topics we'll cover in this course and that will expand your knowledge of the Python development ecosystem.
In this lecture, we have a look at potential areas of research for quantitative developers and researchers, and see why research into financial markets needs to follow the scientific process.
In this lecture, we take a look at some key finance journals, early-access platforms and other tools you can use for discovering research and academic literature.
In this lecture, we talk about the process of conducting a literature review and what techniques and tools are available for you to process and contain this information.
This lecture carries on from the previous where we conclude with a demonstration of the note-taking application, Obsidian, and showcase Hudson & Thames second brain known as 'Mary's room'.
This video serves as an introduction to simple code roadmaps and how you can use them to structure the implementation of code based on your research topic of interest. We also have a look at some past examples code roadmaps used at Hudson & Thames.
In this video we compare Linux and other popular operating systems, and make the case for Linux in quantitative development.
In this video we introduce Ubuntu and run through some generic installation steps to prepare you for your own Ubuntu installation!
In this video we head to the terminal and examine some commonly used Bash commands.
In this video we quickly introduce the Ubuntu desktop environment before looking at different ways one can install software on your Ubuntu machine. Following that, we look at user privileges and gaining administrative or 'root' privileges.
In this video we discuss the tools we gain from using modern integrated development environments (IDEs).
In this video we will install and introduce PyCharm, a very powerful Python IDE. In this video and the next two, we will run through some features of PyCharm including context-dependent actions, refactoring and debugging. We highly recommend you go through PyCharm learning tutorial, though!
In this video, we run through some basic refactoring functionality in PyCharm. Refactoring will be covered again in a later module, so if you want a bit more practice with refactoring, the PyCharm learning tutorial would be the place to do so!
In this video, we learn about debugging and get to grips with PyCharm's built-in debugger.
In this video, we will show you how to install and start using Jupyter Lab.
In this video, you will be introduced to the topic of version control, why version control systems (VCS) are necessary, what VCSs are out there and the different types of VCSs.
In this video, you will learn more about Git, including why it is so popular, and get a high-level overview of Git's fundamental concepts and features.
In this video, you will learn how to set basic configuration variables in Git and create your first Git repository.
In this video, you will learn about the different states that your files may be in when tracking them using Git.
In this video, you will learn some common Git commands and see the states your files may be in in practice.
In this video, you will learn about remote repositories, how to clone existing Git repositories and how to share changes with them.
In this video, you will learn about branches, their associated commands, and how branching aids parallel and concurrent development.
In this video, you will learn about the different types of workflows and branching strategies used in development.
In this video, we'll see branching and merging commands on the command line, and learn how Git sets up our branches to track remote branches.
In this video, we will see when Git is able to handle the branch merging process automatically, and when it is not.
In this video, you will learn about the two options for resolving merge conflicts, first on a code-hosting platform like GitHub, or on the command line.
In this video, we will run through some recommended best practices that will help limit the number and severity of merge conflicts.
In this video, you will learn about the types of changes that you should be committing in Git.
In this section, you will learn about the structure of good commit messages.
In this section, you will learn about techniques for organising your commits to maintain a coherent development history.
In this video, you will learn about stashing your work in progress before switching branches.
In this section, you will learn about a crucial part of version control, tagging version numbers!
In this video, we finish the module on Git with a demonstration on discarding changes with the 'git revert' command.
In this video, we will be introducing the concept of virtual environments and why they are so important for Python development.
In this video, we will show you how to create virtual environments using Python's builtin module venv as well as virtualenv, a third-party tool also used by default in PyCharm.
In this video, we'll be introducing the basic usage of pip (of which you'll already likely be aware) and seeing how to use it alongside virtual environments.
In this video, we will be looking at Poetry for managing your dependencies and virtual environments.
In this video, we run through some general, language-agnostic principles of creating clean code.
In this section, we speak about clean code in Python specifically and run through the Google Python Style Guide and how it enables us to write clean, good-looking code.
This is a continuation of the previous video where we conclude our run through the Google Python Style Guide.
In this video, we run through the basics of formatters and linters, and what they aim to achieve.
In this follow-up video, we run through the formatter Black and the linter Pylint on the command line using Poetry as the virtual environment manager.
In the last video of this section, we see how Black is integrated into PyCharm, how to set up Pylint in PyCharm and how to specify configurations for both tools.
In this video, we introduce Python type annotations as a language construct to improve readability and reemphasize how easy it is to use in PyCharm.
In this introductory video, we'll talk about what exactly is refactoring and what we aim to achieve by refactoring.
Here, we look at common challenges that we'll face when inheriting code.
In this video, we'll look at some commonly implemented code smells that can make their way into yours or others' code.
In this video, we have another look at code smells by considering which common refactoring techniques we can apply to deal with them.
Read the assignment instructions and download kca_assignment.zip. See the attached solution once you are finished with your own attempt at refactoring the code.
In this video, we cover the role and purpose of documentation, as well as the different types of documentation or may encounter or write.
In this video, we cover some key characteristics of good documentation, considerations regarding the technical level of documentation and the main objectives of having documentation.
In this video, we run through some best documentation practices such as achieving consistency through the use of style guides, using version control for your documentation and integrating your documentation into your development workflow.
In this video, we outline the importance of README files and what is generally included in them.
We have already seen the Google specification for docstrings in the Clean Code section, now we will showcase docstrings with a toy example by creating a package which we will also use to create documentation with Sphinx.
In this video, we run through a reStructured Text primer, equipping you with the basics of this lightweight markup language used by Sphinx to generate documentation.
In this video, we introduce Sphinx as a tool to automate the process of building documentation.
In this video, we continue our introduction to Sphinx, covering more extensions, including how to build API references from already-documented source code.
In this video, we introduce Read the Docs and demonstrate how to create external documentation from your repository hosted on GitHub.
In this video, we cover changelogs, including why they are an important piece of documentation and how to include them in your project's repository.
Embark on a transformative journey into the world of Python programming tailored for the high-octane field of quantitative finance with our university-semester length course, Writing Production-Grade Code for Quantitative Developers. This course is meticulously designed to bridge the gap between academic learning and the dynamic requirements of the quantitative development sector, focusing on the nuances of coding that are vital for success in this challenging field.
Our curriculum is a deep dive into the universe of production-ready Python coding, where every module is an essential building block towards becoming an exceptional quantitative developer. We begin with an exploration of the roles and responsibilities of quantitative developers, delving into the specific skills and tools required in the industry, and how Python plays a pivotal role. You'll learn about the latest industry trends, the increasing demand for proficient quantitative developers, and the characteristics that make Python code production-ready.
The course covers a broad spectrum of topics, including using Linux in your Python development workflow, techniques in structuring and organizing projects, mastering Git for source control, and best practices in creating quality code and documentation. You'll gain hands-on experience in working with the wider Python ecosystem, including virtual environments and dependency management.
By the end of this course, you won't just learn Python; you will have honed a skill set that makes you an invaluable asset in the world of quantitative finance, ready to tackle the challenges faced by top hedge funds around the globe. Join us and transform your understanding of Python in quantitative finance, setting you on a path to career excellence.