Kiya Rafferty shares her experiences on her work placement with Mesomorphic.
Hi. My name is Kiya. I’m 15 years old, and I take the subjects maths, physics, computing science, graphic communication, practical metalwork, French, and English at school.
When I first arrived at Mesomorphic on Monday morning, I was terrified. School is so different in comparison to the workplace, and a teenager’s mind conjures up images of silent offices and intimidating bosses, so it was nice to be pleasantly welcomed into a comfortable environment. I was immediately made to feel at home, and although still nervous, I relaxed.
After making a quick spreadsheet for Maria, to become more acquainted with how Mesomorphic works, I researched Agile Methodology. Agile Methodology is used mainly in software development, with a focus on involving the customer in the development of their software, and also on delivering usable software quickly. Agile usually relies on effective communication between a small team of motivated developers and the customer. I found it an interesting concept to learn about as an alternative to the rigid, more mainstream approach to software development. One important part of Agile is the “daily stand-up”, which is a time everyday where everyone stands up and talks about what they did yesterday, what they’re going to do today, and any impediments they may have.
After lunch, Tim took me through the “ins and outs” of test driven design, showing me examples of tests performed on some code he had written in Ruby, which in full honesty, took me a while to understand. Tests aren’t something I’d ever stopped to consider in my whirring, geeky mind, so it was a good opportunity to learn something new.
To get me started with some coding, I was directed to the intimidating realm of Project Euler, something I’d looked at previously, but not had the confidence to attempt. Project Euler is a collection of challenges for those with an overlapping interest in mathematics and coding to practice their skills. It requires problem solving and versatile thinking to solve any of their challenges. I, for some reason, decided to start on problem three - find the largest prime factor of the number 600851475143. I needed a little bit of help at first to switch my ideas from the classic pencil and a calculator method of solving, and instead to creating something to work it out for me.
Working on problem three actually took me over to Tuesday morning, by which point I wouldn’t have minded if i never saw any of it again. However, the sense of achievement after completion was definitely worth the frustration. As an act of celebration, I decided to start working on problem one, which took considerably less time to complete than problem three, and a lot less assistance.
After a little bit of time to start writing this blog, Tim helped me test the code I had written for Project Euler problem one. We installed pytest and proceeded to create a test to make sure the code I’d written worked with different numbers. We also added code and a test to ensure that if a negative number was entered, the message “No negative numbers please!” would be displayed.
I next decided to try problem two of Project Euler, which involved finding the sum of all the fibonacci numbers under four million. I managed to write all of the code myself, and got the answer right first time, which really boosted my confidence, and may have resulted in a very loud “I DID IT!”
As a continuation of Monday’s Agile Methodology research, I next looked at the differences between Agile and Waterfall. Both are applied to software development, but drastically different at times. Waterfall has a focus on planning and adhering strictly to that, whereas Agile sees change and planning as you go as a positive. Personally, I quite like the Agile approach. Although both have their uses, I believe adaptability and communication are at times more useful than obedience and rigidity.
I started Wednesday with some blog writing, before moving on to writing user stories with Maria’s help. User stories are a short sentence that explains the requirements a user wants in the system. That sentence can then be split up into smaller tasks if necessary. At first I found it quite a difficult thing to understand, but the analogy that I came up with was that it’s like Cluedo. Professor Plum in the study with the lead piping becomes Professor Plum would like to effectively bash someone over the head through the use of a lead pipe in the study so he can frame Reverend Green, although a much less morbid version in the case of software planning.
Because I am fairly new to coding, I was asked to review several games with an aim to aid beginners in starting to code. The three games I chose to look at are Ruby Warrior, CodeCombat, and CSS Diner. As I wrote a review on them, I won’t give away any spoilers here.
On Thursday I took in my own computer to get some help setting up an environment where I can comfortably code from home. Tim and I first tried to install Atom, an open source text editor that works perfectly for Python. We attempted this multiple times in several different ways, with the same response declaring it didn’t exist. It took us around 20 minutes of trying, to then realise that I hadn’t connected to the wifi. After that amusing situation, we got Atom installed fairly quickly and without any further issues. We next had a look at my Python version, and installed Python3.6 as well.
I continued to use my own PC for the next half of the day, attempting Project Euler problems four and five with Finlay. He first created a solution in C++ and I tried in Python. As my python knowledge is a little lacking, it did take some help, with me not always realising the full extent of what I can achieve in Python. It’s definitely something difficult at times to get used to, the difference between thinking about a problem as if you were using a calculator, and working on a problem where you want the computer to do it for you. When working with a computer, it should not only be able to work with the numbers you entered, but with any numbers you might enter. To come up with an algorithm from scratch can be quite a daunting task, especially if your don’t understand the full scope of what is a possibility. Despite the obstacles, with Finlay’s assistance I was able to complete both problem four and problem five.
I started Friday with some more Project Euler, with a little help here and there, mainly with increasing my understanding regarding the return statement in Python. I will definitely continue to work on Project Euler as I enjoy the problem solving, and I think it’s an effective way of widening your coding vocabulary, as well as keeping you practicing. I think I may even challenge my friends to work through the problems too. Nothing like some healthy competition to keep you motivated.
I woke up this morning and realised that it was going to be my last day here. After a week of something, it almost becomes normal. You almost forget the towels used to live in that cupboard across the hall. You almost don’t remember that the poster on your wall hasn’t been there forever. You almost don’t realise that you haven’t just been doing work experience for the past three years. It’s strange how normal something can become in such a short amount of time. I have really enjoyed my time here at Mesomorphic, and I’m glad that I can bring some knowledge back home with me.
Thank you to everyone at Mesomorphic for having me this week and making me feel welcome.
We would love to hear from you so let's get in touch!