How to Think
Why am I Making This Hard for You?
Another challenge for many students is that they want the ‘right’ answer to how to do things. There’s more academic literature on this, but for a thought-provoking look at why it might be a good idea for us to make your life hard then What IKEA and Our Education System Have in Common is an easy read.
Here’s the summary:
- IKEA is easy, but you don’t learn anything.
- IKEA is about getting things done/finishing.
- IKEA is convenient, but it’s not creative.
- IKEA is standardised, but it is actually primed for hacking.
But there is a great response to the original post that adds nuance to this:
The thing to keep in mind, though, is that following recipies is how we learn skills to start with. If you were teaching someone to cook, for example, you wouldn’t throw the person into the kitchen and tell them to be creative with the food. Instead, you would teach them to follow recipies so that they can practice skills, and learn how to properly balance flavours and textures. Then, when they’ve mastered some recipies, you teach them how to mix up and re-combine recipies, and eventually come up with their own.
Thinking Like a Programmer
For the record, there are many things that can’t be solved by code or coders, but there are many things that can be tackled by learning to think like a programmer. This can include:
- Understanding: make sure that you actually understand the problem before you try to solve it. Try to explain it to someone else. Try to explain it to a pet or stuffed animal. Write it down. You may feel silly doing some of these things, but saying it/writing it forces you to organise your thoughts and often gives you the answer halfway through the explanation.
- Planning: “Given X, what steps do I need to achieve Y?” You can start with comments, bullet points, or whatever format helps you to get the skeleton of an answer in place before you spend ages writing the first few lines of code or the first few lines of your essay. Markdown is good here!
- Dividing: never try to solve a hard problem in one go. Break it down into little steps. Easy steps. Do the easiest one first (if you can separate it out from the first one). Check your solution works for that part. Take the next step. Check the two steps work together. Build from there. As programmers and Venture Capitalists would tell you: iterate! Same for an essay or written submission.
- Unsticking: try to stay curious rather than getting angry or frustrated. Debugging is a step-by-step process: comment things out, add
print
statements, break it back down again into the basics and gradually re-add pieces until you can see where it all breaks. - Practicing: I like this quote “Practice. Practice. Practice. It’ll only be a matter of time before you recognize that ‘this problem could easily be solved with
.’”
“The art of debugging is figuring out what you really told your program to do rather than what you thought you told it to do.” — Andrew Singer
On a more practical level, here are common mistakes made by new programmers.
What This Means for You
- We will not give you the answer. This will be frustrating and annoying (particularly when you are already frustrated that something is not working) but by asking you questions we will try to teach you to solve problems for yourself.
- If you keep asking us the same questions you will get increasingly abrupt answers. You should be scared to ask us the same question for the 20th time. You should not be scared to admit that you’re struggling with something.
- Sometimes there is no answer! Every year the data changes. The policies and issues change. I teach things a little differently. This is much more like the real world and sometimes I don’t know what we’ll find when we start coding.
- You need to work out how you learn best.
- You will need to think critically about what you are doing. There’s a good article on How to write better essays which leads on to a blog on how to write better undergraduate essays (see above). You’re obviously not undergraduates any more and we expect more of you, but as a starting point this is a good one, especially for those of you who are new to the UK way of teaching and learning.