The internet, it’s often claimed, has democratized education: all of the human knowledge may be discovered with a Google search! And yet having access to knowledge is only half of the battle; you also need to know how to turn raw data into employable skills.
For many of us, the gap between these two can lead to frustration. Tutorial Hell—getting stuck doing tutorial after tutorial without ever feeling like you’re making meaningful progress—is something that a lot of people have experienced.
It’s crucial to understand how to learn well, especially as a software developer; the entire business is about learning new things! If you can rapidly pick up new languages/frameworks/tools, you’ll be able to work much more effectively than the typical developer.
If you solely follow step-by-step instructions, you’ll end up in Instructional Hell. You won’t be able to solve problems as a developer if you don’t have the necessary problem-solving abilities. You won’t know where to begin when you try to create your own project. It will appear like you’ve spent so much time practicing yet haven’t l any useful skills.
If you concentrate only on unguided learning, though, it’ll take an eternity. You’ll need to come up with solutions for problems that have already been solved, spending days or weeks doing so. This is a long and difficult road. In the worst-case scenario, you may wind up giving up entirely because you believe that you’re not intelligent enough for this stuff.
This is a common issue for many instructors. Some courses, however, are aware of this division and provide unsupervised learning opportunities. Things like stretch objectives thought experiments, and difficult activities are some examples of this. I wish there were more resources available like these!
You don’t like making errors, right? You want everything to go smoothly the first time.
This mentality is frequently beneficial in everyday life, and it’s also applicable to various careers. Mistakes may cost hundreds of dollars in parts if you work as an automobile mechanic. A mistake may ruin someone’s smile if you work as a dentist.
With software development, on the other hand, We may go back to our editor, modify the code, and try again if we make a mistake. We also have informative error messages that can (on rare occasions) assist us in finding our way. This is a tremendous benefit that we seldom take advantage of.
I like to mess around with the code when I’m following a tutorial. Instead of copying and pasting the supplied code word for word, see what happens if you remove one of the lines or alter some of the values.
I play the role of a scientist. If I have a hypothesis about how this code is supposed to operate, I test it by changing the code and seeing if it breaks in the way I anticipate. When I find that my hypothesis is incorrect, I may divert from the lesson and do some research on Google. Alternatively, if the rabbit hole seems to go too far, I’ll add it to a list of “items to look at later.”
This step helps us avoid the negative rhythm of following a tutorial on autopilot, copying/pasting code without comprehending what it does or why we’re doing it.
Learning is an active process. We’ll benefit from poking and prodding the code to create a mental model of what’s going on.
When I was first starting out, I utilized a technique known as “the tutorial fade.”
This process is fairly simple
Follow the steps in a lesson word-for-word, going through them one by one. When you’ve completed it, reset the code to its original condition and minimize the lesson. See how far you can get without referring to the guide. If you become stumped, bring up the tutorial but then hide it again once you’ve unblocked yourself.
Repeat this procedure until you can finish the lesson start-to-finish without consulting the instructions. This approach is beneficial since it encourages you to concentrate. The tutorial fades away, and you find out how to create the item without assistance.
This technique is quite successful, but it isn’t everyone’s cup of tea. If you’ve been fighting your way out of Tutorial Hell for a long time, it may be worth a try!
It might be a good idea to attempt building an identical project from the ground up before attempting another tutorial.
You’ll still be able to utilize some of your new skills (state management, event listening), but in a somewhat different setting. You’ll likely reach a point where you don’t know how to accomplish something because it wasn’t addressed in the tutorial; you may look on Google for assistance!
I’ve heard it referred to as “one on, one off.” Use a guide to complete a project, and then do the same amount of time developing your own (but unguided) project. If you’re following a tutorial to create an Instagram replica, try creating your own Twitter clone!
When I’m at the start of a learning journey, I usually concentrate on guided study. When I’m still struggling with syntax and fundamentals, it’s tough to construct anything unassisted!
As I become more comfortable, though, the equilibrium shifts. I spend more and more of my time on unsupervised learning, creating things that appear intriguing to me. When I run into new and perplexing issues, I’ll look for instructions; nevertheless, this becomes less common as my expertise grows.
If you want to learn new abilities quickly, you must have the proper mindset.
When it comes to software development, things seldom go according to plan. We’ll inevitably come upon a snag in the code where it doesn’t perform as expected.
It can be positive or negative. It depends on how you look at it and where you place your focus. If you approach this as a possibility for failure, it might lead to a downward spiral—one full of frustration and self-doubt and impostor syndrome—or it may be seen as an excellent learning opportunity. Nothing helps you learn faster than an inscrutable error message if you have the correct attitude.
As I discovered in my own career, there’s a lot more to learn from suffering and failure than there is from easy success. With a growth mentality, the struggle may not be particularly pleasurable, but it feels beneficial, like a good exercise.
In this world of internet frenzy, it’s easy to feel compelled to stay up with the latest trends. I’ve never been able to pull it off. For me to be committed, I need a goal that is both exciting and tangible.
Different people are driven by different things. I believe it’s crucial that you have a goal in mind—something you’re genuinely enthusiastic about. Otherwise, after the initial excitement wears off, it’ll be tough to keep the motivation going.
I have a terrible memory. This might be challenging; it’s difficult to learn anything if you can’t recall things! Fortunately, I have a technique: spaced repetition.
The goal of spaced repetition is to help you build a solid foundation for your long-term recall by first producing and then preserving more vivid, powerful versions of the material.
Let’s suppose we decide to spend 7 hours a week learning something new. Do you think it’s more beneficial to devote an hour each day on that subject, or 7 hours every Sunday?
There’s something to be said for investing more time on specific things rather than spreading oneself too thin. I’ve had a lot more success spending little amounts of time more regularly. I understand that not everyone may afford to do this, but if you can, I strongly advise attempting to devote some amount of time each day to the subject you’re trying to master.
Every day, the brain processes and commits what you’ve learned that day. You will want to take advantage of this every day, not just once a week. If you practice every day, you can pick up right where you left off. You don’t have to worry about motivation as much if you can incorporate it into your daily routine; it becomes something you simply do regardless of how you’re feeling.
We assist our future selves by recording everything we learn. When we come upon something new, we should document it in some way, such as a blog entry, a social post, or a YouTube video.
Have you ever attempted to explain something to someone only to discover that you don’t grasp it as well as you thought? Blog articles have the same effect. It’s the finest approach to identifying flaws and holes in your mental model so you may correct them.
The most uncomfortable sensation in the world is to hit a bug you know you’ve already handled, but can’t recall how to do it. If you’d written a blog post about it, you could refer back to it! You may meet new people and develop relationships as a result of sharing your discoveries. This can be entertaining and gratifying, not to mention useful when it comes to finding work or starting your own business!
Another thing to remember: don’t get caught up in the trap of spending weeks perfecting your blog from scratch! Start by publishing on a platform like Dev or even Twitter for starters! Before I created my own site, I published numerous blog entries on Medium. If you find that you enjoy sharing your knowledge with the world, you might choose to migrate to a high-end bespoke blog later.
My approach is that skills are like money. The more skills I have, the faster they build up. Ideas and techniques obtained in one area might be applied to another.
I’m not suggesting that you become a jack-of-all-trades—you’re still better off with specialized knowledge! The larger your skill network expands, the easier it will be for you to learn new things.
I don’t want to overwhelm you with a huge list of things to learn—just start with one and build from there. The important thing is to keep learning new things and expanding your skill set.