My method of learning programming (What to Google)
There has been a pattern that I've noticed myself use when I started out learning how to code. I've since then used it whenever I'm learning a new language or a framework and building a demo project.
Granted, I kind of already knew a little bit about the pieces that make up software. So taking my first real python project as an example, this is the flow I went with:
I wanted to create a tuition manager project. I knew that I would need to:
- input data for students
- store data for students
- show the saved data
I was able to break down the whole problem and pinpoint myself to things I should focus on. What I mean by that is
Instead of learning about Python first and then starting a project, I started the project first and learned Python for the bits I needed to implement
I wanted to go fast, so this method allowed me to not waste a lot of time learning about the things in Python that I wouldn't be using. I should add that this method is not the best. It made me not learn about some important things like decorators so I never used them. But it did help me progress and learn quickly.
One major benefit I found with this is not getting stuck in tutorial hell. I remember lying down and watching 1-hour long crash courses of programming languages and never understanding it since I was trying to consume way too much information, in a small amount of time. And it might work with other things, but it wasn't working with learning a programming language.
Instead, I would google the thing I wanted to implement e.g. storing data. This approach would have my search history go like this:
- Ways of storing data in python (plain-text, json, db)
- How to write json to file
- How to read json from file
I had a clear goal in mind with this method. So I find that instead of thinking that I know nothing and will have to spend a lot of time learning the language first, I would go How do I read from dictionary in Python and similar questions would trim down my vagueness of the language and I would learn about the related things much more quickly.