Transitioning from a full-stack engineer to the AI field can be a fulfilling and exciting journey. To make the most of this transition, you should focus on building a strong foundation in mathematics, programming, and machine learning concepts. Here's a detailed learning plan, broken down into four stages:
Stage 1: Building a Strong Foundation
Mathematics:
Linear Algebra: "Linear Algebra and Its Applications" by Gilbert Strang
Calculus: "Calculus: Early Transcendentals" by James Stewart
Probability & Statistics: "Probability and Statistics for Engineers and Scientists" by Ronald E. Walpole, Raymond H. Myers, Sharon L. Myers, and Keying E. Ye
Optimization: "Convex Optimization" by Stephen Boyd and Lieven Vandenberghe
Programming:
Python: "Python Crash Course" by Eric Matthes
Git: "Pro Git" by Scott Chacon and Ben Straub
Machine Learning & Data Science Basics:
"Introduction to Data Science" by Laura Igual and Santi Seguí "Python Data Science Handbook" by Jake VanderPlas
Stage 2: Learning Machine Learning and Deep Learning
Online Courses:
Coursera: "Machine Learning" by Andrew Ng
Coursera: "Deep Learning Specialization" by Andrew Ng
Fast.ai: "Practical Deep Learning for Coders"
Books:
"Pattern Recognition and Machine Learning" by Christopher M. Bishop "Deep Learning" by Ian Goodfellow, Yoshua Bengio, and Aaron Courville
Stage 3: Expanding Knowledge of AI Subfields
Natural Language Processing (NLP):
"Speech and Language Processing" by Daniel Jurafsky and James H. Martin
"Natural Language Processing with Python" by Steven Bird, Ewan Klein, and Edward Loper
Computer Vision:
"Computer Vision: Algorithms and Applications" by Richard Szeliski
"Deep Learning for Computer Vision" by Adrian Rosebrock Reinforcement Learning:
"Reinforcement Learning: An Introduction" by Richard S. Sutton and Andrew G. Barto
"Deep Reinforcement Learning Hands-On" by Maxim Lapan
Stage 4: Staying Current and Gaining Practical Experience
Read research papers:
Subscribe to the arXiv mailing list in your areas of interest Regularly read papers from conferences like NeurIPS, ICML, and ACL Participate in online competitions:
Kaggle: Participate in machine learning competitions to improve your skills and build your portfolio AIcrowd: Another platform for AI competitions Contribute to open-source projects:
TensorFlow, PyTorch, or other popular AI frameworks Look for projects on GitHub related to your interests and contribute by fixing bugs, implementing new features, or improving documentation Network with AI professionals:
Attend AI conferences, workshops, and local meetups Join AI-related forums, LinkedIn groups, or online communities like Reddit's r/MachineLearning Remember that the learning plan can be adjusted based on your pace and interests. The key is to stay consistent and always be curious to learn more. Good luck on your journey into the AI field!
If you are a full stack developer, there's no need to read entire books on Python and Git. Data visualization should not be new knowledge for a full stack engineer. Python can be picked up in a day, and there's no more git in ML than full stack web dev. You don't need to be able to produce good or even elegant code to do well in ML. Scientific programming skills trumps software engineering here. Don't get caught up in the weeds of step 1. Most of the linear algebra and multivariable calculus books are at a level of rigor that are beyond what's need for ML, especially ML engineering. Unless you are doing specific basic research in statistical learning you almost never need to prove your equations at a mathematical level.
I recommend taking a look at Murphy's probabilistic learning book to have a stronger foundation. If you want to do ML engineering or research beyond being a Pytorch code monkey, you have to understand the high level (heavy emphasis here, make sure whatever you are reading covers the Metropolis algorithm, marginalization, and graphical models, not just basic sampling/pop sci/EA rationality Bayes cultism) Bayesian statistics which defines the fields of variational and causal learning. Tricks in computer vision, natural language, speech, can be picked up from review papers and books as needed. Those verticals require experience more than formal training per se.
I also suggest doing a refresher on dynamics/differential equations and signal processing. Many CS education do not cover these topics well and they are heavily used in many areas of machine learning.
See my old ML reading list suggestion
https://news.ycombinator.com/item?id=34312905
Read lots of papers on arxiv and elsewhere to stay up to date on latest ML tricks and heuristics.
(Also as mentioned in another comment, Karparthys's Zero to Hero is an excellent intro to deep learning, but please don't stop there, learn the information theory and statistics behind how the technology works)
* Everyone is into it these days. We were interviewing some fresh graduates for a junior quant developer role recently, and each of the candidates had some mention of AI in their CV (the role had nothing to do with AI). The ML courses out there are packed with students thinking they'll be working for OpenAI or Google (took a class out of personal interest recently).
* Related to the above, you probably need a PhD to do anything remotely interesting. The bulk of the AI work is setting up build pipelines and finding/cleaning data.
* The field has a major winner takes all factor to it. The biggest companies will develop their own systems (or rather, a handful of top school PhDs in these companies will), and the rest will use tools made by others. The trend is towards bigger models with more training data, small companies will have a hard time competing in this space.
* Available jobs: check LinkedIn job postings for Java developer vs. ML researcher. I haven't done this, but have a strong feeling how it will look like. You fear the dev jobs will be obsolete soon, but why would the ML jobs not be?
To balance this out, I do have a few counterpoints:
* ML is a helluva lot more interesting than plain old java coding.
* To contradict myself a bit, I was recently almost offered a position with a strong focus on ML. Unfortunately the project ultimately fell through.
* Maybe the LLM success will cause VCs to pour money on AI start-ups, and there will be more opportunities in the space - for a while. However, to become hireable for ML roles, you'll need a year or two of intense study.
Prerequisites: Python, and understanding derivatives
If you want to do real AI, I think having a foundation in physics (electricity and magnetism) is a good start, as well as quantum computers and quantum physics. Personally I think neural nets are a dead end, I think the industry is moving in the wrong direction I'd stay away from Kaggle, I think it's a waste of time. Just decide what domain that you want to solve and focus on that, don't just follow the industry cause most of the people are brain-dead
If you learn to leverage AI for your current role, you will not be replaced because you will be performing better than peers, and you always need an architect to design something even if someone else is building it.
If you want to go into the AI field itself, then you should make sure this is something you want to do out of a desire to learn, not a desire to be replaced, otherwise you will become overwhelmed and unmotivated.
I’d say stick with leveraging AI for rapid development instead of trying to become an AI researcher.. unless of course, it’s passion project and not desperation
https://www.youtube.com/watch?v=mbyG85GZ0PI
The delivery of the lecture material was like butter to me. Might work differently for others though.
Honestly the best way to start is to play with the tools excessively. Prompting over and over and over again will teach you amazing skills and intuitions.
Some resources:
- https://80000hours.org/podcast/episodes/chris-olah-interpret...
- https://www.fast.ai/ (haven't used it, but heard good things)
- https://www.agisafetyfundamentals.com/ai-alignment-curriculu...