My year as secretary

For the past year, I’ve served as secretary for the University Of Sheffield’s Computer Science Society. My role involved organising meetings and keeping contact with the department, the rest of the university and external parties we organise events with. 

During my time as secretary, I delivered three different workshops on topics such as Introduction to Programming, Introduction to Android Application Development and Introduction to Unity game development as well as running socials to local bars and club nights. We also ran our annual game building competition “Sheffjam VI” which was a really fun weekend where we sold over 50 tickets and people got to compete and build a game in 24 hours. I also got to lead the organisation of our end of year ball which was a really fun evening to celebrate the past year. We also organised a couple of collaboration events – we organised a massive night out with all the other engineering societies which had an estimated 250 attendees and I also helped organise a workshop led by Sky on interview preparation techniques.

University is a great chance to volunteer your time to help run events for your other students. Although it sounds cheesy, I honestly feel I got much more out of being the secretary for CompSoc than I gave,  this position has helped developed administrative skills, organisational skills as well as given me valuable experience in managing and working with small teams. 

My team was absolutely fantastic as well, with it being an elected and voluntary position, no-one was being forced to do anything, therefore, meaning that everyone wanted to be there and would each, therefore, pull their weight.

As it’s coming to the end of the year with lectures coming to an end and only an onslaught of exams to look forward to we had our annual general meeting, I was successfully elected president of the Computer Science Society for the 2019/2020 and I’m nothing but excited, I feel that having been on the committee for 2 years now I’ve built up enough experience to prepare me for the role but I also respect the challenge that it’s going to be. Fortunately, I have a brilliant team behind me with more eager to join each day – I’m excited for the next year and what we can achieve.

Below shows this years committee – I’m so proud to have worked with these guys and I’m looking forward to the year ahead.

[Left to Right] Bhavesh Prajapat, Tiggy Carr, Russell Penn, Alex Yates, Barnabas Hermesz, Rafael Cavagnoli

Teaching programming at different levels

I realise I haven’t touched my blog for quite some time, I’ve had a lot of work on at university mainly with assignments and organising events for the Computer Science society. Right now I’m on my way home to St. Albans in an East Midlands Train which I always forget doesn’t have plug socket. So, for as long as 85% charge on a MacBook Pro will allow, I thought now’s better time than any to talk about some of my experiences teaching programming in the past.

For the past year I’ve been serving as Secretary for the computer science society at Sheffield university, the role is fairly full on to be honest. Most of my work involves writing minutes for our weekly committee meetings, booking rooms for events and contacting anyone inside or outside of the university that we work with. One of the roles that I volunteer for regularly is running our societies workshops, as a society we aim to provide computer science students (or anyone that’s interested really) a chance to learn extra topics that aren’t covered in the curriculum (or not in particular detail or what have you). We’ve run many workshops on topics such as Linux, Git, React, Angular, Vue and PC building. So far I’ve delivered three workshops, a general introduction to programming for non-computer science students, an introduction to Android application development and an introduction to Unity game development and I’m currently preparing to doing a workshop on React, Angular and Vue.

One of the main challenges I’ve faced when running these workshops is with peoples skill levels and past experience. In particular my Android App Development workshop and the Unity Game development workshop. With both I had a mixture of computer science and non-computer science patrons therefore having to deliver content that’s relevant to both parties was very challenging. In both cases I would find myself rushing over the programming side of things, creating interfaces here and instantiating objects there – for the seasoned programmers in the audience this came second hand to them and they were only there for the subject specific knowledge of how to use the phones sensors or how to create 3D particle effects, however more often than not I’d have to slow down and explain to those in the audience what a class is or how variables work. Luckily for me I’ve both privately tutored programming to complete beginners as well as taught programming to a class of year 6 pupils for two years, teaching these people this basic content wasn’t the hard part however, it was keeping those who have programmed before interested. The way I usually mitigate this issue is by giving the experienced programmers challenges to work on whilst I help someone else out, for example in the game programming workshop, whilst I would help fix bugs on one persons computer I’d get the others in the audience to try and figure out how to edit the environment in their games.

This really reminded of when I used to help teach at a primary school. When you gave the pupils a task some would race through it and complete it within 30 minutes in the hour and a half session so would always need something else to keep them occupied. Instead of giving them next weeks content to move onto it would be best to test them with the content they already new. When teaching programming, once I’ve taught about variables, if/else commands, inputs, loops and maybe even functions instead of moving onto more higher level topics like classes or multithreading I’d get them to try and make a text based adventure game. This was great because it meant that they could show their friends what they had made and get them to play each others games, not only this but it also helped reinforce what they had learned and they could keep working on these games until the session was over, keeping them occupied.

An issue I’ve faced with both teaching primary school students, privately tutoring programming and running workshops at university is dealing with peoples expectations of these events. A lot of people come into programming workshops hoping to come out making the new Facebook or building the next Call Of Duty, in both my Android App development workshop and my Unity Game development workshop I’d have people at the end of both sessions come up and ask me really specific questions, basically asking me how to go about building their million dollar idea. Usually I explain to them that if I knew how to precisely build their app/game I wouldn’t be here teaching a general introduction to the topic. What I do is give them a general idea on how I’d go about doing it and then point them in the direction of useful resources such as books and online tutorials on the subject – this usually suffices. With younger students however it’s more challenging, letting them down that “No, in this hour session we will not be building Minecraft” is tough because you still have to keep them interested and excited about learning to code, how I went about this in the past was by giving the stuff I was teaching a fun context, I.e, by the end of todays session, you’ll be able to make your own text based adventure game, or a simple game of Brick-Breaker. It stands to reason that kids don’t really care that much what an if statement is.

My train is just pulling into St. Pancras so I’m going to have to cut this blog post here, I hope me writing about my past experiences teaching programming has been interesting, I have to be honest I find it really enjoyable watching somebody be able to build something they’re proud enough to show to a peer and would definitely recommend to people to volunteer for any chance to teach.

Revising and resting over the holidays

Going back home for the holidays is a great time to recharge batteries but for many students we often have exams to look forward to coming back. The best thing to do in my opinion is to keep an equal balance between socialising, relaxing and working. For me at least socialisation and relaxation are both mediative processes, being able to talk to friends and family about my past term at university as well as taking time for myself by either binge watching Netflix or going to the gym allows me time to reflect on what I have achieved over the past few months.

Often I find myself not taking the time to properly to appreciate the successes I’ve made for myself. Talking to friends and family really helps affirm the decisions I’ve made and helps put things into perspective. For example, this year I was able to secure an internship at a fin-tech company after throwing out dozens of applications to different companies. It was definitely nice when people would congratulate me on my achievement and gave me a chance to slow down for a second just to see how far I’ve come.

Revision on the other hand is a necessary evil, for some weird reason I’ve always liked revising, being able to sit down and revisit topics covered over the term in my own time I find somewhat cathartic. I, like many people, have my own way of revising, which I am sure I’ll cover in another blog post. I enjoy being able to go through text books and lecture slides and copy out the text, being able to write out the words myself provides me the ability to stop as soon as I get to an area that I am stuck on and then go over in much more depth. I also don’t like going over my own notes, I find it much better and more reassuring to go over the lecturers notes or the notes in the text book – these are notes that have been written by the subject’s professionals not by someone who might have been nursing a hangover in a 9 am lecture one morning.

Another thing I like to make sure I do is not to make a revision schedule. One thing that really annoys me is that although most people would agree that everyone has their own form of revising, most still say that you should create a revision schedule. I find this advise really redundant. If for example, you have 3 hours free one day, and you have to revise Maths, English and History; lets say you’re completely confident with History however Maths and English you are still struggling with, if you were to stick to a revision schedule saying you have to do one hour of each it would be ridiculous as you’re practically wasting an hour revising History when you could be working on your Maths or your English! Similarly, let’s say you were said at 1 O’clock you’re going to go over Geography and then at 2 O’clock you’re going to go over Biology, but it’s just hit 2 and you’re already halfway through a Geography essay(!) what are you meant to do then? This is why I don’t suggest making a revision schedule and just make sure you’re revising what you feel you’re least confident on. During my GCSEs I really struggled with History, at the start of the year I was getting Ds on most of my work and I found it really challenging, on the other hand I found I was really quite good at Computing, when revising for my exams I focussed a lot of effort on History, trying to make sure I remembered the dates of things and how to properly answer the longer answer questions, I must have spent at least an hour and a half a day revising for History, whereas for Computing I would only do the odd past paper once or twice a week and maybe spend and an hour on SQL (a topic I hated) – both subjects I achieved an A* in because I spent the relevant amount of time on both.

Over the holidays therefore I’ve tried to focus my efforts on the topics that I really struggle with, if I already understand something I should go over it certainly, however it’s not necessary to go into depth or to spend excessive amounts of time focussing on these topics. I find this mindset really helps in life as well, a lot of the time there are fights not worth fighting, it’s much better to exhaust your efforts on something proactive that you can change and make change towards – if I get upset that I failed a tech test for an internship, instead of being frustrated and wasting my time telling my friends just how unfair this test was I go away and I study the topic that the test was on, if it was on search algorithms, I go and take a couple of Hackerank challenges, if it was a problem with my JavaScript skills then I go and brush up on those. Being able to pick and choose your battles is a really good life skill and really well talked about in Mark Manson’s book The Subtle Art Of Not Giving A F*ck which I would highly recommend.

Anyway, most of this blog post has been me procrastinating from revision anyway so I should probably get back to it!

Why I’ve decided to start a blog?

I thought to myself a month ago that I needed a place to hold content about my personal projects and endeavours – I’ve had personal websites before in the past but they’ve only ever been a few static webpages that I was mainly using for the web-hosting rather than for displaying information. Since then I’ve decided it would be nice to keep a blog, nothing to be updated too regularly but something that could at least hold details about my work on personal projects, university work as well as professional work.

Whilst at university I’ve also run a bunch of workshops on basic topics like python programming to more complicated topics like Android app development and Unity game development, I think therefore I could attempt to also try and upload some technical tutorials to this blog but also hopefully some less technical tutorials on topics such as internship applications or revision guides.