I graduated [Imperial College London] in 2013 with a Master of Engineering degree in Computing (International Programme of Study).
The first year of studies comes with many challenges. For many, like myself, it means leaving home, which may well feel like starting a new life. Additionally, students who to this point had been top of their class can find it intimidating that they are suddenly surrounded by equally bright and intelligent minds. Such gathering of many exceptionally ambitious personalities naturally leads to a highly competetive environment, which surely makes holidays and other breaks always feel well deserved.
It has to be noted, that many first year Computing studends come to the course with pre-existing knowledge and skills. This may be a concern to mathematical minds without practical programming experience as it certainly was for me personally. By no means should this be in any way discouraging as the lecturers are doing their best to put everybody on the same page and give them an equal opportunity to excel. The lecture series on Haskell, a seemingly unconventional at first, purely functional programming language, by the rockstar reader Dr Tony Field certianly plays an important role in this process.
The often asked question, which I find rather unfortunate, sounds 'What programming languages did you learn at the university?". I came to realise that true programming education at the academic level is not about the particulars of a certain technology. Surely, during four years of studies there is plenty of time to master a handful of languages but the true skill lies beyond. It is what is being taught at Imperial - the deeper understanding of the principles, and that is precisely what matters the most. It is the depth of the analysis and the variety of concepts you are being exposed to which teaches you how to learn any technology, even one not yet available today.
Naturally, there are many other skills which are to be learned throughout the course. Team work, especially emphasised in the third year is a big component of the degree. Unlike in the past, nowadays there aren't many projects in the software engineering industry where one man's work suffices. There are certainly plenty of exceptionally brilliant minds, especially at Imperial, but positions for individualists incapable of effective team work are rare to come by. Therefore, for a sucessfull professional career, it is absolutely vital to learn how to contribute to a project that involves many, some of whom may not even be engineers.
Another important chapter of the course is the compulsory 6-month industrial placement. In my experience, the placement offered not only a great opportunity to enage in an industrial scale project but also became an invaluable asset in my future career developement. An appreciative recommendation from your manager, a professional who had seen you at work for half a year before you even graduated, can take you a long way.
This, together with the fact that in the UK, as an Imperial College graduate, you are actively seeked for graduate roles makes up for an excellent start into the professional career as a software developer.
My final piece of advice to prospective students is to engage in an activity outside of programming, which on its own may become very absorbing. There is plenty of opportunities within the many clubs and societies at Imperial as well as throughout London and one should have no trouble finding a pastime to keep a healty mind and body. During my studies I was a member of the Immortals American Football Team in its early years and proudly represented the university as a player throughout the season.