I love The Hobbit and The Lord Of The Rings. The Tolkien's Middle-earth universe is such an awesome place to be, at least in dreams. There's so much inspiration in all the characters inhabiting it. And so much to learn from, like courage, responsibility, curiosity, trust, friendship, and whatnot. But today I'm going to draw a slightly comic analogy between some movie episodes and ways one can learn to program. Many a true word is spoken in jest, so let us take a look at learning processes from a different angle and see which one is more suitable for each of us.
Self Teaching
Self teaching is scary. One needs to go a long way and learn from their own mistakes. A beginner can face so many obstacles, so many enemies (including Internet trolls and impostor syndrome). But they can also meet new allies (such as Stack Overflow or Free Code Camp) and gain new powers, not mentioning the feeling of achievement at the end of the Road. It's the way of introverts. The style of lone wolves. The method of achievers.
Pair Programming
Pair programming can be uncomfortable. When one works hard on a problem with a peer, their impact can fade, and they can feel vulnerable, especially if they are less experienced part of the pair. Or vice versa, one can feel that progress is slow because of that second person who cannot get this simple idea. Anyway, it all comes to ones ability to be patient and compassionate. In some situations, two heads are definitely better than one.
Workshops
A workshop is basically focused on active participation in some practical learning process organized by experts. It's a proven way to memorize new knowledge better. However, the level of experience should be somehow equal for all the participants, or it can be either a dull or a hard way of progressing in a new area for a person. Anyway, it will be fun and immersing, so one will get at least a new vocabulary from it. Presumably, not only curses.
Webinars
Webinars are great when one doesn't want to leave their home but wants to get new knowledge. They can reach trusted experts from all over the world without even taking on their pants. This magic is used more often these days, turning into less formal live streaming sessions (webinar/workshop mixes). Some magicians get really good at it. One just shouldn't forget about the real world ― it's beautiful and full of problems they can solve with the newly gained knowledge.
Conferences
Conferences are great both for speakers and listeners. A speaker validates and bulletproofs their experience. A listener invests in learning the most modern industry practices and useful networking with like-minded people. Or they can leave with nothing and be humiliated. 50/50. But if one is an extrovert, they'll have a great time and make new friends, and probably their career will benefit from it in the most unexpected way.
Hackathons
Hackathons are great for creative enthusiasts. One joins other practitioners to build something useful and (optionally) beautiful. Sometimes they can even get a prize. Or learn not only a subject matter but also working in a team, defending their point of view, being productive for long hours, and other useful (though not always healthy) skills. Hackathons can be a bit chaotic and stressful. Still, one will hardly be able to get out of them without a new experience.
Summary
So, after all this deep dive into the knowledge universe, we can definitely make an unambiguous conclusion on what is the best way of learning new programming stuff. And the winner is... 🥁 Whatever turns you on! There's no silver bullet and everybody ought to do their own thing. The only way to know what works better for you is to try everything. So it sounds like a decent plan, isn't it?
“There is nothing like looking, if you want to find something. You certainly usually find something, if you look, but it is not always quite the something you were after.”
― J.R.R. Tolkien, The Hobbit, or There and Back Again
Cover photo by Tobias Stonjeck on Unsplash