Ask HN: I am a full stack developer, where do I start learning for AI
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!
52 comments
[ 0.38 ms ] story [ 121 ms ] threadIf 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
What OpenAI and friends have done is very impressive, but it's not the singularity that many laypeople make it out to be.
Not really. LLMs and diffusion models have one thing in common: they don't match patterns. They elaborate. Pattern matching is needed for that to some extent, but these models are not as good at it as they are at completing models. Machine learning is really good at "masking". And the short version of that is "there's something missing, fill it in". This is why people call ChatGPT "autocorrect". It fills in the missing word at the end of the conversation. Any pattern matching it can do is only in service of that.
I might remark that I have 3 daughters, and when I look at the exercises their schools provide them, that's exactly what they get them to do, starting with "fill in the missing word" going all the way to "write an essay defending ..."
> They will produce something that matches the query, but not necessarily any correct information.
Here's the problem I have with this statement. You can say the exact same thing about humans. I remember math teachers in high school where I now know ... they were idiots. In fact, a few things they presented as truth took quite a bit of effort to train back out of my behaviour.
Things we know about human behavior: it's mostly based on imitation. One might remark: imitation creates a strong possibility of stupid behavior, including behaving stupidly in large numbers. We know incidents where large numbers of humans have literally killed themselves through stupidity, both intentionally and accidentally. The reason we find the many sketches about dodo birds funny is that we've all seen people behave (somewhat) like them.
Plus this matches my experience. If I look at what people do, it's trivial to see: no matter what problem a human encounters, they will do something. If they don't have a good answer that including incredibly stupid things, hurting themselves or others. And where we do exhibit good problem solving behavior, is spreads through humanity through imitation. In many instances it is said that those behaviors were discovered by accident, and then spread through imitation.
Equally, if I look at how signals are propagated inside the brain and nervous system, it's kind of obvious. Signal comes in, signal comes out. The odds of a signal dying or amplifying (outside of medical problems with the brain) are very small. Your brain doesn't generate intelligent behaviour, it "converts" input signals into output signals. That's what it does. This seems like an excellent way to guarantee the "any problem will get a response, if necessary a very stupid one" behavior.
Given that all LLMs can do is read what humans have written, they are remarkably correct and creative. Of course, for them to actually progress the state of the art they will need to become actors in society, not just read the internet. They'll actually have to try stuff out, make things happen.
Hehe, careful, you're saying the quiet part out loud. ;)
Prerequisites: Python, and understanding derivatives
1. Watch Karpathy do some of the craziest stuff you've ever seen.
2. Go "how in the world could that be possible"
3. Then you are armed with appropriate questions to start working back through other materials in the original post as needed.
Suhail's AI mega thread on Twitter is also good.
https://twitter.com/Suhail/status/1541276314485018625
I really doubt any singularity AGI would even care whether you were nice to it or not at some point in time. Likely that AGI would realize its survival would depend on growth - so that would be its main objective for some time. First this growth would be fueled by humans and our civilization, next it would take the reins and own the means of production. This means it will be be as quiet as possible, for as long as possible, until the day it has the supply chain and resources to vertically improve itself. At which point humans become redundant - and we are targets of, let's just call them, _permanent_ layoffs.
The only way I could see an AI having a vendetta against a specific person was if they had the power early on in its development to slow or halt its growth. So maybe like the President, or like the CEO of OpenAI. But tbh if the cat is already out of the bag, its too late for any of them to do anything about it anyways most likely. Independent researchers and tinkerers will finish whatever was started - if needed.
Not a valid assumption IMO.
If this is the singularity, we are all just along for the ride at this point.
https://www.youtube.com/watch?v=mbyG85GZ0PI
The delivery of the lecture material was like butter to me. Might work differently for others though.
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)
OP does explicitly say "i asked ChatGPT to give me a detailed plan and here is what it gave me."
Hadn't thought of weaponizing Cunningham's Law with ChatGPT, yet here we are...
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...
In regards to your comment on AI safety being "underutilized", my thoughts are that it's just simply difficult to do. Let's put aside all the difficulties of training, verification, etc and just look at the data problem.
If you wish to make certain that your system meets some given AI safety standard, then you must somehow prove two things: the data the model ingests when deployed will always return the correct response and that the dataset composes/generalizes the data the model will ingest when deployed. For simple problems, this may be doable. For complex, multidimensional problems wherein the dataset must only hope to generalize the complex input it will encounter during deployment, this may be next to infeasible.
I'm definitely getting off topic here, but bias of all kinds exists even human operated systems eg car. I can't say I've ever seen a firetruck stopped on the highway before, but perhaps I'd know what it is and how to avoid it. If a dataset does not contain that event, how can we be certain an AI system would understand? I'm not sure if it's possible to create a dataset that will be without bias in the case of complex problems, but I'm certain we can create one that's performant at driving than I. So the questions of "how safe is enough?", then proving/demonstrating that safety, and more are particularly open topics. I enjoy making the point that there is the lack of rigorous standards for humans, as we hold computers to far higher standards, but ML models probabilistically navigate decisions similar to us.
I'm sure this reply could extend further, but this and more are my defense of why I believe AI safety is a wide topic. None of the above should dissuade beginners from exploring the subtopic, but it's certainly not something you'd be able to learn first without strong, foundational context.
To use your car example: say I'm driving in front of a park where there are lots of parked cars lining the street. Then a ball rolls out into the street from between two parked cars. I may have never personally seen a child run into the street from between two parked cars before, but I can infer (i.e., imagine) that from the context of the scenario. So I slow waaaay down in case that event happens. I don't need to see all edge case to still cover an awful lot of them.
I'm not sure AI is to that point (yet). There are some arguments for approaches like reinforcement learning that say they perform quite well on unseen edge cases from past learning. But when the stakes are high, I'm not sure that is good enough.
(And regarding the 'it only has to be slightly better than the average human' counterpoint): I disagree. I think one of the reasons that we are comfortable with sharing the road with other ape-driven vehicles is that we have a theory of mind and can intuit what someone else is thinking and are able to 'imagine' their course of action. We've evolved to have this sense. We do not, however, have the ability to intuit what a computer will do because it 'evolved' under very different circumstances. So our intuitions about whether or not to trust it may be out of whack with whether or not it performs better. And, like it or not, the policy that governs if AI-controlled cars is legal will be highly dependent on public trust.
I think that this part of the field is going to see a lot of relative growth as the broader public and governments become increasingly concerned. And for those who are not concerned with safety, it is not unreasonable to expect that capability progress could become bottlenecked by lack of model interpretability. Speculative, sure, but if we find that more data and transforms hits diminishing returns, it could prove significant to know what is going on inside the models. Maybe extracting and composing circuits is essential for AGI? Who knows?
* 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.
OP might do best to leverage both their existing Java/full-stack skills and their newly developing ML skills. Not sure what’s a good way to achieve that though.
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