I have been a Java Developer then full stack developer all my career. I want to get started on AI. I am not sure where to start as it is overwhelming to look at the rapid changes coming in. Are there a list of books i can start with? My goal is to be not outdated in 6 months and lose my job to chatGPT or some other version of it. So i asked ChatGPT to give me a detailed plan and here is what it gave me. Could you please let me know if this is a way to go or if there is a better way
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)