This blog post is an extended version of the presentation I’ve been requested to give for 2nd year students who are about to start their own placements. I felt that the day I spent preparing for the presentation would’ve been largely wasted due to the briefness of the presentation, so I’ve compiled all of my notes and thoughts below. Please note that this has been written as reflection on a past experience, so it is quite subjective.
TL;DR: Good industrial placements are a great idea, more people should do them.
Finding a placement
If you’re still looking for a placement, back in 2017, after sorting out my placement contract I wrote up a blog of my experience and general tips I’d give to my past self or someone else trying to find a placement, so go ahead, check it, hopefully you will find the tips useful.
Link to the post: https://tomaskul.github.io/2017/blog-entry-1-finding-and-applying-for-placements/
The company
I found my role at the very last minute, and I was to be based in north west of UK, working for a company within energy industry. At this point, I knew nothing about the energy industry, however with the versatility of software engineering, having expertise within the industry isn’t a huge barrier of entry, so that’s nothing to be worried about too much if you’re going into a field that you’re not 100% familiar with.
What I worked on
One of the business branches of the company was Technical Services, which as the name suggests provided technical services to clients within the aforementioned energy industry. One of the offerings of this business branch, was inspecting and reporting on the condition of overhead lines (pylons) and then sending these reports in a spreadsheet form.
My project was to take this archaic approach and modernize it, by creating means of and presenting these reports in a web application.
This was a solo, greenfield project, with only tie to anything existing being the usage of existing spreadsheets. I had to go through the full SDLC during my placement, from gathering requirements, outlining project specification to testing and deployment (for a ton of boring details feel free to read my other blog posts).
One of the unfortunate things during my placement, was that I didn’t work as part of a team, and whether you think that’s your cup of tea or not, I personally felt as though I could have learnt more, and had an even better time, whilst working in a team.
During my placement I undertook both the developer and the project manager positions, which gave me a lot of responsibility, ownership and forced me to utilise variety of existing and newly developed skills.
Coming back to working in a team, I:
- Participated in daily stand-ups, which I would say are generally different from what I experienced during 2nd year group project (in this case, different does equal better)
- Performed code reviews
- Lead FTR meetings of my project, where I walked through my progress with senior devs
- Had numerous peer-debugging sessions
- And more…
So in a sense, while I was working on an individual project, I did also contribute to the wider team and definitely got some benefit regardless.
Transition
The transition from student life at university to world of work wasn’t some huge, life changing experience, however I did learn a lot of valuable lessons and one of them is that it’s not as hard as you may think.
Structure
The biggest and the most obvious change is the consistent structure of your day-to-day life. For those who have worked full-time job in the past, this is nothing new, however, if you haven’t had a full-time job in the past, this might come as a small system shock (nothing unmanageable). At university, your timetable changes from term-to-term, so unless you follow your own routine that accommodates this variability (i.e, wake up 8am every day), you will have to adapt to this.
This might sound awful at first, starting your days 7-8am and finishing 4-5pm, but I personally found this structure particularly helpful, and this comes in terms of:
- Increased productivity
- Increased planning ability
- And general sense of comfort
Focus
On the other side of the structure/routine that I praised earlier is the inherent free time limitation, which is what many people worry about and dislike. Regardless of whether you enjoy what you do for living or not, and this might purely come down to your attitude towards life, but I found this limitation to be a huge driving factor for me figuring out what I truly care about and what I want to spend my valuable, free time on.
For instance, I initially thought I’d figure out what I wanted to do for my dissertation, prepare for final year, so that when it comes around, I’d crush it and graduate with a shiny 1st class degree. But not long down the road, I realised I found little joy in doing this.
Through trial and error I found subjects and things of interest that I was happy to spend my time on. In a nutshell, as someone who hasn’t taken a gap year, I used the placement opportunity to “find myself” in a way, by exploiting this limitation. Having funds to support my hobbies and interests was also of great help.
I suppose where I’m going with this is, is that the placement year isn’t only about you gaining career related skills, it can be a lot more than that.
Distance/location
Last, major thing I’d like to note is that if you’re like me, and don’t mind moving to a new/different location for work, one thing to keep in mind is social life. While work wise everything was going swimmingly for me, being on the other side of the country from my university friends, and couple of hours away from family and home friends, did take some toll on me.
Luckily there was some outside of work social life with work colleagues, I had a friend who lived relatively nearby in Liverpool and I managed to get to know people outside of work, but for someone who might struggle to make friends, or have a tough time adjusting to new locations, I can how this could become a major issue quite quickly.
So, if you are one of those people, do keep this in mind, make sure that your current social circles aren’t too far away as it will definitely be something you’d rather have, than not.
What I learnt
Over my placement I learnt a ton of things which have become second nature at this point, so it’s hard to identify them all. Out of the things I can list, I managed to break them down into 2 distinct, and equally important categories: Technical and soft skills.
The romanticised version of a software developer writing code 22hrs a day in a dark room just isn’t true. To be a moderately successful developer you need to have a mix of hard and soft (technical and non-technical) skills, both of which in my opinion are equally important. What’s the point of being able to write extremely well performing code if you cannot communicate to someone else, what this code does? How are you going to sell/market your world changing app if you know nothing about marketing/hiring someone to do it for you? While there are definitely outliers from this rule, I would say generally, both types of skills are greatly valuable.
So here’s what I remember learning and getting better at during my placement:
Technical skills | Softer skills |
---|---|
C# | Improved project and time management |
.NET framework | Improved ability to provide constructive criticism/feedback |
Asp.NET MVC | Ability to write passive aggressive emails |
Microsoft SQL Server | Liaising with multi-skill personnel |
SVN (dinosaur version control) |
Key takeaways
If there’s anything you’re going to take away from post onto your placement, let it be the following things:
- Don’t be afraid to ask questions - University doesn’t teach everything you’ll ever need, and you will definitely not know everything you’ll need to know, asking a quick question might save you hours if not days.
- Don’t be discouraged by the 9-5 structure, embrace it
- Read “Clean code” by Robert C. Martin - It’s a fantastic book, cannot recommend it enough.
- Be open to constructive criticism - Nobody’s perfect, and if you do not listen to constructive criticism and do not reflect on it, you’re only harming yourself.