Introduction
Since I got started coding only 2 weeks and a half ago, I've been obsessed with making sure that I'm learning things right and as efficiently as possible. I want to maximize my learning curve as much as I can at this point.
To be honest, I don't really like when a person "pretends" to be an expert by giving tips. In my case, you can be confident that those tips are not from me...they are simply a compilation of what I found most helpful so far.
1. Start with Why
He who has a why to live can bear almost any how. - Frederic Nietzche
We are goal-oriented beings. Without an aim, we simply don't find the mental fortitude to go through the hours and hours of debugging...trying to figure out what's wrong with our simple code.
For quite a bit of time, we don't necessarily see the point of what we are learning. But for those of us that know their WHY, it is much easier to pull it off.
2. Set a Learning Plan - Begin With the End in Mind
With all the choices out there, it's easy to get lost and confused about what language to learn. It can become much clearer once you begin with the end in mind and work backward from there.
Once you have that you won't get distracted by people telling you should learn javascript when you are learning to write python or java. You'll know WHY you are learning java and why you shouldn't learn something else.
That plan should not just include classes, but also books, websites & podcasts. For me who want to become a front-end developer, this medium post was especially helpful => My journey to becoming a web developer from scratch without a CS degree (and what I learned from it)
Check it out if you have a similar goal than me.
3. Learn by Doing
Practice, practice, practice. That's the only way I can ever imagine the number of concepts and syntax I've learned so far...and yet, I have so much more to learn!
It's all good to write a textbook or watch a video on how to code. But if we don't immediately start implementing what we've just learned, we are bound to forget that stuff.
Right now, I'm working on a to-do list app. It's been challenging to say the least but at least, I'm getting a lot of practice with the basic concepts that I've learned so far such as loops, arrays and functions...and that's what matters at this point.
4. Code by Hand
I tried this for the first time yesterday and it was an amazing exercise. Trying to figure out a problem from a to z with only pen and paper was challenging but now that I did it, I feel like it was a great way to dig deep in my brain and make sure I will remember what I've learned. (I did the to-do list on paper first before bringing it on the computer)
Try it out, it's pretty cool.
5. Don't Use Copy / Paste
Typing code can be exhausting sometimes and it gets repetitive. It is tempting to copy/paste the basics of an HTML file for the nth time rather than typing it by hand.
<!DOCTYPE HTML>
<html>
<head>
</head>
<body>
</body>
<html>
But by doing it again and again, it drills the syntax into your brain so that you retain it better and also understand the syntax better and better.
6. Master the Fundamentals
I see a lot of people telling me that I should jump on a framework(react.js for example) and start getting stuff done as soon as possible. But what I am getting from a lot of great coders is the emphasis on learning the fundamentals and mastering them. Once that is done, it will be easy for me to understand better how and why frameworks works (react.js, angular,js, etc). I never want to be a prisoner of a framework and having to relearn everything when react.js is not cool anymore.
I intend to have a continued education in Javascript for years to come by reading books such as Eloquent Javascript or You Don't Know JS when I'm done with the basics and starting to learn frameworks.
7. Get Help!
This one I haven't actually implemented. I know that there are many meetup groups where people hangout and code together. There are online forums, stackoverflow.com and many more places where we can interact with one another to get better. A mentor or working side by side with an experienced coder would definitely help me at this point.
Conclusion
Would it be nice to have a group of steem devs and aspiring ones working together and chatting? Anyway, feel free to share your tips if you are already a dev and correct me if some of my assumptions are wrong.
Photo by Martin Shreder on Unsplasht