Learn AI Series (#156) - What's Next: Your AI Journey

What will I learn?
- You will learn how far you've come across 156 episodes and what that knowledge actually means;
- the four honest paths forward - research, engineering, product, domain - what each one demands and how to pick;
- how to contribute back to the community and why that is the highest-leverage learning you can do;
- the open problems worth caring about, the ones that could define the next decade;
- AI as a craft: the mindset of deliberate practice over chasing every shiny new paper;
- a personal, honest word on what makes this field worth staying in.
Requirements
- A working modern computer running macOS, Windows or Ubuntu;
- 155 episodes of context behind you. You've earned this one.
Difficulty
- Advanced
Curriculum (of the Learn AI Series):
- Learn AI Series (#1) - What Machine Learning Actually Is
- Learn AI Series (#2) - Setting Up Your AI Workbench - Python and NumPy
- Learn AI Series (#3) - Your Data Is Just Numbers - How Machines See the World
- Learn AI Series (#4) - Your First Prediction - No Math, Just Intuition
- Learn AI Series (#5) - Patterns in Data - What "Learning" Actually Looks Like
- Learn AI Series (#6) - From Intuition to Math - Why We Need Formulas
- Learn AI Series (#7) - The Training Loop - See It Work Step by Step
- Learn AI Series (#8) - The Math You Actually Need (Part 1) - Linear Algebra
- Learn AI Series (#9) - The Math You Actually Need (Part 2) - Calculus and Probability
- Learn AI Series (#10) - Your First ML Model - Linear Regression From Scratch
- Learn AI Series (#11) - Making Linear Regression Real
- Learn AI Series (#12) - Classification - Logistic Regression From Scratch
- Learn AI Series (#13) - Evaluation - How to Know If Your Model Actually Works
- Learn AI Series (#14) - Data Preparation - The 80% Nobody Talks About
- Learn AI Series (#15) - Feature Engineering and Selection
- Learn AI Series (#16) - Scikit-Learn - The Standard Library of ML
- Learn AI Series (#17) - Decision Trees - How Machines Make Decisions
- Learn AI Series (#18) - Random Forests - Wisdom of Crowds
- Learn AI Series (#19) - Gradient Boosting - The Kaggle Champion
- Learn AI Series (#20) - Support Vector Machines - Drawing the Perfect Boundary
- Learn AI Series (#21) - Mini Project - Predicting Crypto Market Regimes
- Learn AI Series (#22) - K-Means Clustering - Finding Groups
- Learn AI Series (#23) - Advanced Clustering - Beyond K-Means
- Learn AI Series (#24) - Dimensionality Reduction - PCA
- Learn AI Series (#25) - Advanced Dimensionality Reduction - t-SNE and UMAP
- Learn AI Series (#26) - Anomaly Detection - Finding What Doesn't Belong
- Learn AI Series (#27) - Recommendation Systems - "Users Like You Also Liked..."
- Learn AI Series (#28) - Time Series Fundamentals - When Order Matters
- Learn AI Series (#29) - Time Series Forecasting - Predicting What Comes Next
- Learn AI Series (#30) - Natural Language Processing - Text as Data
- Learn AI Series (#31) - Word Embeddings - Meaning in Numbers
- Learn AI Series (#32) - Bayesian Methods - Thinking in Probabilities
- Learn AI Series (#33) - Ensemble Methods Deep Dive - Stacking and Blending
- Learn AI Series (#34) - ML Engineering - From Notebook to Production
- Learn AI Series (#35) - Data Ethics and Bias in ML
- Learn AI Series (#36) - Mini Project - Complete ML Pipeline
- Learn AI Series (#37) - The Perceptron - Where It All Started
- Learn AI Series (#38) - Neural Networks From Scratch - Forward Pass
- Learn AI Series (#39) - Neural Networks From Scratch - Backpropagation
- Learn AI Series (#40) - Training Neural Networks - Practical Challenges
- Learn AI Series (#41) - Optimization Algorithms - SGD, Momentum, Adam
- Learn AI Series (#42) - PyTorch Fundamentals - Tensors and Autograd
- Learn AI Series (#43) - PyTorch Data and Training
- Learn AI Series (#44) - PyTorch nn.Module - Building Real Networks
- Learn AI Series (#45) - Convolutional Neural Networks - Theory
- Learn AI Series (#46) - CNNs in Practice - Classic to Modern Architectures
- Learn AI Series (#47) - CNN Applications - Detection, Segmentation, Style Transfer
- Learn AI Series (#48) - Recurrent Neural Networks - Sequences
- Learn AI Series (#49) - LSTM and GRU - Solving the Memory Problem
- Learn AI Series (#50) - Sequence-to-Sequence Models
- Learn AI Series (#51) - Attention Mechanisms
- Learn AI Series (#52) - The Transformer Architecture (Part 1)
- Learn AI Series (#53) - The Transformer Architecture (Part 2)
- Learn AI Series (#54) - Vision Transformers
- Learn AI Series (#55) - Generative Adversarial Networks
- Learn AI Series (#56) - Mini Project - Building a Transformer From Scratch
- Learn AI Series (#57) - Language Modeling - Predicting the Next Word
- Learn AI Series (#58) - GPT Architecture - Decoder-Only Transformers
- Learn AI Series (#59) - BERT and Encoder Models
- Learn AI Series (#60) - Training Large Language Models
- Learn AI Series (#61) - Instruction Tuning and Alignment
- Learn AI Series (#62) - Prompt Engineering - Getting the Most from LLMs
- Learn AI Series (#63) - Embeddings and Vector Search
- Learn AI Series (#64) - Retrieval-Augmented Generation (RAG) - Basics
- Learn AI Series (#65) - RAG - Advanced Techniques
- Learn AI Series (#66) - Working with LLM APIs
- Learn AI Series (#67) - Building AI Agents (Part 1) - Foundations
- Learn AI Series (#68) - Building AI Agents (Part 2) - Advanced Patterns
- Learn AI Series (#69) - Fine-Tuning Language Models
- Learn AI Series (#70) - Running Local Models
- Learn AI Series (#71) - Text Generation Techniques
- Learn AI Series (#72) - Tokenization Deep Dive
- Learn AI Series (#73) - LLM Evaluation
- Learn AI Series (#74) - The Hugging Face Ecosystem
- Learn AI Series (#75) - Multimodal Models - Text Meets Vision
- Learn AI Series (#76) - Mini Project - Your Own AI Assistant
- Learn AI Series (#77) - Image Processing Fundamentals
- Learn AI Series (#78) - Object Detection (Part 1) - Foundations
- Learn AI Series (#79) - Object Detection (Part 2) - Modern Approaches
- Learn AI Series (#80) - Image Segmentation
- Learn AI Series (#81) - Pose Estimation and Tracking
- Learn AI Series (#82) - Optical Character Recognition
- Learn AI Series (#83) - Video Understanding
- Learn AI Series (#84) - Generative Images - Diffusion Models (Part 1)
- Learn AI Series (#85) - Generative Images - Diffusion Models (Part 2)
- Learn AI Series (#86) - Image-to-Image and Editing
- Learn AI Series (#87) - 3D Vision
- Learn AI Series (#88) - Face Analysis
- Learn AI Series (#89) - Medical and Scientific Imaging
- Learn AI Series (#90) - Self-Supervised Learning for Vision
- Learn AI Series (#91) - Mini Project - Building a Visual AI System
- Learn AI Series (#92) - Audio Fundamentals for AI
- Learn AI Series (#93) - Speech Recognition
- Learn AI Series (#94) - Text-to-Speech (TTS)
- Learn AI Series (#95) - Audio Classification
- Learn AI Series (#96) - Music Generation
- Learn AI Series (#97) - Speaker Recognition and Diarization
- Learn AI Series (#98) - Natural Language Understanding for Voice
- Learn AI Series (#99) - Audio Enhancement
- Learn AI Series (#100) - Multimodal Audio-Visual Models
- Learn AI Series (#101) - Mini Project: Voice-Controlled AI Assistant
- Learn AI Series (#102) - What Is Reinforcement Learning?
- Learn AI Series (#103) - Multi-Armed Bandits
- Learn AI Series (#104) - Dynamic Programming
- Learn AI Series (#105) - Monte Carlo Methods
- Learn AI Series (#106) - Temporal Difference Learning
- Learn AI Series (#107) - Deep Q-Networks (DQN)
- Learn AI Series (#108) - Policy Gradient Methods
- Learn AI Series (#109) - Advanced Policy Optimization
- Learn AI Series (#110) - Model-Based Reinforcement Learning
- Learn AI Series (#111) - Multi-Agent Reinforcement Learning
- Learn AI Series (#112) - RL for Games
- Learn AI Series (#113) - RL for Real-World Applications
- Learn AI Series (#114) - Inverse Reinforcement Learning
- Learn AI Series (#115) - Offline Reinforcement Learning
- Learn AI Series (#116) - Mini Project: Training a Game-Playing AI
- Learn AI Series (#117) - ML System Design
- Learn AI Series (#118) - Data Engineering for AI
- Learn AI Series (#119) - Experiment Tracking and Reproducibility
- Learn AI Series (#120) - Model Optimization: Making Models Fast
- Learn AI Series (#121) - Model Serving Architecture
- Learn AI Series (#122) - Edge AI: Running Models on Devices
- Learn AI Series (#123) - Monitoring ML in Production
- Learn AI Series (#124) - CI/CD for Machine Learning
- Learn AI Series (#125) - GPU Programming Basics
- Learn AI Series (#126) - Distributed Training
- Learn AI Series (#127) - AI Security
- Learn AI Series (#128) - Privacy-Preserving AI
- Learn AI Series (#129) - AutoML and Neural Architecture Search
- Learn AI Series (#130) - Causal Inference and ML
- Learn AI Series (#131) - Graph Neural Networks
- Learn AI Series (#132) - AI for Structured Data
- Learn AI Series (#133) - Synthetic Data Generation
- Learn AI Series (#134) - AI Infrastructure Economics
- Learn AI Series (#135) - Building AI Teams and Processes
- Learn AI Series (#136) - Mini Project: Production AI Platform
- Learn AI Series (#137) - Foundation Models
- Learn AI Series (#138) - Multimodal AI
- Learn AI Series (#139) - AI for Code
- Learn AI Series (#140) - Scientific AI
- Learn AI Series (#141) - Robotics and Embodied AI
- Learn AI Series (#142) - AI Reasoning and Planning
- Learn AI Series (#143) - Continual Learning
- Learn AI Series (#144) - Few-Shot and Zero-Shot Learning
- Learn AI Series (#145) - Neuro-Symbolic AI
- Learn AI Series (#146) - Explainability and Interpretability
- Learn AI Series (#147) - AI Safety and Alignment
- Learn AI Series (#148) - The Economics of AI
- Learn AI Series (#149) - AI Ethics in Practice
- Learn AI Series (#150) - Emerging Frontiers
- Learn AI Series (#151) - Mini Project: Building Something That Matters
- Learn AI Series (#152) - The AI Practitioner's Toolkit
- Learn AI Series (#153) - Building AI Products
- Learn AI Series (#154) - AI Research: How to Read Papers
- Learn AI Series (#155) - The Complete AI Stack: Architecture Review
- Learn AI Series (#156) - What's Next: Your AI Journey (this post)
Learn AI Series (#156) - What's Next: Your AI Journey
This is episode 156. The last one.
When I sat down to write episode #1, the goal was embarrassingly simple: explain machine learning from absolute zero in a way that respects your intelligence. Not dumbed down. Not hand-wavy. Not "trust me, it works" -- but "here is WHY it works, here is the math, here is the code, and here is what it actually means when the hype gets stripped away."
Did I pull it off? That is genuinely not for me to say -- that is for you to judge. But I will say this much: if you followed along, even partially, even just the arcs that happened to grab you, you now have a foundation that a frightening number of people with "AI Engineer" in their LinkedIn headline simply do not have. You built things from scratch before you reached for the libraries. You know what the libraries are doing under the hood. That is rare, and (trust me on this) it matters more every single year.
Let me use this final episode not to teach one more algorithm, but to be honest with you about where things stand, where they are heading, and what I think you should actually do with all of this. Here we go, one last time.
What you actually know now
Let's be concrete about it, because vague reassurance helps nobody. After 156 episodes, this is genuinely in your hands:
# Not a to-do list. An inventory. Read it slowly -- you can DO all of this now.
what_you_can_do = {
"build_from_scratch": [
"linear + logistic regression, gradient descent by hand (#6-12)",
"a neural network with full backprop, no framework (#37-39)",
"a transformer: attention, multi-head, positional encoding (#51-53)",
"an executor, a bytecode VM's cousin -- the training loop itself (#7)",
],
"use_effectively": [
"scikit-learn for classical ML (#16)",
"PyTorch for deep learning (#42-44)",
"Hugging Face for pretrained everything (#74)",
"XGBoost / LightGBM for the tabular data that pays the bills (#19)",
"FAISS / Chroma for vector search (#63)",
"FastAPI + monitoring to keep a model alive in prod (#121, #123)",
],
"reason_about": [
"when accuracy LIES to you (#13)",
"bias-variance, overfitting, regularization (#11, #40)",
"drift, robustness, and why lab models die in the wild (#123)",
"security, privacy, fairness, and the ethics of what you ship (#127-128, #149)",
],
}
for skill_class, items in what_you_can_do.items():
print(f"{skill_class}: {len(items)} things you couldn't do 156 episodes ago")
That is not nothing. That is a serious foundation, and I do not use that word lightly. Most people who claim this field never build the perceptron by hand (#37). You did. You understand attention not as a magic word but as three matrices and a softmax (#51). That understanding does not evaporate when the next model architecture trends on the timeline -- it is the thing that lets you read that new architecture in an afternoon in stead of a week.
The four ways forward
Episode #152 gave you the skill tree. Here I want to be more honest and more blunt about the four real directions, because each one asks something different of you, and picking wrong wastes years.
ML Engineer / MLOps. You like building systems more than you like tuning models. The model is one component; the machinery around it -- pipelines, serving, monitoring, automation -- is where you create value. This path is in absurdly high demand, because almost every organisation on earth has more model ideas than it has engineering capacity to actually deploy them. Start by deploying one real thing, however small. Keeping a model alive in production for six months will teach you more than any course ever could.
Research / Science. You want to push the frontier itself. This usually means a PhD or a lab position, and I will not sugarcoat it: academic ML research is brutally competitive. Thousands of very smart people fighting over the same conference slots, often with compute you simply cannot match. If this is your path, find a niche. The big labs will always beat you on scale -- so beat them on insight, on a novel problem formulation, on some domain they cannot be bothered to care about. Your math episodes (#8-9) and every from-scratch build (#37-39, #52-53) were the preparation.
Domain Expert / Applied AI. You carry AI into a specific field -- healthcare, agriculture, law, finance, climate, manufacturing. This, I would argue, is where the most real-world impact actually lives. The bottleneck in these domains is almost never raw AI capability; it is finding the person who understands BOTH the domain and the AI deeply enough to connect them. A mediocre model aimed at exactly the right problem with the right data beats a state-of-the-art model aimed at the wrong one. Every time.
Product / Entrepreneurship. You build things people actually use. This fuses technical chops with product sense, user empathy, and a bit of business instinct (episode #153 covered the ground floor). The skill here is emphatically NOT building the best model -- it is spotting the problems where AI creates genuine value and then building the simplest system that delivers it. Most successful AI products are, technically, almost embarrassingly boring.
So how do you choose? You do not choose from the paths -- you choose from yourself. Answer honestly:
def which_path_fits_you(you):
"""
Not a personality quiz. An honesty check. There are no wrong answers,
only dishonest ones. Pick the row that makes you nod, not the one
that sounds impressive at a party.
"""
signals = {
"ml_engineer": you["energised_by"] == "making things run reliably",
"researcher": you["energised_by"] == "not knowing the answer yet",
"domain": you["energised_by"] == "a field you already love that isn't AI",
"product": you["energised_by"] == "someone using the thing you made",
}
fits = [path for path, matches in signals.items() if matches]
if len(fits) == 1:
return f"Go deep on: {fits[0]}. Stop shopping. Start building."
if len(fits) > 1:
return f"Lucky you -- {fits}. Pick one for TWO YEARS, then reassess."
return "None lit up? You're not ready to specialise. Build three more projects first."
print(which_path_fits_you({"energised_by": "someone using the thing you made"}))
# -> Go deep on: product. Stop shopping. Start building.
Nota bene: you do not have to pick forever. You pick for a couple of years, you go deep enough to actually be good, and then you reassess with real information in stead of a beginner's guess. The mistake is not picking the "wrong" path -- it is refusing to commit to any path and staying a permanent tourist across all four.
Contributing to the community
Here is a thing I want you to sit with for a second. This entire series -- 156 episodes of it -- exists ONLY because thousands of people, over decades, shared what they knew for free. Papers on arXiv. Code on GitHub. Answers on forums at 2am from strangers who got nothing for it. The whole field advances because knowledge flows freely, and I mean that almost literally: closed knowledge rots, open knowledge compounds.
You can pay into that pool at any level, and (this is the part people miss) the paying-in is selfishly good for you too:
# Ranked by leverage. Notice the top of the list isn't "give more" --
# it's "give in a way that also teaches YOU the most".
contribution_ladder = [
("teach it", "highest leverage -- you discover your own gaps by explaining"),
("write what you built", "the honest 'here's what actually broke' post nobody writes"),
("reproduce a paper", "undervalued, vital -- if it doesn't reproduce, we NEED to know"),
("open-source a tiny tool", "a loader, a script -- if it saved you time it saves others"),
("answer questions", "solidifies your own understanding, every single time"),
]
def leverage_of(activity):
# Teaching sits on top because it forces total clarity. You cannot
# teach a thing you only 70% understand -- the gaps show instantly.
return len(contribution_ladder) - [a for a, _ in contribution_ladder].index(activity)
for activity, why in contribution_ladder:
print(f"[{leverage_of(activity)}] {activity}: {why}")
The community is drowning in "how to do X" tutorials. What it is starving for is honest accounts of "I tried to do X and here is what actually happened, including the three days I lost to a shape mismatch." Write THOSE. Reproduce a paper and publish the result even -- especially -- when it does not reproduce. Answer the stuck beginner on the forum, because six months ago that beginner was you, and someone answered.
And teaching? Teaching is the cheat code. I have learned more from writing these 156 episodes than from any 156 papers I have read, because you cannot fake your way through explaining something clearly. Every time I sat down to write an episode and realised I could not explain a piece of it simply, that was the field politely informing me that I did not actually understand it yet. Painful. Invaluable.
Open problems worth caring about
The field moves fast, yes, but do not mistake speed for solvedness. Several genuinely fundamental problems remain wide open. If you want to work on something that matters, here is where I would point you:
# Open problems, scored by how much I think they matter and how hard
# they are. High impact + high difficulty = career-defining if you crack
# even a corner of it. These are not solved. Do not let anyone tell you
# otherwise ;-)
open_problems = {
"reasoning": {"impact": 10, "difficulty": 10, "ref": "#142"},
"sample_efficiency": {"impact": 9, "difficulty": 9, "ref": "#144"},
"robustness": {"impact": 9, "difficulty": 8, "ref": "#127"},
"alignment": {"impact": 10, "difficulty": 10, "ref": "#147"},
"energy_efficiency": {"impact": 8, "difficulty": 7, "ref": "#150"},
"accessibility": {"impact": 8, "difficulty": 6, "ref": "#148"},
}
def worth_a_decade(problem):
p = open_problems[problem]
return p["impact"] + p["difficulty"] >= 18 # both high, not just one
for name in open_problems:
verdict = "career-defining" if worth_a_decade(name) else "very worth it"
print(f"{name:20s} -> {verdict}")
Let me put a little flesh on the two I lose sleep over.
Reasoning. Today's best systems -- and I mean the very best -- pattern-match at a level that genuinely astonishes, and then fall flat on their face on a novel logic puzzle a bright ten-year-old handles without breaking stride. Deliberate, step-by-step reasoning over genuinely new problems is not solved. Episode #142 covered the techniques people are throwing at it. It remains wide open, and whoever makes real progress here changes everything downstream.
Alignment. As these systems get more capable, making sure they do what we actually mean -- not the literal thing we typed, not the reward we accidentally specified, but the thing we wanted -- becomes the whole ballgame. Episode #147 introduced the problem. It is not solved. I would argue it is the single most important unsolved problem in the field, and it is not close.
The others -- sample efficiency (humans learn from a handful of examples; our models need millions), robustness (perfect in the lab, brittle in the rain), energy (training one big model can burn a year of a household's electricity), accessibility (the best tools are hoarded by the wealthiest labs) -- every one of them is a genuine, open, worth-your-life problem. Pick one. You are qualified to at least understand it now, which is more than most.
AI as a craft
Now for the part that never, ever makes it onto a conference slide, and it is the part I most want you to leave with.
This is a craft. It is not a pile of tools. It is not a stack of papers. It is not a race to nudge a benchmark number by 0.3%. It is a craft in exactly the way woodworking is a craft, or cooking, or writing prose, or -- yes -- writing code. You get better by doing it, consistently, over years. By studying what the people before you did. By building things and watching, honestly, how they hold up under real load. By being ruthlessly clear-eyed about your own mistakes rather than hiding them.
# The loop that actually makes you good. There is no shortcut around it.
# Notice: 'read_the_new_paper' is NOT in here as step one. Building is.
def deliberate_practice(you, years):
skill = you["skill"]
for _ in range(years * 52): # week by week, not paper by paper
project = pick_slightly_too_hard() # just past your current reach
result = build(project) # it will break. good.
gap = honestly_diagnose(result) # where did I actually fail?
skill = study_that_specific_gap(skill, gap) # targeted, not random
share_what_broke(result) # teaching = compounding (see above)
return skill
# The trap most people fall into instead:
def tutorial_hell(you, years):
for _ in range(years * 52):
watch_another_video() # feels like progress. isn't.
return you["skill"] # unchanged. ouch.
The people who are genuinely, durably good at this -- the ones who ship systems that work and last -- are almost never the ones sprinting after every new paper and trend. They are the ones who understand the fundamentals so deeply that new things slot in easily. They can tell you, from scar tissue, exactly when a gradient-boosted tree will quietly demolish a neural network on a specific problem (#19 vs #44). They can glance at a loss curve and diagnose the issue without reading a line of the code (#40). They know, in their bones, when a problem needs more data, a better model, or a completely different framing.
That intuition does not come from reading 156 episodes. It comes from building, failing, debugging at 3am, and building again. Having said that -- the episodes were never meant to be the destination. They handed you the tools and the understanding. The craft only comes from using them, badly at first, then less badly, then well.
The habit that outlasts the hype
Let me give you one more thing, because a craft needs a practice, and a practice needs a habit. The field will keep throwing new things at you forever. You cannot -- and should NOT try to -- chase all of them. Here is the filter I actually run:
def should_i_learn_this_new_thing(thing):
"""Run this before diving into the shiny new model of the week.
Most 'revolutionary' releases fail the second check quietly."""
# 1. Is it built on fundamentals you already own?
if thing["reducible_to"] in ("attention", "gradient_descent", "bayes_rule"):
return "SKIM the paper -- you already understand 80% of it (#52, #6, #32)"
# 2. Does it solve a problem you ACTUALLY have right now?
if not thing["solves_a_problem_i_have"]:
return "BOOKMARK it. Learning it now is procrastination in a lab coat."
# 3. New primitive, real need -> this is the rare one worth the deep dive.
return "LEARN it properly -- build the smallest version by hand first."
print(should_i_learn_this_new_thing(
{"reducible_to": "attention", "solves_a_problem_i_have": False}
))
# -> SKIM the paper -- you already understand 80% of it (#52, #6, #32)
Most of what trends is the third thing dressed up as the first -- a familiar idea (attention, gradient descent, Bayes' rule) in a new coat, marketed as a revolution. Because you built the primitives by hand, you can undress it in an afternoon and get on with your actual work. That, quietly, is the superpower this whole series was aiming at: not knowing every model, but being un-intimidated by any of them.
Your next thirty days
Enough philosophy -- let me give you something you can DO, starting tomorrow, because a foundation that just sits there is a foundation that quietly crumbles. Reading is not doing, and the gap between the two is where 90% of people stall out (I have watched it happen to quit some talented folks over the years). So here is a concrete, unglamorous, month-long plan. Steal it, adapt it, ignore the parts that do not fit -- but do something shaped like it:
# Not aspirational. Executable. Print it, tape it to your monitor.
# The goal of week one is not a good project -- it's a FINISHED one.
next_thirty_days = {
"week_1": "Ship ONE tiny end-to-end thing. Ugly is fine. Finished beats perfect.",
"week_2": "Deploy it so a stranger can hit it. A URL. Watch it break in the wild (#121).",
"week_3": "Write the honest post: what worked, what broke, what you'd redo (#153).",
"week_4": "Pick your path (see above) and start project #2 -- one notch harder.",
}
def am_i_actually_progressing(log):
# The only metric that matters here. Not videos watched. SHIPPED.
shipped = sum(1 for entry in log if entry["status"] == "shipped")
if shipped == 0:
return "You're consuming, not building. Close the tabs. Open an editor."
return f"{shipped} shipped. THAT is momentum. Keep the streak alive ;-)"
print(am_i_actually_progressing([{"status": "shipped"}, {"status": "shipped"}]))
# -> 2 shipped. THAT is momentum. Keep the streak alive ;-)
Notice what week one is NOT: it is not "read three more papers", it is not "watch a course on the new framework", it is not "wait until you feel ready" (you will never feel ready -- nobody does, myself included). It is ship one finished thing. Small. Complete. Yours. The finishing is the whole lesson, because finishing is the skill almost nobody practices and everybody needs.
The honest ending
I am not going to stand here and tell you that you are now an "AI expert." Real expertise takes years of practice on real problems that fight back, and no series on earth substitutes for that. What you have is a foundation -- solid, honest, build-it-from-scratch-before-you-import-it foundation that will serve you no matter which way the field lurches next.
And it WILL lurch. Techniques that feel central today will be museum pieces in five years (some of the frontier stuff from episode #150 already ages by the month). New breakthroughs will reshape what is possible. But look at what does not move:
# The half-life test. Things fade at wildly different rates. Invest
# your deepest attention where the half-life is measured in decades,
# not months. This is where I'd spend 80% of my learning time.
half_life = {
"gradient descent": "decades", # #6-7 -- bedrock
"probability & linear algebra": "forever", # #8-9 -- literally math
"the training loop": "decades", # #7 -- shape never changes
"evaluation discipline": "decades", # #13 -- 'accuracy lies' is eternal
"architectural thinking": "decades", # #155 -- the real meta-skill
"this week's SOTA model": "months", # trending now, gone by spring
"a specific API's syntax": "a year, tops",
}
invest_deeply_in = [k for k, v in half_life.items() if v in ("forever", "decades")]
print("Where to spend your best hours:", invest_deeply_in)
The fundamentals -- gradient descent, probability, linear algebra, the training loop, evaluation methodology, architectural thinking -- those do not change. They are the bedrock under all the churn. And you have them. That is the whole reason I spent so long, so stubbornly, making you build things by hand before letting you touch a library. The libraries change. What they are doing does not.
So here is my actual, final, no-hype advice. Go build something. NOT something designed to impress other ML engineers on the timeline. Something that helps an actual person. Something that works. Something you are proud of -- not because it is technically sophisticated, but because it quietly does the thing it was supposed to do, day after day, without drama.
That was always the whole point.
What to remember from this one
- You can build the core of modern AI from scratch AND use the real tools -- that combination is genuinely rare, protect it;
- there are four honest paths (engineering, research, domain, product) -- pick from yourself, commit for a couple of years, then reassess with real data;
- contributing back (teaching most of all) is the highest-leverage learning you will ever do -- the community is starving for honest "here's what broke" writing;
- the big problems (reasoning, alignment, sample efficiency, robustness, energy, accessibility) are open, real, and worthy of a career -- you are now qualified to at least understand them;
- treat AI as a craft: deliberate practice on slightly-too-hard projects beats chasing every trending paper;
- invest your deepest hours in the long-half-life fundamentals -- the SOTA model of the week fades, gradient descent does not.
Bedankt, en tot ziens.