Raquel Moss

Continuing your learning as a post-beginner programmer (part 2)

Read part one here

Read part three here

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 Art!

A year ago, I despised javascript. At Dev Academy, where I was building my programming skills, we had a week known as ‘Javascript Week’. It was five weeks into an intense course, most of which had been Ruby-based. On day two of Javascript Week, I spent most of the day crying. I hated looking at Javascript — it was ugly and indecipherable. There were too many parentheses and semi-colons. I hated writing it. I struggled to complete basic tasks. I felt like a complete idiot.

Luckily, I had a great teacher who started teaching us Javascript by making art. One lunch time, inspired, I created Rainbows (obviously it was optimised for my 13-inch macbook screen, don’t judge me 😉 ). It was the first time I has written javascript without hating everything about it. I also learned a lot about event handling in the process.

So, if you’re struggling, try doing something creative! It doesn’t have to be complex — it can just be pretty, or weird. You could even try making the ugliest thing you can think of. Anything to get you programming! And for the record, I love javascript now.

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.