Ask HN: The Required Fundamentals for Self-Taught Programming
41–50 of 57 posts
Re: Ask HN: The Required Fundamentals for Self-Taught Programming
#42If you can get access to ChatGPT, use it as a learning resource. Ask it to act as a mentor that is teaching you how to program, ask it to give you an problem to solve, and give it a shot. Then paste back your code you wrote (keep it simple) and ask it to explain your approach, provide advice, describe patterns, and explain tradeoffs between different techniques. Initially, learning how to talk about code is important…
Re: Ask HN: The Required Fundamentals for Self-Taught Programming
#43Data structures and algorithms. I don't have a formal education either but after 25 years of programming, IMO everything boils down to data structures and algorithms - the former more so than the latter. I think everything else comes from experience gained from on the job training because you need to train the pattern matching part of your brain. A good foundation in data structures and algorithms simplifies that pro…
+1 for learning datastructures + algorithms in a structured way. Other posters are saying "just build stuff and you will learn", which isn't wrong, but there's a reason every CS student learns data structures and algorithms first. They are literally the building blocks for everything else. Then, once you've got that foundation, the "just build stuff" advice is sound but if you skip that step you will always be at a d…
Re: Ask HN: The Required Fundamentals for Self-Taught Programming
#44Re: Ask HN: The Required Fundamentals for Self-Taught Programming
#45Re: Ask HN: The Required Fundamentals for Self-Taught Programming
#46If you really want to learn programming. 1. Buy SICP and put it on your book shelf. 2. Don't read it, instead read random StackOverflow posts talking about the content. 3. Spend the next 10-50 years trying to understand what people are talking about on various related forums. 4. Add more legendary books to your shelf over these 10 years, like The Art of Computer Programming. Fawn over their greatness. DON'T READ THEM…
Re: Ask HN: The Required Fundamentals for Self-Taught Programming
#47Re: Ask HN: The Required Fundamentals for Self-Taught Programming
#48Someone else mentioned data structures and algorithms. Algorithmic complexity is particularly important. The Algorithm Design Manual is a great book in this space.
As a low level developer, I've also found the following topics way more useful than I expected:
- Finite State Machines (These are the basis for everything from inter-device communication protocols to simple video game AIs.)
- Binary arithmetic and boolean logic (Rarely relevant, but absolutely essential for diagnosing certain types of parsing errors, buffer overflows, etc.)
- The Halting Problem and P = NP (Useful when a manager tries to get you to do something that is actually impossible.)
I learned these from intro to Computer Science classes in university, but honestly Wikipedia is probably a good place to start. I think the (middle grade) book Lorem Ipsum also covers most of these concepts.
Re: Ask HN: The Required Fundamentals for Self-Taught Programming
#49Build projects and ship them. There's no better way to learn. That could mean web applications deployed online, or CLI tools that people can install, or data science projects that result in a report you can show people, or mobile apps shipped to an App Store. The key thing is to build actual working software, and ideally to get that to a place where other people can try it out. This will help you learn SO much, and w…
I’ll add: build whatever interests you
The project you’ll work on will teach you more than the one you abandon.
Some of the most random things I’ve done purely out of curiosity, which were objectively not valuable at the time, have paid dividends decades later.
Like writing AOL chat room bots in the late 90’s and accidentally learning a lot about the Windows API.
Re: Ask HN: The Required Fundamentals for Self-Taught Programming
#50If you choose a language that’s not widely used or no one is hiring for, don’t worry about it. You’ll find that the concepts you learn in any language are portable to all languages. Once you learn those, it will be easy to pick up new languages when you need to.
Bonus advice: when you find a language you’re good at, stick with it and get really good at it.