As my brief spell at Createk draws to a close I have decided to write about my experience: what I learned, what I was expecting and what actually happened.
First off a bit of background – I am Hans, a 17-year-old male who’s about to start his last year of school. During my summer break I have been working for Createk as an intern learning – the ropes of web development with Ruby on Rails. This hasn’t been my first experience with programming however, I have a good understanding of Java and have dipped my toes in the water with Rails previously. But as far as web development goes I was really thrown in at the deep end.
First few days
The first couple of days were spent refreshing my knowledge of RoR(Ruby On Rails) and getting used to the workflow. With some help from my colleagues I successfully created a reddit clone which seemed to be a perfect project to get me used to the MVC (Model View Controller) pattern and CRUD (Create, Read, Update, Destroy) operations. I was astonished at how quickly and easily a fully-fledged web app could be created with RoR and was really beginning to see the power of the framework.
Tests, tests and more tests
Learning here forced me to adopt the conventions of Createk and that included the process of TDD (Test Driven Development). This approach was completely new to me and frankly seemed bizarre – almost as if the code was being built backwards. But it worked – it allowed me to produce some of my cleanest work as TDD keeps syntax efficient and logical. Pair and mob programming were also new concepts practiced at Createk that I had to get to grips with. At first, the idea of having people watch you program can be quite daunting but being in the ‘driving seat’ is actually the easiest part; all you have to do is type and leave the logic to those watching. This technique leaves little room for errors and gives more people a better understanding of what is going on in the code, meaning it will be much easier to debug down the line. Code reviewing are another useful technique practiced here that further exaggerates writing neat and concise applications.
It’s not all work (I promise)
Something I discovered pretty quickly was how positive and enthusiastic the atmosphere in the office was. Help was always around the corner when I came across any blockers and everyone felt part of the team thanks to such a friendly environment. As well as this, I also understood how important food is to my colleagues and deciding where to go for lunch had the gravity of a life-or-death situation. (Thankfully) One of the perks of having an office based near the centre of Manchester is all of the food that is available! Fancy sushi? No problem. Brunch? You got it. Feeling pizza? Yeah, you get the picture… To ensure everyone keeps a healthy and varied skill set Fun Friday was established, where for half a day on a Friday you are permitted to work on your own project such as writing a custom API or even a text-based adventure game around the concept of TDD.
For me, personally, coming from a Java background to learning a language like Ruby and then getting used to RoR was particularly challenging. I was surprised at how fluent the RoR syntax was; many built-in method names read quite literally which was something that definitely wasn’t apparent in Java. Another interesting concept to get my head around was the fact that everything in Ruby is treated as a class, making it much easier to apply methods to variables. To be perfectly honest, RoR does most of the heavy and (dare I say) boring work for you, giving you more time to focus on the stuff that matters – the fun stuff. This instant satisfaction coupled with the previous points makes it a great programming framework to start with in my opinion.
Tools of the trade
The Createk workflow introduced me to many helpful tools I would have otherwise missed and bolstered my knowledge in other areas concerning code management. For instance, the value of using services such as Github when working with a team and individually has grown massively in my eyes. As well as this I was shown some more modern services in the dev community such as Docker – a tool that makes it much easier to create, deploy and run web applications via the use of containers. A plethora of new gems was also presented to me, each with varying uses, created by the fantastic Ruby community.
What to take from this
- RoR has a particularly well-established and friendly community.
- There are literally so many tools and gems at your disposal.
- Testing is actually (and perhaps counter-intuitively) very effective.
- Doesn’t matter how young or old you are: you can learn RoR!
The short period I was working here has definitely whet my appetite for web development as well as computer science in general. These skills that I have acquired will benefit me greatly all the way through university (where I hope to study computer science) and beyond. I want to thank Createk for the opportunity and leave you with this: If you are in any doubt as to whether becoming a developer is right for you then I urge you to take an internship where possible – and preferably one that knows how to have a good lunch.