Learning journey
Eric Ma, in his own words.
I cross foreign fields by building something that forces the math into the open, then teaching until the gaps show. Started wet lab: biochemistry, microbiology, cancer biology. Computation was the first jump; Bayesian stats, graph theory, deep learning, diffusion models, GenAI, and quantum came after. The links below are from the climb itself.
Starting point
Wet-lab biology
UBC Integrated Sciences: biochemistry, microbiology, cancer biology. Benchwork first, including founding UBC's first iGEM team.
I started as an Integrated Sciences student at UBC, concentrated in biochemistry, microbiology, and cancer biology. All wet lab. In Brett Finlay's group I worked on Salmonella host-microbe immune interactions, with posters and awards along the way, including Rising Stars of Research and a MURC talk prize on T cells and intestinal fibrosis. I also founded UBC's first iGEM team, and that work was wet lab too: building an analog threshold sensor in E. coli and taking it to the jamboree. Pipettes and plaques came before pull requests.
Evidence: Resume (Finlay lab / Integrated Sciences / iGEM) · CV (posters & awards) · UBC iGEM founding (Broad research statement) · Bio
Jump 1
Computing
First foreign field: from wet lab into algorithms, git, and software craft.
Computation was the first foreign field. At MIT I did a biological engineering PhD whose thesis was computational: algorithms to identify reassortant influenza viruses at scale, used to study reticulate evolution and viral ecology. I learned git through pull requests to Matplotlib; Thomas Caswell walked me through about seventy of them over two months. Becoming a self-taught Pythonista meant versioned work, packages I could trust, and tools I could rebuild. Computing became the floor under every later jump.
Evidence: PhD thesis (computational) · Matplotlib onboarding via PRs (Caswell) · First OSS contrib: matplotlib docs · Big Data Boston slides (self-taught pythonista) · How I Learned to Learn · Making as a way of studying
Jump 2
Bayesian statistics
Self-taught probabilistic modeling, taught at SciPy, shipped at work.
I learned Bayesian statistics as stories about how data come into being. Hierarchical models clicked when I walked a real data-generating process end to end. Teaching locked it in: SciPy tutorials on Bayesian data science by simulation and probabilistic programming, plus a two-ways tutorial with Hugo Bowne-Anderson. That craft is how I automate analyses that used to mean afternoons of hand-flagging curves, and it's the judgment I bring when an agent writes the notebook.
Evidence: Bayesian Data Science by Simulation (SciPy 2020) · Bayesian Data Science: Probabilistic Programming (SciPy 2019) · Bayesian Data Science Two Ways (SciPy 2018) · Tutorial notebooks · Optimal way to learn Bayesian stats · Going Bayesian automates data analysis
Jump 3
Graph theory / network science
Research need, SciPy tutorials, then open-source floor.
Graph theory entered through graduate research and through teaching material I built in Python. Teaching forced a clean path through a messy knowledge graph. That became Network Analysis Made Simple, taught at SciPy across multiple years, plus years of workshops, nxviz, and core work on NetworkX. The payoff was fluency: matrices, propagation, and later a bridge into graph neural nets.
Evidence: Network Analysis Made Simple (SciPy 2025) · Network Analysis Made Simple (SciPy 2022) · Network Science and Statistics (SciPy 2017) · Network Analysis Made Simple (notebooks) · Matrices and their connection to graphs
Jump 4
Deep learning
Mechanism first, SciPy tutorial, then graph deep learning.
A good teacher gave me the frame that made deep learning usable: model, loss, optimizer, and networks as chained differentiable functions. I trained early networks in public, then learned for real by writing my own library so the linear algebra had nowhere to hide. That frame became Deep Learning Fundamentals at SciPy 2019, where we built the beginnings of a deep learning framework in class. Graph convolutions bridged network science into representation learning. At work that toolkit shows up as geometry I can re-derive.
Evidence: Deep Learning Fundamentals (SciPy 2019) · dl-workshop notebooks · Importance of a good teacher · Lessons from writing my own DL package · Graph deep learning demystified
Jump 5
Diffusion / score-model math
Score-based generative models from the math up, in public notebooks.
In 2022 I got obsessed with score models, the math under modern generative diffusion. Reading left me hungry, so I built a pedagogical notebook series in JAX and implemented the ideas end to end. Ownership meant derivations you can run. That climb is the receipt I'd point to for generative-model math.
Evidence: A Pedagogical Introduction to Score Models · Project note (2022 fascinations)
Now
GenAI as a way to learn
AI as tutor and amplifier, with judgment kept in the driver's seat.
GenAI is the jump I'm living in public right now. I use models as an infinitely patient tutor while I stay in the driver's seat: retrieve first, demand artifacts I can poke, teach a concept in five minutes, and keep judgment on my side of the desk. I spent a summer in the learning-science literature because the retreat thesis has to survive evidence. Agents make experts faster, and they make confident mistakes faster when you lack the vibe zone to catch them.
Evidence: Principles for using AI autodidactically · How AI turbocharges your learning · Curiosity at the wheel
Now
Quantum computing
Foundations from amplitudes and linear algebra, through a Bayesian lens.
Quantum is the newest foreign field. I've been getting one-on-one tutoring on the foundations, and I learn best by teaching, so I put the fat-marker sketch on the blog early: qubits as amplitude vectors, gates as ways to shape distributions, measurement as sampling. Plenty of detail is still beyond my grasp. The Bayesian lens is how I'm making it stick.
Make your own arc.
One week, a small room, every seat a foreign domain. You arrive with one field still ahead of you, and leave with the meta-skill to cross the next one.