Weekly Update #8 - Revelation

in #coding5 years ago

Banner.jpg

Hi!

This is gonna be a different type of update, since I'm not gonna divide it into sections. This week was fairly... busy, and I focused almost all my attention on coding, so no 3D or anything else.

However, even though I'm gonna talk about coding, I'm not gonna talk about code. Instead, I'm gonna talk about the process of learning and something I realized as I was trying to solve some coding exercises. This means you'll understand what I'm talking about even if you know nothing about code.

Anyway, before I start I want to thank @fitinfun and everyone else once again for all the support I received lately, I really appreciate it!

Now let's get directly into the story.

Last week I was learning about something called Regex in JavaScript. You don't need to know what it is, just let me show you what it can look like: /^\s+|\s+$/g;

Cool huh? No, not really. It's kinda complicated and annoying to write. For those curious, that ugly piece of code deletes white spaces from the beginning and the end of words and sentences. For example, if we'd have " hello sir ", after the code I showed you above is used, those two words will look like this: "hello sir" (with no white spaces before or after the words).

Anyway, I kept going through the lessons about that type of code on FreeCodeCamp, and while I understood pretty much everything, I still felt bad whenever I had to go back to old lessons or search for a solution to an exercise on Google. It felt like cheating. They taught me how to use Regex, so why would I need to search for a solution to an exercise on Google?

After I was done with that chapter I started reading an online book about JavaScript "for beginners" called "Eloquent JavaScript". Well, it doesn't look like it's for beginners, but it doesn't matter. I enjoyed reading a few chapters and solve some exercises, especially since I already knew a lot from FreeCodeCamp.

But another thing happened while I was reading and while I was solving some of those exercises that made me feel quite bad in a way - I was still searching for solutions on Google. I obviously tried to solve everything on my own, and I often got really close to doing it, but I couldn't always figure out what was missing. So, I was searching for the solution and I was trying to understand it (which often I did).

It still felt like cheating though, and that made me feel really bad about learning how to code. What's the point of spending so many hours learning all those things from FreeCodeCamp or the book, if I can't solve some simple exercises?

Then it hit me - I'm not in school any more.

You see, since you're very young school teaches you one (very stupid) way to learn new things - you get a book or whatever has the material you need to learn, you read the material, you try to memorize everything and then you take a test. While you're taking the test, you're not allowed to look at anything that could help you. You have to rely on your memory alone.

And because that's how I was taught to learn for years and years, that was the method I was using to learn how to code. I was reading the code, I was trying to understand it, and then I was relying on my memory to solve problems. When I couldn't, I got frustrated.

But just a few days ago I realized that learning JavaScript, or how to code in general, is not about memorizing everything for a test. Memorizing a bunch of code that is completely different from everything you learned in the past can be quite hard, and expecting your brain to remember everything you read is just unrealistic.

That, combined with how the learning process goes, in general, can lead to a lot of frustration. I'm talking about "the dip".

I'm gonna explain what I mean in a second, but before, look at this graph:

The-Dip.jpg

This is usually how the learning process goes. It starts really well. You start learning how to code for example, and you understand the basic things - variables, if-else statement, for loops, and so on. But then, you get into what's called "the dip", a period of time in which you don't feel like you make any progress.

That's when most people give up. The dip is filled with frustration and anger, because you will feel like you're stagnating. In programming that may be when you start learning about more complex concepts like objects, recursion, arrow functions, etc.

But while that graph could be associated with coding, it is better associated with learning things in general. If you want a visual representation of how learning to code looks like, take a look at this simple (and horribly looking) graph I made in Photoshop in a minute:

bad graph.jpg

Learning how to code gives you a few small moments of satisfaction, followed by several "dips" where you have no idea what the hell you're doing. You learn one concept, you use it once, you think you got it, then you find a problem that requires you to use that concept in a different way, and you suddenly realize you actually didn't get it.

That's what was constantly happening to me while trying to solve exercises - I knew how to code 90% of the solution, and I was stuck at the last 10%, which was "the dip".

The difficult part for me was accepting the fact that searching on Google for solutions, for ways to solve problems and trying to learn from them, not only copying everything, is the way to go. JavaScript, and any programming language, will contain LOTS of little things you won't even know exist, things you will need to solve exercises and problems.

If you don't spend time on Google searching for those things, or stumbling upon them while searching for solutions, or just random code, you won't know about them and you will never be able to make progress.

It's like you cooked using a campfire all your life because you lived in the woods and you refused to see what else is out there, and when you finally make contact with other human beings you realize they use a tool called "a stove" to cook, which is more efficient and a lot faster.

It's the same with coding. You use the things you learn from books or courses, and you think that's all you need to know. Then you stumble upon a problem you can't solve, and when you finally decide to search for the solution on Google, you realize there are a lot of other things in the programming language you used all this time that you didn't even know existed, things that would've made your life A LOT easier if you would've just tried to see what else is out there.

So my "revelation" this week was the fact that learning how to code is completely different from learning anything in school. The point isn't to memorize all the code you possibly can and use it to solve exercises. The point is to know how to solve problems, to create things that people can use, and using Google to do that is vital.

Anyway, that was pretty much it. It's kinda sad it took me almost two months to realize this, to actually understand how different learning how to code is compared to learning anything in school, but I'm glad I finally got it.

This obviously doesn't mean I'm only gonna search for solutions online to all my problems while I never try to solve anything myself. But it does mean that I'm not gonna stare at my monitor for 2 hours trying to figure out how to solve my problem, just to later realize, after I finally searched the problem on Google, that I had to use a JavaScript function or method I didn't even know existed.

Sadly, as I said, this week was fairly busy for me and I didn't have the time or motivation to do anything except coding and writing, so there's not much I can talk about today. I didn't work on my 3D project at all, I didn't write anything special, I just coded and published normal articles.

Hopefully next week will be better, so I'll see you then!

Sort:  

I could not be more proud. This is great to read, especially after last week's post. Keep going - and maybe look back to where your started 8 short weeks ago. WooHoo!

Thank you, it is indeed an improvement compared to last week, and I am indeed happy to see the progress I made in the last 8 weeks. I went from barely knowing how to write any JavaScript at all, to being able to work with it without being "afraid" of the language any more.

That, combined with the fact that I'm actually excited and I'm looking forward to coding every single day makes everything better.

Thank you once again for all the support! :)

hi @raikuhen
you're right. Sometimes we get stuck in our learned behaviors and we feel we cannot do otherwise. But then, as happened to you, there comes a sort of illumination that makes us understand that things can be done differently, and we must not feel guilty about this !! :-D Especially if you're doing something that feels like you're already putting love and passion into it! Keep it up

Hi raikuhen,

This post has been upvoted by the Curie community curation project and associated vote trail as exceptional content (human curated and reviewed). Have a great day :)

Visit curiesteem.com or join the Curie Discord community to learn more.

Thank you once again, I really appreciate it! :)

Wooaw.... Great work you have in there and I like your feeling to make the place a better on. I really enjoyed every second I spent on your blog and such an awesome coding works in there. Great work and keep the invention spirit up

Posted using Partiko Android

Thank you very much, glad you enjoyed the blog :)

You are humbly welcome

Posted using Partiko Android

Coin Marketplace

STEEM 0.17
TRX 0.15
JST 0.029
BTC 60778.23
ETH 2434.76
USDT 1.00
SBD 2.55