Jack of all skills, master of none(yet).

How can you possibly learn to code in 12 weeks? There is a plethora of languages, techniques and technologies out there, how can you master them all in twelve short weeks?

The answer for me, is to focus on the skills and the technical bits can always be learnt later.

Mid-way through the 12 week Ronin course at Makers Academy, I think the penny finally dropped as to why I was doing this course, why it was different and what was essential to take from it. At the beginning of the course, our coach gave us a piece of advice along the lines of: “Don’t focus on getting to the end of the challenges, focus on your learning”. Despite this, quickly I began to feel the pressure of keeping up with my cohort. The conversations on Slack, were a constant reminder of others progress that week, and if I was falling behind I was dissapointed in myself. Was I not prepared enough for this? Do I have the right mind for this? The doubts begin to creep in.

As weeks passed, I had another realisation. If I don’t reach the end of the week I’m not going to master all the technologies that the course will introduce me to.

Take Javascript week for example. In one week, we were told to re-write one of our previous Ruby apps, an airport controller, in Javascript, just like that. A little bit of guidance on the new syntax, but other than that we were thrown in at the deepend. Aware of how tough the week was, I rushed the first days and completed the airport challenge with my pair. The next day with my new pair, they told me they were struglling with the Javascript syntax and wanted to re-do the week from scratch to try and understand. Now, here is the difference with Makers Academy and pair-programming. In my previous education I never had the opportunity to go back and check my understanding on a particular subject and help someone else understand it. Each week you would cover something new until exam season came about, and then you revised and memorised and regurgitated for the test.

This turned out to be one of my favourite pair-programming sessions and one of the most productive. By trying to explain it to somebody else, I actually realised, that I had gone too quick through the material and my own understanding of Javascript was hazy and full of holes. So we went through it together, slowly, picking out the details, discussing and researching. We came out of the day having completed the app, with both of us feeling much more confident in what we had written.

However, because of this, it meant that I didnt reach the fancy technologies at the end of the week such as AJAX, JSON and Node.js — tough topics that are very powerful. I was introduced to the terms but had no solid understanding of them. At the time I felt I was missing out and was behind the curve and not making the most out of the course. I needed to work harder, later into the evenings, do more research etc etc. Of course, those things may improve my programming, however, I was so focused on the negatives, that I overlooked that I was picking up hugely important skills such as communicating to to others and effective pair programming.

A few weeks later, I attended my first meet-up with Agile Sheffield. We had just completed the first project week at Makers Academy and had just been informed that this whole time we had been incorporting some of the aspects of Agile and Extreme Programming. When I arrived, I explained I was part of a bootcamp which was met with a little dis-interest. However, when I began to mention some of the practices and techniques we had been taught, a look of surprise and approval seemed to fall on their faces. After the guest speaker’s talk, chatting with some of the people there, I realised that it was mostly full of Agile coaches and a few people working in the industry that had been converted to Agile. Many talked of how difficult it was converting teams to adopt practices like Test-Driven-Development, daily standups and weekly retros and Kanban and I realsied that this was all I knew! I was ahead of the game in some ways. Not because I could write incredibly complicated code, but because I was aspring to write code that communicates, that was test-driven and work in teams incorporating regular feedback, thorough design and effective communication.

Following the meet-up, back on the course our coach gave us a reminder when students raised concerns that they hadn’t finished the week. Telling us to focus on the skills, not the language itself. This time, I finally felt comfort in this. No matter how hard I try, I’m not going to become a Ruby or Javascript master at the end of Ronin. However, what I will have is a skillset that will put me in good stead, to be a future software craftsman, to write code that I will be proud of, that employers and my future teams will appreciate and that users will be able to enjoy using without lots of bugs.

I was on the other end of the stick a few weeks later. During the Angular JS week, I was struggling to follow the week’s workshops because I hadn’t fully grasped Javascript’s callbacks and promises. The workshops were teaching us the skill of following the flow of data through code. Something that can be acheived by writing out exactly what everyline of code does. Although at first I was very frustrated that I just couldn’t understand such a crucial aspect of Javascript, I suddenly made the decision to focus on the skill, and I realised it was an incredibly useful skill. Even though I still struggled with the technicalites of JS, by taking the time to write out each line, things started to come together and I could take positive things from the workshop.

Later on that week, to finish the Angular JS material, my pair (who also struggled with callbacks and promises) and I made the decision to not focus on finishing the challenge (a news summary app) but instead to take time to fully research, understand and implement our own callbacks, investigate the response, acquire the exact data that we wanted from an API and display it. On paper it did’nt look like we acheived a great deal, but through effective pairing, the penny dropped on many previously troublesome topics, and that was our aim. For me, it turned what was an exhausting and challenging week, into a positive outlook for the final weeks of the course.

So for now, my aims have altered slightly. My Makers experience is now focusing on picking up the skills that I can’t easily learn from books and documentation and aim to make them second nature in my programming. The technical side? Well that is obviously a crucial part and I am not shying away from that, but my learning doesn’t stop after Makers Academy, indeed this is only the beginning. The resources from Makers Academy will remain available to me, and I plan to use them extensively as reference. With the skills equipped from this course and enthusiasm, I am in a much better position to learn more efficiently and effectively, learning is what I love, so let it continue!

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.