I have successfully completed my Honours Bachelor of Science (HA Bsc) in Software Engineering degree with the highest possible mark/result - a First (yay!). My studies took place in the University of Hull (United Kingdom) for the duration of 3 years. Lovey department/university in a suckabolic city. But who cares about the city anyway.
3 years… It’s amazing how time just flies by. I feel like if it was just yesterday. My experience during this time probably deserves a short summary after all, so here I go.
To start with I have quite enjoyed the degree as it was done in the University of Hull. Along with the theory came a lot of practicle “exercises” in the form of coursework. Those included cool stuff like:
- Developing a full blown windows mobile application on real devices with GPS (in C#)
- Developing two games in C++ and C#
- Developing a compiler (in C)
- more that I can no longer remember
and well of course the boring stuff like Databases and some maths in the first year.
Overall I don’t feel like the degree was very demanding. It might sound really bad, but I haven’t actually read anything else, but the slides from the lectures. Hell, I even missed a large portion of my lectures. During those 3 years the only book I needed (for the degree) was during the first year… a Maths one. This is probably due to my previous knowledge on most of the subjects and the ability to quickly read up and grasp the technologies. But overall, the key role was played by my involvement with the FOSS (Free and Open Source Software) community. I used my free time to work on different projects and to learn new exciting things on my own.
The importance of my (and in general the importance for all students) involvement with FOSS is outlined in a good presentation done by an actual student based on his personal experience, which unfortunately I am unable to dig out of my history/feeds ATM. Summed up (by me) and I can confirm from personal experience it is something like this:
You get to read a lot of code, written by different people. It teaches you and you get to know what bad code and good code looks like, what a good and a bad design is, so you don’t write lame student code and don’t end up with pumped up confidence and the wrong impression of the quality of your code. In addition you get to interact and work on something real and used by others in team with developers from all over the world, etc. etc. The list of benefits is endless.
Simply put, based on my FOSS experience I did all the coursework the proper way - not some hacky crappy code that works-ish, but well designed and developed code (where the scale for good and bad is the existing code out there). I usually ended up designing and developing beyond the requirements (but not beyond the coursework specification), which benefited me IMHO a lot.
What’s next? Thought Msc (Masters of Science) in .NET Distributed Systems Development. Fascinating, heh.
YAY for me and YAY for Free and Open Source Software!