Continuing your learning as a post-beginner programmer (part 2)
February 16, 2016
In part one of this series, I talked about a few different things you can do to continue your learning as a post-beginner programmer. In this part, I’ll be talking about a few more strategies to help your learning, and what to do when you’re stuck.
What should I build?
In part one, I suggested picking a standard app to build every time you learn something new, or creating a project to iterate on when you learn new things. If that’s not your cup of tea, I have a few more suggestions for you.
Make something you need!
A while ago, I was going through some mental health issues, so was journalling every day as a way to organise my thoughts. I was using The Internet Typewriter, which was great…except for one thing. While it allows you to use markdown syntax, it doesn’t actually render the markdown right there inline for you.
So, I decided to clone the Internet Typewriter, except that my version would render markdown inline. I used that project as a tool to improve my Node.js skills, my React skills, and to solidify my understanding of Redux. Plus I made a tool that I actually use! Bonus!
Try making something that you want to use, even if it already exists. Perhaps you want an app to track your guitar-playing progress, or an app to plan your family’s meals for the week. Make it, learn, and use it!
What to do when it all turns to 💩
You know the feeling — you’re bashing your head against the wall, everything is terrible, you don’t understand the error message, and you’re sure that you’ve done everything right, it’s just not working.
First, take a break. Go and eat some food and go for a walk. Full disclosure, I am terrible at recognising when I need to do this, but it always works well if I do. If I keep bashing my head against the wall and getting nowhere, the shame spiral starts. I’m sure this will be familiar to some of you:
Oh my god I suck. I am a terrible developer. Why can’t I get this to work? I don’t even understand what’s gone wrong. Why do they pay me to do this? I should go back to being an English teacher, I’m clearly not meant for this.
If you can, try to stop these thoughts in their tracks. It’s unproductive, demotivating, and certainly not good for your self-esteem. In my experience, taking a break to eat, drink some water, walk, blob in front of Gilmore Girls, or play with the cats, almost always works. I come back to my problem refreshed, and often fix it fairly soon.
If you’re still stuck, ask for help. Ask your programmer friends. Ask people at a local meetup. Ask programmers on Slack, or Reddit, or StackOverflow. Be considerate — do your best to describe your bug, and the steps you’ve taken to solve it. Or, if you have a question about, say, architecture, be as specific as you can. Not just “How do you structure a messaging app?”, but “I want to create a messaging app with features A, B, and C. Do you think that it would be best to organise my code like This, or like That?” Be considerate of whomever you’re asking for help, and don’t forget to thank them!
In part 3, I’ll be offering some ideas on what to do when you read an answer on StackOverflow and understand almost none of it (ugh), and how to reflect on your progress. If you missed part one, here it is again.