Lessons from the Twitter tech community
Here are the most common and best answers from Twitter with my comments to help you get most of the learning process.
Do you know this old joke? A man goes to New York for a concert but gets lost. He spots an old man and asks. “Sir, can you tell me how to get to Carnegie Hall?” The old guy smiles and says, “Practice, practice, practice.”
The practice was the most common answer to my question. And it’s correct; you can’t achieve anything meaningful without lots of practice. But it’s also not the complete answer — practice is close to useless when it’s not quality practice.
How do you practice in a meaningful, deliberate way? First, you should focus on doing things, not learning theory. You can read all the books in the world and watch every tutorial available, but you won’t effectively learn anything without using your knowledge.
So build projects, big or small, depending on your level. It doesn’t have to be complex. Start with simple applications. But get used to relying on yourself, seeking answers, and exploring what’s possible and what’s not.
The better you get, the more you should push yourself. Add tests, examine architecture patterns, and try adding a new feature to check if your code is easily extensible. Build greater and more powerful things until you get proficient with using the tools at your disposal.
Building projects is such an excellent way to learn because it’s challenging. You may believe you understand something, but until you use it, you can’t know for sure. And you’ll remember it much better after struggling for some time.
There’s also an additional benefit — building things is fun! Especially if you can show it to the world. Build things, and be proud of them.
Finding a mentor was the second most popular answer, and for a good reason. The right mentor can assess your skill level and show you how to progress as fast as possible. They’ll help you to avoid common pitfalls, motivate you when you need it, and hand you challenges so you never stagnate.
Another great way to learn fast is by joining a community of like-minded people. Being a part of a group of people with similar goals and challenges is one of the best motivations you can have. Learning to code is a lonely endeavor, so every support matters. Your new friends are not only a source of motivation but can also help you solve your programming problems.
The biggest obstacle is finding a good mentor or a community. Many people are offering to mentor you, but it’s usually quite an expensive investment as software developers earn a lot of money for an hour of work, so it doesn’t make much sense for them to mentor cheaply. Still, some users offered practical advice on where to find cheaper options.
A prominent place to look for mentors is Twitter. If you follow some excellent developers, you can also ask for their advice. It’s unlikely to change into full-time mentoring, but you can easily get some helpful tips from them.
Another idea is to join local software developer meetups and talk to people. They’re much more approachable and happy to help if they meet you in person. I also got recommendations for some excellent developer online communities, both free and paid. The most notable of them were — Kent Dodds’s Discord, Danny Thompson’s Discord, freeCodeCamp Discord, and the Scrimba community.
Do you know what great writers and great developers have in common? They’re proficient readers. It’s much easier to become a great programmer if you take the time to read quality code.
Open source is a great place to start looking for examples. You can begin with libraries you’re already using. Depending on your skill level, it may be something as easy as a library to switch tabs, the library to manage the state of the app, or even complex runtime environments like Node.
Whatever it is, dig into the code and try to understand it. Reading someone else’s code is like getting into their head. And if they’re good, you certainly want to get into their head. And for free!
You’ll be amazed at how many new patterns and ways of solving problems you can learn. There were many giants in the industry before you. Take a sip from their well of knowledge. Dissect the code you admire and imitate better programmers. It’s all waiting for you.
Don’t worry about encountering lousy code. You can learn from it too. Analyze mistakes in sloppy code and tiny bugs in edge cases. Reading code will let you develop and understand complex applications. Learn to distinguish between superb and harmful code, and try to make yours a bit better.
Code katas are small coding exercises. Many people mentioned them as a great way to improve development skills and programming language knowledge. One of the significant advantages of katas is they’re sorted according to difficulty. It means you can quickly assess your skill level by solving just a few of them. It also makes solving katas a game-like experience, as you want to move on to the next level.
Another great thing about katas is their popularity. Thousands of developers solved all of them, so you can see other developers’ solutions whenever you finish one. It’s a great way to learn different approaches to these same problems and get intimate knowledge of the language’s syntax. You should try it; some of the solutions I’ve seen were mind-boggling.
You can do code katas on many sites; The most popular are probably Codewars and HackerRank.
Learning to code is an engaging journey. And as with every worthwhile thing, it has its upsides and downsides. Some of the downsides can make you anxious for months.
The best cure for it is to take care of your mental health. So, remember that to stay sharp, you have to rest sometimes. Go to the gym, meet with friends, meditate, or take a walk. Do whatever makes you feel better and helps you find balance in life. Not everything is about coding.