Failing is not fun, and it’s especially terrible if you’re a perfectionist like me. Every failure feels like a stab to the heart, and I take it personally. Trying to rewire my thinking around this is quite hard, but also rewarding. Failing isn’t fun, but at least I can try to make it useful by learning things from failures. I want to take a quick look at my first “learning how to code”-attempt (I’ve got seven attempts under the belt now, with only the last one being successful! See my other post about that).
Back to university (2007)
For this first attempt we have to go back to my university years, to be more precise the year 2007. I studied History, so how did I end up trying out coding there?! Well, most of my friends were studying Artificial Intelligence so they did a Java course in their first year. It seemed interesting to me and thinking “how hard can it be”, I signed up. Oh boy, I was so wrong about the “how hard can it be” part!
At that time, there was no StackOverflow website yet. Heck, we didn’t even use an IDE. We were writing code in the Terminal (everyone used an iMac there, the University had a room full of iMacs you could use) without syntax highlighting. You had to compile the code via the Terminal with the command “javac” if I remember correctly and then run it in some different way. Lots of details are lost to me now, but what’s not lost is that first moment of despair.
The despair I felt when I was confronted, for the first time in my life, with something that made me feel utterly stupid. I mean, writing the first hello world program wasn’t tough, but after that the “draw the rest of the fucking owl” hit extremely hard! The next assignment was to write a program that solves the 15-puzzle. I remember just staring at the screen, seeing the Terminal prompt blinking….and there was just nothing in my brain. Just a black void. No inkling of an idea what I was supposed to do.
The lectures accompanying this course were quite abstract and did not go into the specifics of the assignments. It was more like “this is how you write a class”, without explaining some use cases. We also had a book with this course: Java, a Beginners Guide. This book became the bane of my existence. It didn’t make much sense to me.
Well, dear reader, I struggled immensely with the assignments. There were two 2-hour workshops per week where there were Student Assistants present, and they tried their best to help me, but they just couldn’t make this stuff beginner-friendly. The assignments were already too easy for them and their way of helping was to just write some code for me, sort of giving it away. But that didn’t teach me anything, really. The gap between “hello world” and the next assignments was just way too big for me. But this was university, so you gotta keep up with the tempo or fall off the bus.
Needless to say, I failed this course and it got me real scared for programming.
Lessons learned
Applying what I know about myself today I can pinpoint some things about this course that didn’t work for me at all:
- The Java book. I love reading and I’m really good at parsing large texts and distilling the main points. This skill has served me extremely well during my History study because we had to read TONS of books. However, this skill does not translate to learning programming out of a book. It’s like the text is unreadable to me. Is this how people with dyslexia feel? Every word is going through my parser (my brain) and makes me doubt: what does this mean? I thought my normal learning style and ability to quickly read texts would carry over to programming but it didn’t. For programming, I prefer learning from video’s and people taking me through an example. Written text doesn’t work very well and if it does I have to take my time, reading stuff again and again, very slowly.
- This course was not beginner friendly. So few examples were presented! And the level of difficulty between one assignment and the next could be extreme. Right now, there are so many awesome courses and websites for beginners, but back then? Not really.
- I wasn’t ready. It’s not like I did my utmost best to understand everything. I was hoping for an easy, fun course and I got served with reality. There were plenty of people around me who understood everything just fine and who were more than willing to help me. But I was scared. Scared by this failure and this reality-check that I wasn’t naturally smart enough to get this. At the time I didn’t realise that programming requires a totally different way of thinking. Back then, all my skills centred around other things. Now that I’m working on learning programming for the seventh time, I realise I have to give myself time to understand things and to use my brain in a totally different way.
I’m not going to go over all other failed attempts because the lessons keep boiling down to the same things. Up until the last attempt to learn programming, I wasn’t ready to truly face myself. Sounds epic or silly maybe, but it is what it is. I was always hoping for that sweet shortcut, to maybe unlock some super-power in my brain that would make me understand code instantly, but it doesn’t exist. Bummer!
Thank you for sharing your experience with the struggles of learning to code. I went through a very similar experience at university, but about 9yrs before you, and we were learning C++. I didn’t get it at all. I ended up going into design and I’ve ended up as a frontend developer. Sure, I have to know some code, but I’m far from being a master or expert. Every day in thankful for the videos, courses and other resources available online.
It’s great you kept at it and have learned to code. Not everyone learns in the same way and I’m glad you figured out yours.