HACKER Q&A
📣 FullStackDev1

I am a full stack developer, where do I start learning for AI


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!


  👤 KRAKRISMOTT Accepted Answer ✓
I am not sure if OP's post is generated by a bot or whether it was meant for absolute beginners.

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)


👤 karmakurtisaani
I would almost say you're better off staying in your current role than going in to ML. Here's why:

* 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.


👤 jakedahn
https://fast.ai is hands down the best resource for learning more about deep learning as a normal software person.

👤 jekude
karpathy's Zero to Hero series (https://www.youtube.com/playlist?list=PLAqhIrjkxbuWI23v9cThs...) has been the best time investment I have made, not only for learning about AI, but maybe ever.

Prerequisites: Python, and understanding derivatives


👤 ihatepython
Nobody really cares about doing real AI to find the solution to a difficult problem, all they care about is generating 'research' that supports a pre-determined conclusion.

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


👤 dangerwill
No point really in trying to get into AI "the right way" at this point unless you bring some side specialty into the equation imo. The experts in the field are already in place and the space moves so quickly that you likely won't be able to meaningfully catch up. Asking chatGPT to generate a reading list (and it recommending a subreddit) is an especially concerning insight into the depth of research you will end up doing. Might as well just follow the current AI luminaries and parrot what they say and get a job at a non-AI company that way, until we are all replaced by GPT-X.

👤 vikp
I've been making a course to help with this - https://github.com/VikParuchuri/zero_to_gpt . Lots of coding, with optional videos. It has very few prereqs.

👤 ratg13
It’s not clear if your goal is to not become outdated/replaced, or to learn AI

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


👤 bob1029
I have found the Caltech machine learning intro course to be the most elucidating of any resource so far:

https://www.youtube.com/watch?v=mbyG85GZ0PI

The delivery of the lecture material was like butter to me. Might work differently for others though.


👤 Shindi
It really depends on what you want to do. Research (Foundational model layer)? Build cool LLM apps for work or play (application layer)?

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.


👤 yeck
If you are going in this direction, please consider working on AI safety and alignment problems. Things like interpretability and corrigibility are keys to creating systems we can understand and "steer". Both are necessary if we hope to be able to use AI successfully. Success means safely and effectively (actually does what you expect/want).

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...


👤 Sateeshm
I feel like money is in applying AI for specific domains

👤 lofaszvanitt
fast.ai

👤 chudi
those are pretty good recommendations. I would start at stage 2.

👤 Ancalagon
If we are at the singularity, none of this will matter anyway.