Machine learning is one of the most sought-after skills in the South African tech job market right now. Python is the language you'll use to build it. But between "I want to learn ML" and actually training and deploying a model, there's a lot of ground to cover — and a lot of conflicting advice online about where to start. This article gives you a clear, honest picture of what you actually need.
The short answer: You need solid Python fundamentals, basic linear algebra and statistics, and familiarity with NumPy and Pandas before ML concepts start to stick. The good news is that a structured 40-hour course covers all of this together, in the right order.
Why Python Is the Language of Machine Learning
Python didn't become the dominant ML language by accident. It has a readable, expressive syntax that lets you focus on the problem rather than the language. Its ecosystem of scientific computing libraries — NumPy, Pandas, scikit-learn, TensorFlow, PyTorch, Keras — has no equal in any other language. And the research community releases new models and techniques as Python libraries first, which means Python skills give you immediate access to the cutting edge.
If you already know Java, JavaScript, or PHP, Python will feel familiar in structure but lighter in syntax. Most developers pick it up quickly. The harder part is the ML concepts, not the language itself.
The Python Skills You Need Before You Start ML
You don't need to be a Python expert, but you do need to be comfortable with:
- Data types and structures: lists, dictionaries, tuples, and sets — and when to use each
- Functions and scope: writing clean, reusable functions; understanding return values
- List comprehensions: these are everywhere in data processing code
- File I/O and working with CSVs: most ML starts with reading data from files
- Object-oriented programming basics: enough to understand how ML library objects work
- Error handling: try/except — data pipelines fail in unexpected ways
If you're starting from zero, building this Python foundation takes about 10–15 hours of structured practice. It's the first block of Code College's Python for AI & Machine Learning course.
The Maths You Actually Need (It's Less Than You Think)
Machine learning has a reputation for requiring deep mathematical knowledge. In practice, to use existing ML libraries and understand what your models are doing, you need working knowledge of:
- Statistics: mean, median, standard deviation, distributions, correlation. If you can interpret a box plot and explain what variance means, you're ready.
- Linear algebra basics: what a vector and matrix are, how matrix multiplication works. You don't need to derive proofs — you need to understand why a dataset of 1,000 rows × 20 features is a 1000×20 matrix.
- Calculus (conceptually): understanding that gradient descent is "moving downhill" toward a minimum loss is enough to start. You don't need to differentiate functions by hand.
The maths becomes clearer as you work with real examples. Understanding why a model makes predictions solidifies the theory better than studying maths in isolation.
The Key Libraries: Your ML Toolkit
NumPy
NumPy provides the fundamental data structure for ML: the n-dimensional array (ndarray). Nearly every other ML library is built on top of NumPy. You'll use it to represent datasets as arrays, perform vectorised operations (much faster than Python loops), and handle mathematical transformations on data.
Pandas
Pandas gives you the DataFrame — a tabular data structure that makes loading, cleaning, and exploring datasets intuitive. In real ML work, 60–70% of your time is spent on data preparation ("data wrangling"), and Pandas is where that happens. Learning to filter, group, merge, and reshape DataFrames is essential.
scikit-learn
scikit-learn is the workhorse library for classical machine learning. It provides clean, consistent APIs for supervised learning (regression, classification), unsupervised learning (clustering, dimensionality reduction), model evaluation, and preprocessing. Its fit() / predict() / score() pattern is consistent across all algorithms, making it fast to experiment.
Keras / TensorFlow
For neural networks and deep learning, Keras (integrated into TensorFlow) provides a high-level API that lets you build and train neural networks without needing to implement the maths from scratch. It's the right starting point before moving to the lower-level PyTorch API used in most cutting-edge research.
Supervised vs Unsupervised Learning: The Conceptual Foundation
Supervised learning means training a model on labelled data — input examples paired with the correct output. The model learns to map inputs to outputs. Examples: predicting house prices from features (regression), classifying emails as spam or not spam (classification).
Unsupervised learning means finding patterns in unlabelled data. There are no "correct answers" to train against. Examples: grouping customers into segments (clustering), reducing 50 features to 2 for visualisation (dimensionality reduction).
Most beginners start with supervised learning — the feedback loop is clearer and the business applications are more obvious. Unsupervised techniques become important as you work with larger, messier real-world datasets.
From ML to AI APIs: Two Different Skills
It's worth drawing a distinction that trips up many beginners. Training your own ML models (what this article is about) is different from calling pre-trained AI APIs like OpenAI or Google Gemini. Both are valuable skills, but they use different tools and suit different problems.
Training your own model makes sense when you have proprietary data, need a specialised task, or want to avoid per-query API costs at scale. Calling an API makes sense when you need general-purpose language understanding, image analysis, or audio transcription and don't have the data or compute to train your own model. Most production AI applications combine both approaches.
The Fastest Path to ML Proficiency in South Africa
Self-study is possible, but the learning curve is steep when you're navigating Python fundamentals, data wrangling, and ML concepts simultaneously without guidance. A structured course collapses the learning time by sequencing the content correctly and providing hands-on projects that connect theory to real problems.
Code College's Python for AI & Machine Learning short course covers Python fundamentals, NumPy, Pandas, scikit-learn, and Keras in 40 hours — delivered in Johannesburg or online, with small class sizes and instructor-led training. It's designed for developers and professionals who want to add ML to their skillset, not complete beginners to programming.