Learning can be hard. There I said it. So, here are a few tips to help deal with learning to code:
- 30 min limit: if you are running into a problem for more than 30 min. put it down. don’t continue to bang your head against the wall. It’s frustrating. (FWIW There are lots of real studies about the benefits of taking breaks and there are even more apps that try to help you incorporate breaks like Time Out.)
- More time spent doesn’t necessarily mean getting closer to the solution - you’re a newb you’re still establishing context and code prowress thus there’s a greater possibility that you can go off track and also get more and more frustrated (which doesn’t help)
- Have a few things that you want to work on. put the one you’re having problems with down and work on something else. it helps to have a set of things you’d like to do that vary in terms of size, difficulty, and interest. A mental break that I learned from The Flatiron School, and continue to do, is taking the time to learn about a programmer (e.g. Programmer of the Day).
- Do approach the problem later with a fresh start - either by just giving yourself time to digest, reaching out to others, or researching online.
- Break it down. A classic exercise that you might learn when beginning to think like a coder is explaining to an alien how to make a peanut butter sandwich. When you first approach this you’re thinking ’no problem! I’ve done this like in real life even!’ You know every step. But when you start writing the steps, you start to realize how many tasks comprise a step. For instance, ‘spreading peanut butter on a slice of bread’ seems like a reasonable step right? But do we need to explain where to get the peanut butter? Is it in the cupboard or fridge? Do we need to explain how to open a jar of peanut butter? Does the alien have fingers, hands and wrists like us so that it can actually twist the lid off the jar? Do we need to explain how to get peanut butter on the knife? So you are the alien. And making a peanut butter sandwich is coding. It’s foreign to you. And you can’t take for granted the little things. And it’s easy to get overwhelmed. So break things down into smaller achievable steps. You’ll feel like you’re making progress (which you are) and you won’t have to deal with the overhead of thinking about too much stuff - which can be frustrating at best and debilitating at worst. If you are an avid advocate strategist like myself, you can take the main goal and break it down into smaller (still too big to work on) steps before taking one of the steps and breaking it down into tasks. (This always helps me by confirming the context and also making sure I’m not losing sight of the larger goal, which I assume is the thing that provides value.)
- Be good to yourself. I can’t stress this enough. This is hard. And you’re learning. Be patient.
- Celebrate your successes. We tend to get caught up in success being determined in a black or white, binary type of situation. Did it get done? But this is not a helpful way to think when learning something. I find better ways to measure success by answering: are you solidifying your understanding of something? are you learning something new? did you make progress toward a larger goal? I’d even go as far as to reward yourself for little things. You might have run a marathon or trained for a marathon or know someone that has. Almost all people (seriously like 99%) train for a marathon. Their goal is a marathon. But they don’t just wake up and run 26.2 mi. They start prepping months before and it’s multiple runs a week and NONE of them in fact are ever 26.2 mi! They are training. You are training. And one day, you are able to run a marathon.
- Be good to one another. A criticism that I have for bootcamps is the natural tendency for students to compete against one another. And since folks are new, learning lots of stuff fast, and thus, feeling insecure, there’s all sorts of psychological ways this plays out. One reason I <3 Ruby is because of the saying “Matz is nice so we are nice.” Be good to one another. Maybe you know the answer that someone doesn’t know the answer to, but be cognizant that s/he might have been banging their head on the wall way longer than s/he should have been. Flippantly giving an answer is helpful but the other person may already feel dumb. Sometimes it’s not just about the right answer or code golf.
Learning is hard. You’re doing something new. You’re brave for even trying. So listen you might be having a bad day, maybe go do some online tutorials, but whatever you do – you can do it and get on with your bad self. After all, you might be instead just sitting in front of the tele eating a bag of chips.