Hi, I'm trying to self-teach myself how to code but the problem is that I don't know where to start. I've been trying to learn how to write Java but I end up with more questions than answers; I'm catapulted into a world of classes and objects, I'm dealing with a multitude of data types and half of them don't seem useful, I'm wondering how a computer even works.
Should I be studying the anatomy of a computer and what each component's purpose is? Or should I continue learning Java? Maybe even something else? Aha, sorry for the ignorance, but I just feel like I'm not starting in the right place and I just need some guidance. ^.^
Brad Pearson
Not a rock star
When you are a beginner to programming, I think it's important to be exposed to a strong type system in your language choice. Types exist in all languages, but dynamically typed languages like JavaScript can be difficult to understand in certain scenarios when you think a value should be one thing but it magically appears as something else.
The basics of what you should be learning initially are things like types, variables, scopes, logic branching, subroutines/functions, memory usage (conceptually, not like malloc() or free()), compilation and debugging. These are concepts that will start building a solid foundation regardless of the language you choose.
I'd choose a language with a really strong set of guides, documentation, community and books. Some of the languages that come to mind are things like Ruby, C#, Rust, C, C++ or even TypeScript. All of these would be solid languages to develop a good understanding of programming.
Also understand that you will have setbacks and 'smash your head into the wall' moments frequently no matter what language you choose. This is normal. It happens to me every day (almost I guess) and I have been a developer for a while now. Fighting through the difficulties and learning these new concepts will make you a better programmer. Keep grinding.