Ask HN: The Required Fundamentals for Self-Taught Programming
1–10 of 57 posts
Re: Ask HN: The Required Fundamentals for Self-Taught Programming
#2What is your language? Maybe people here could give you ideas of a good first project to try :-).
Re: Ask HN: The Required Fundamentals for Self-Taught Programming
#3If you can already read code... just start a small project of your own, I would say. Pick the language you are most familiar with and create something. Be patient, learn as you go. Learning to code requires a lot of time and dedication, but it is a good experience! What is your language? Maybe people here could give you ideas of a good first project to try :-).
I just picked up _Learning Go: An Idiomatic Approach to Real-World Programming_, 2nd ed, based on its positive reviews. I'd like to read it and create a small project (for example, a simple backend for a personal website).
Any other suggestions for a good Go project?
Re: Ask HN: The Required Fundamentals for Self-Taught Programming
#4You'll be forced to learn new approaches, new tools, perhaps even new languages to solve these problems if they're challenging enough, and don't worry, you'll almost always assume something is easy when it turns out to be a lot harder than you could ever imagine.
Get exceedingly good at breaking down difficult problems into smaller steps you can actually achieve. Try and estimate how much time these steps will take so over time you can get better at estimating how much work is involved in something, which can inform which approach to take or which tool to use.
Above all else, when you learn something and want to know more, learn both in terms of deeper fundamentals, but also in a more strategic sense, like how it is applied, and what are the ramifications of this knowledge, how it fits into the bigger picture.
Remember, it's abstractions all the way down, but also all the way up!
Re: Ask HN: The Required Fundamentals for Self-Taught Programming
#5Ask 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, then identifying patterns and approaches.
Coding isn't about memorizing things, it's about understanding the advantages and disadvantages of different approaches.
Have fun!
Re: Ask HN: The Required Fundamentals for Self-Taught Programming
#6Though, these fundamentals are more theoretical (though worthwhile). You may want to just build a couple of things first to get some muscle memory.
No need to finish them, as long as you make it over a few hurdles before you move on.
Re: Ask HN: The Required Fundamentals for Self-Taught Programming
#7You'll find you will rarely need to ask that question, just keep solving problems and learning what you need to know for that problem. You'll build good experience and though that experience you'll learn a lot.
Re: Ask HN: The Required Fundamentals for Self-Taught Programming
#8Re: Ask HN: The Required Fundamentals for Self-Taught Programming
#9 - Structure and Interpretation of Computer Programs
- How to Design Programs (easier)
In reality, it strong depends on your specific domain and how old your company is. Doing embedded projects at home vs. quickly prototyping systems in Ruby vs. modifying an API for a large SaaS vs. lowering latency for trading vs. ensuring compliance at a bank... The demands are all very different, yet generally we don't write algorithms or implement data structures too often. Our languages and libraries typically offer optimized versions, we just have to know when and why to use them. And after it's built, adding extra features won't change that model.The way everyone actually learns is by doing many projects, like an apprentice of old. Such a book could interest you (after) though: https://aosabook.org/en/index.html#500lines
Re: Ask HN: The Required Fundamentals for Self-Taught Programming
#10If 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…