My story of becoming a software engineer
I left high school not really knowing where I wanted to go next. My entire teenage years had been devoted to becoming an NBA basketball player, yet when I hit 17 I knew that goal wasn’t going to be achieved, I was lost. I enjoyed mathematics immensely, doing reasonably well in high school in even the toughest classes. I thought to myself, maybe I’ll go into the mathematics field. Furthermore, I loved computers, I mean really loved computers. I’d built plenty in my spare time, I was constantly looking at the latest parts, dreaming over owning them. I thought perhaps I could become a programmer, I tried it out a few times over the course of my final year at high school. Dabbling in bits and pieces at home, but not really getting anywhere. For some reason, I thought I could just build a social network for video games, from scratch, without even knowing HTML. I enrolled in a university course that was offered in my final year, it happened to be a maths class and if you completed it, you were awarded extra credit for your final year. I thought to myself, well, I’m already doing 2 maths classes, let's make it three. I applied for it and got rejected as my grades, especially in maths, weren’t good enough. It was a university level mathematics class, no walk in the park. As a consolation prize, I was put in a programming class, still to this day I can’t work out why, but I was, ultimately it was an incredible stroke of luck that I was put in it. The course was a 12-week structured introduction to algorithms with no prior programming knowledge. Let me stress that last part, no prior programming knowledge. I had no programming knowledge, so I thought this was great. On a Wednesday night, each week, we had class from 6 pm until 8 pm at Monash University. My dad dropped me off in the early days of March, so it was still light outside at that time. I walked to the room, which required quite a bit of effort as the campus was huge, and waited outside the room. As the small hallway, I stood in, slowly filled up with other 17-year-olds, I was reassured that I was actually in the right place. The lecture or should I really say the tutor rocked up and let us in. The room was a sea of computers arranged in groups of four Two computers facing another two, he asked us to pick any computer and I did, sitting by myself at first. As the room was quickly filled with other students, the surrounding seats were filled quickly. The next two hours were the most difficult two hours of my life, I had absolutely no clue what was going on. It hit 8pm, it was all over, I packed up my things and made my way to the door. I walked to the car where my dad was picking me up and got in.
“How was it son?”, my dad said.
“Yeah great”, I lied.
It was terrifying, my first real computer science subject, and it was insanely difficult. I went the next week and this week we were actually coding out a few things. Well, not really coding, we were using this block language, where you could drag and drop blocks into a connected line, and it would perform several steps. However, I didn’t even know what a variable or a loop was and how I was going to string together multiples of these. These details were glossed over quickly and to my horror I had no idea what was happening. I kind of just sat there screaming internally, freaking out and generally having a bad time. As I was internally screaming, I glanced over to the person next to me, his screen already filled with blocks. My internal screaming only intensified, all these people are just about done, and I can’t even place the first block, how stupid am I? I tried to use this guy's screen, cheating already or as I liked to call it “Guidance”. I kept peaking over at what he had done, each time I would place another block having absolutely no idea what it was doing. After 15 minutes or so, the tutor stopped the class, assuming that everyone had completed the task. I, of course, did not, but the guy next to me certainly had. I ended up befriending this guy during this class for some help, we talked a lot and I found out that he was doing the same subjects in high school and that he had built quite a few websites and even an app before. I was pretty shocked that someone of my age had done anything programming related, he even took a programming subject in high school, my school didn’t even offer one.
The subject was broken up into 12 weeks, with one major assignment broken up into 3 parts and one exam. The assignment was to build a movies' database program. Essentially, a way to have several movies and multiple users, then create an algorithm that could recommend them new movies and friends based on the movies they already like. I didn’t even know what a variable was, let alone have the skill to build something of this magnitude. I hardly understood the assignment, if I’m being completely honest. It got to about week 3 when the first part of the assignment was due, and I clearly had no idea. However, I found out that others also didn’t because a special intensive session was created by the tutor. The tutor would run you through more of the basics for the subject, mostly about how to program, and gave you some resources. It was a live Skype call with about 6 people, excluding myself and the tutor. It was supposed to be every week on a Thursday for an hour. It was horrifying, he would write up some pseudocode and then randomly ask people questions about it, completely on the spot and more to the point, in front of everyone else. He asked me a few questions and every time I said the same thing “I’m not sure”, it was terrifying embarrassing, and I wanted nothing more than to not be there. I did the most rational thing and never attended another one. The tutor approached me and said that it would be very beneficial, I said, “Nah I understand it, I’ll be alright”. I was not alright, I was completely useless. Week 8 rocks up and the final assignment is due, I hadn’t really done anything of course because I had no idea what to do. We had been given this program, the same one from before, that you can drag and drop blocks. It also had a graph database function, where you could create a node, such as a person, then attach that node to a movie “Blade Runner”. This assignment was supposed to be a well documented approach to creating an algorithm that could match users up based on their movie preferences. 60% was designing and documenting and 40% was code, I spent 4 hours creating nodes of users and the movies they liked. Dragging, dropping, giving them a name and some movies, then wiring them up to another user. I did this for about one hundred users, as I couldn’t code at all. I ended up getting 60% on this assignment which meant that if you removed the coding I got 100%, I’m still convinced that he just felt sorry for this idiot in their class. The final exam approached, and I had studied my ass off with my new-found resolve now that I had managed to get 60% on the assignment that I fully expected to get 0% on. James, the guy I had become friends with, had done some study, but for the most part, he was pretty confident. We met at the exam and smashed it out, he thought he did pretty well, and I thought I had done surprisingly well. I ended up failing the subject, getting 45% overall. That's the story of my first computer science class, I failed miserably, and my friend got 94%, top of the class.
My final year of high school is rapidly coming to an end, yet I still haven’t picked what I want to do in University. My girlfriend suggested I go down computer science as I love computers and warned me not to go down mathematics as you won't enjoy it, or get a job. I chose not to listen to her and went and did maths. After my first semester, I hated everything about it. They crammed one year in high school into 12 weeks in university, I didn’t learn anything, I didn’t enjoy it at all. I swapped to computer science, my girlfriend was right as she usually is, which is probably why she's now my wife. I can sum up my Computer Science degree pretty quickly, “pass and credits', pretty much all my grades fell between these two marks. I ended up with roughly a credit average, nothing special, and I only had two subjects in which I got a high distinction in. One was my final year project which was a group project that didn’t go so well, two people ended up not doing anything. Out of the fallout, I was able to get an HD based on my contribution to the project. The only other HD was from a law subject. Which was dead easy because all you had to do was follow a formula, it was open book and my girlfriend had already done it, so she gave me all the notes. I also failed a subject and almost another, so let's be honest I had a pretty standard degree, maybe even below standard. Before I finished, I applied to 50 jobs, only getting one response. That one response was a recruiter who was clearly not good at his job, as he thought I was a senior developer. I couldn't tell you what I applied for because I just applied for anything and everything that had dot net in it. Which at the time, dot net was the only language I knew. However, I made a great friend who, after I finished my degree, got me in touch with someone who was looking to hire. The contact got me the interview and I got the job. That just about sums up how I became a software engineer.