Self paced roadmap to building algorithmic trading software and systems powered by AI and Data Science.
Welcome to the Algorithmic Trading Learning Roadmap repository! This repository provides a structured, comprehensive roadmap for developing expertise in the core skills needed to become a proficient algorithmic trader. It includes resources, certifications, and project ideas across various fields that intersect in the world of algorithmic trading, such as AI, data science, finance, software engineering, cloud computing, and more.
This repository is organized in a hierarchical folder structure, each top-level folder focusing on a key area of knowledge essential for algorithmic trading. Each top-level folder contains topics and Markdown files listing curated resources, recommended certifications, project ideas, and guidelines to help build foundational and advanced skills in that topic.
- Purpose
- Repository Structure
- Usage Guide
- Branches and Focus Areas
- Getting Started
- Contributing
- License
After deciding that I wanted to undertake the enormous task of becoming an algorithmic trader, I noticed there was a lot of information across many domains that I would need to master. I learn best when I have a structured list of things outlining what I need to learn. The purpose of this repository is to provide my self-paced, modular curated learning template and resources to help other aspiring algorithmic traders build proficiency in:
- Artificial Intelligence: Applying machine learning techniques to create predictive models for trading.
- Algorithmic Trading: Developing, testing, and optimizing trading algorithms.
- Cloud & DevOps: Deploying scalable trading algorithms on cloud platforms with CI/CD pipelines.
- Computer Science: Understanding algorithms, data structures, and programming languages to build efficient trading systems.
- Data Science: Analyzing, processing, and interpreting large datasets to make data-driven decisions.
- Finance: Understanding financial markets, instruments, and quantitative finance principles.
- Mathematics: Applying mathematical principles such as probability, statistics, and calculus in financial modelling.
- General Skills: Technical Writing, Databases, Project management, and more.
- Software Engineering: Writing clean, efficient code and following best practices for project deployment and version control.
This repository is designed to be used as a local repository, to organise resources, and learning materials, adaptable for individual use or collaboration, and suitable for any level of experience.
After 15 years as a technician, and completing postgraduate studies in cybersecurity, I realised that I am ready to retire, and since I’ve yet to hit the lottery, algorithmic trading felt like the next best shot at financial independence... with the added benefit of needing less luck and more skill.
But making it in this space requires more than just enthusiasm. It demands fluency across multiple disciplines:
- Software engineering and version control
- Mathematics and statistics
- Data science and machine learning
- Financial markets and trading strategies
- Cloud infrastructure and automation
After accumulating hundreds of gigabytes of books, courses and materials, I knew that I needed a system to avoid drowning in content. I also wanted to find the best possible resources without wasting time jumping between outdated blog posts, half-finished courses, and noisy forums — so I’ve gathered them all in one place. With community input and regular updates, we can all skip the fluff and focus on learning what actually matters.
And this is what I came up with, a modular learning system I’m building to keep myself accountable, organized, and always moving forward.
If you’re also chasing financial freedom through algorithmic trading — and want a roadmap that respects both depth and structure — you’re in good company.
👉 Feel free to star the repo, share it with others, or open a pull request to improve any section — let’s build this together.
The design of this repository is modular and hierarchical, allowing for easy navigation and organization of resources. The philosophy behind this structure is to create a clear and logical flow of information, making it easier for learners to follow their own learning paths and a place to store and organise content. Each domain is broken down into subdomains, with each subdomain containing specific topics and resources. The main components include:
- Assets: Storage for compelte projects, anki flashcards, obsidian vaults for downloading and storing your own resources.
- Domains: Each domain represents a key area of knowledge, such as "Artificial Intelligence" or "Finance."
- Subject: Each subfolder within a domain contains a specific topic, such as "Machine Learning" or "Deep Learning." for Artificial Intelligence.
- Markdown files: Each domain and subject contains a README.md file outlining the topic and a list of resources, including books, online courses, and project ideas.
- Resources: Each Subject contains a folders for the storage of your own resources, including:
- Books: Recommended textbooks and reference materials.
- Online Courses: Links to online courses and certifications.
- Projects: Ideas for practical projects to apply the knowledge gained.
.
├── \assets # Assets for the project
│ ├── \anki # Anki flashcards
│ └── \img # Images for the project README's
└── roadmap # Main directory for the roadmap domains and focus areas
├── artificial-intelligence
│ ├── artificial-intelligence-foundations
│ ├── deep-neural-networks
│ ├── machine-learning
│ ├── natural-language-processing
│ ├── optimisation-techniques
│ ├── probabilistic-models
│ ├── reinforcement-learning
│ └── signal-processing
├── cloud-devops
│ ├── amazon-web-services
│ ├── cloud
│ ├── devops
│ ├── docker
│ ├── git
│ ├── github-actions
│ ├── google-cloud-platform
│ ├── kubernetes
│ └── microsoft-azure
├── computer-science
│ ├── compilers
│ ├── computer-architecture
│ ├── cuda
│ ├── data-structures
│ ├── operating-systems
│ ├── theory
│ ├── algorithms
│ ├── assembly-language
│ ├── c++
│ ├── concurrency
│ ├── network-programming
│ ├── object-oriented-programming
│ ├── programming
│ └── python
├── data-science
│ ├── data-analytics
│ ├── data-science
│ ├── data-visualisation
│ ├── data-wrangling
│ ├── r-language
│ ├── research-methods
│ ├── statistical-data-analysis
│ └── time-series-analysis
├── finance
│ ├── algorithmic-trading
│ ├── cryptocurrency
│ ├── econometrics
│ ├── fintech
│ ├── forex
│ ├── high-frequency-trading
│ ├── options
│ ├── portfolio-optimisation
│ ├── quantitative-finance
│ ├── risk-management
│ └── technical-analysis
├── general-skills
│ ├── database-fundamentals
│ ├── excel
│ ├── linux
│ ├── networking
│ ├── security
│ ├── soft-skills
│ ├── sql
│ └── technical-writing
├── mathematics
│ ├── calculus
│ ├── discrete-mathematics
│ ├── financial-mathematics
│ ├── game-theory
│ ├── information-theory
│ ├── linear-algebra
│ ├── mathematics-foundations
│ ├── optimisation
│ ├── ordinary-differential-equations
│ ├── partial-differential-equations
│ ├── principal-component-analysis
│ ├── probability-statistics
│ └── stochastic-processes
└── software-engineering
├── clean-code
├── design-patterns
├── documentation
├── legacy-code
├── project-management
├── refactoring
├── requirements-engineering
├── software-architecture
├── software-engineering
├── software-testing
├── system-design
├── version-control
└── web-development
Select a Topic: Start with the topic area that aligns best with your current lack of knowledge or an interest area (e.g., Data Science, Finance).
Follow the Roadmap: Each domain README
contains a progressive list of topics, some mandatory, some nice to know and others for further learning. Start with the basics and work through each section, aiming to complete recommended certifications and projects.
Build Projects: Apply your newly gained skills to projects recommended within each subject.
Document Your Progress: Use a note-taking application such as Obsidian or a Trello board to keep track of completed courses, certifications, and projects.
Collaborate and Share: Share your progress and insights with the community. Open pull requests to suggest new resources or improvements.
To get started collating your own projects and resources, clone this repository:
git clone https://github.com/rmcmillan34/algorithmic-trading-learning-roadmap.git
cd algorithmic-trading-learning-roadmap
and then peruse the README.md
files in each domain and subject folder to find resources, recommended courses, and project ideas.
Navigate through the following domains and focus areas to find resources and topics that interest you:
- Artificial Intelligence: Resources on machine learning, deep learning, and reinforcement learning, specifically for algorithmic trading applications.
- Artificial Intelligence - Link to Artificial Intelligence Topic
- Machine Learning - Link to Machine Learning Topic
- Deep Learning - Link to Deep Learning
- Reinforcement Learning - Link to Reinforcement Learning Topic
- Natural Language Processing - Link to NLP Topic
- Cloud & DevOps: Skills for deploying and managing algorithms in the cloud using CI/CD, Docker, Kubernetes, etc.
- Amazon Web Services (AWS) - Link to AWS Topic
- Cloud Computing - Link to Cloud Computing Topic
- DevOps - Link to DevOps Topic
- Docker - Link to Docker Topic
- Git - Link to Git Topic
- GitHub Actions - Link to GitHub Actions Topic
- Google Cloud Platform (GCP) - Link to Google Cloud Topic
- Kubernetes - Link to Kubernetes Topic
- Microsoft Azure - Link to Azure Topic
- Computer Science: Fundamental concepts in algorithms, data structures, and programming languages.
- Compilers - Link to Compilers Topic
- Computer Architecture - Link to Computer Architecture Topic
- CUDA Programming - Link to CUDA Topic
- Data Structures - Link to Data Structures Topic
- Operating Systems - Link to Operating Systems Topic
- Theory of Computation - Link to Theory of Computation Topic
- Algorithms - Link to Algorithms Topic
- Assembly Language - Link to Assembly Language Topic
- C++ Programming - Link to C++ Programming Topic
- Concurrency - Link to Concurrency Topic
- Network Programming - Link to Network Programming Topic
- Object-Oriented Programming (OOP) - Link to OOP Topic
- Python Programming - Link to Python Programming Topic
- Data Science: Foundational and advanced topics in data processing, analysis, and visualization.
- Data Science - Link to Data Science Topic
- Data Analytics - Link to Data Analytics Topic
- Data Visualization - Link to Data Visualization Topic
- Data Mining - Link to Data Mining Topic
- R Programming - Link to R Programming Topic
- Research Methods - Link to Research Methods Topic
- Statistical Data Analysis - Link to Statistical Data Analysis Topic
- Time Series Analysis - Link to Time Series Analysis Topic
- Finance: Core finance principles, quantitative analysis, and financial markets.
- Algorithmic Trading - Link to Algorithmic Trading Topic
- Cryptocurrencies - Link to Cryptocurrency Topic
- FinTech - Link to FinTech Topic
- Forex Markets - Link to Forex Markets Topic
- High Frequency Trading - Link to High Frequency Trading Topic
- Options Trading - Link to Options Trading Topic
- Portfolio Management - Link to Portfolio Management Topic
- Quantitative Finance - Link to Quantitative Finance Topic
- Risk Management - Link to Risk Management Topic
- Technical Analysis - Link to Technical Analysis Topic
- General Skills: Supplementary skills for programming, system administration, and project management.
- Database Fundamentals: - Link to Databases Topic
- Excel - Link to Excel Topic
- Linux - Link to Linux Topic
- Networking - Link to Networking Topic
- Security - Link to Security Topic
- Soft Skills - Link to Soft Skills Topic
- SQL - Link to SQL Topic
- Technical Writing - Link to Technical Writing Topic
- Mathematics: Foundational mathematics skills, covering probability, statistics, calculus, and linear algebra.
- Calculus - Link to Calculus Topic
- Discrete Mathematics - Link to Discrete Mathematics Topic
- Financial Mathematics - Link to Financial Mathematics Topic
- Games Theory - Link to Games Theory Topic
- Information Theory - Link to Information Theory Topic
- Linear Algebra - Link to Linear Algebra Topic
- Mathematics Foundations - Link to Mathematics Foundations
- Optimisation - Link to Optimisation Topic
- Principal Component Analysis (PCA) - Link to Principal Component Analysis Topic
- Probability and Statistics - Link to Probability and Statistics Topic
- Stochastic Processes - Link to Stochastic Processes Topic
- Software Engineering: Best practices in coding, software design, and project management.
- Clean Code - Link to Clean Code Topic
- Design Patterns - Link to Design Patterns Topic
- Documentation - Link to Documentation Topic
- Legacy Code - Link to Legacy Code Topic
- Project Management - Link to Project Management Topic
- Refactoring - Link to Refactoring Topic
- Requirements Engineering - Link to Requirements Engineering Topic
- Software Architecture - Link to Software Architecture Topic
- Software Testing - Link to Software Testing Topic
- System Design - Link to System Design Topic
- Version Control - Link to Version Control Topic
- Web Development - Link to Web Development Topic
Python
: Primary language for algorithmic trading projects.Jupyter Notebooks
: For data science and machine learning experimentation.Git
: For version control and collaboration.Cloud Services
: Set up accounts on AWS, GCP, or Azure for cloud projects.Anki
: For spaced repetition learning and flashcards.Obsidian
: For note-taking and organizing resources.Trello
: For project management and tracking progress.
We welcome contributions to expand and improve the resources in this repository! To contribute:
-
Fork this Repository:
- Create a new branch for your contribution, sourcing from the appropriate category branch.
-
Make Your Changes:
- Add or improve resources and ensure they are high-quality, open-access, and relevant to algorithmic trading.
-
Submit a Pull Request:
- Provide a clear description of your changes and their impact on the project.
-
Trello Board - Explore the Roadmap and Collaborate The Trello board outlines the learning roadmap and tasks for contributors. Feel free to join the board to view tasks, contribute to ongoing discussions, and track project progress.
-
Project Wiki - Detailed Documentation and Learning Materials Our Wiki is a comprehensive resource for contributors and learners. It includes detailed documentation, guides, and additional resources to help you navigate the project.
-
Discussion Board - Join the Conversation Use the GitHub Discussions page to share ideas, ask questions, or propose new directions for the project.
-
GitHub Issues - Report Technical Problems Found a bug or have a technical issue? Use the GitHub Issues page to report it, and we'll address it promptly.
I'd like to make this a community project and learn from everyone! Join the conversation! Visit our Discussions section to:
- Ask questions about the syllabus or specific topics.
- Share your projects and get feedback.
- Discover new resources and insights.
This project is licensed under the MIT License - you are free to use, modify, and distribute this template with attribution. See the LICENSE file for more details.