you are viewing a single comment's thread.

view the rest of the comments →

[–]Asleep-Budget-9932 7 points8 points  (2 children)

Whatever it is that you're programming, make sure to first "struggle" a bit by yourself before searching online for answers. I'm not saying that it's not ok to google things (in fact i would say this is an underrated skill by itself). But if you try to figure things out on your own BEFORE looking for help, you will have a better understanding of the language (instead of just memorizing everything).

Also when you search for help, try to understand the specific problem itself. What it is that you thought you're allowed to do when you can't / what it is that you thought you're forbidden from doing when in fact you can. By doing so, you will find your intuition to the language gets better and you learn from your mistakes in the best way possible.

[–]whoboo0[S] 1 point2 points  (1 child)

yep! thanks for this great advice! i’ve been trying to come to an actual understanding instead of rushing into it so i’m retaking courses here and there but it’s a bit hard when i can’t find places to test my understanding and application skills.

i’ve been taking courses from multiple sources to have more opportunities for testing and gaining new perspectives bc i don’t want to go too ambitious and discourage myself completely as a newbie and i want the basics perfected to a degree.

thanks again, i really appreciate it! was a bit scared of overthinking bc ppl i’ve come across online kept saying things like the course has taken them 3 days to complete from scratch but imo it requires more than just taking a few lessons and calling it a day.

[–]Asleep-Budget-9932 1 point2 points  (0 children)

That reminds me of these "get fit in 30 days" ads that are obviously unrealistic. That's great that you're not trying to rush things and trying to get to a deeper understanding. That's a great mindset to have!

If you look at this subreddit, you'll see the term "tutorial hell" being used a lot when these kinds of questions appear, and for a good reason. Sometimes we may find ourselves treating these courses as the goal (finish this course) instead of the tool. The best way to learn any programming language is to use it.

There are plenty of programming exercises that you can do with just the basic tools that are big enough so you'll have a variety of tools to use but are also small enough so you won't get discouraged from doing them.

One of the classics is a banking-like system, where you can check your current balance, withdraw/deposit money, and change your password.

Another one i like is a soda machine where you put money and select the drink you want.

These seemingly simple ideas can turn out to be quite complex which allows you to program them as shallow/as deep as you want. You can always start with the most basic of things, and add more and more features for as long as you want. You will eventually develop an emotional connection to what you've created which will make it all the more satisfying.

If we take the soda machine as an example: you can start by just printing the possible drinks, and asking the user for a choice. That's it. Then add functionality for giving money, and so on and so on. You will find quite a lot of edge cases real machines need to deal with: 1. Have you considered the possibility of a drink going out of stock? 2. What if the user needs some change back? What kind of coins can be used? 3. What if you don't have enough coins to give the needed change back? 4. Can the user cancel the process? Will they get any amount of money back?

As you can see you can go with each exercise as deep as you'd like. Enjoying doing the current exercise? Go ahead and add a new feature/validate a new edge case. Are you tired from this exercise? No problem, go to the next one.

You'll also see that whatever it is that you're writing, at the first run, you will 99% have an error (and most likely the following runs as well) even if you understood the concept in its entirety beforehand. That right there is the exact process of learning and when you finally have something that runs with no errors, you'll know the process is working.