As a first year student on a four year course, I was lucky to get an internship anywhere - never mind a chance to work somewhere as excellent as Red Gate. There were too many enjoyable aspects to list, but here a couple of my favourite: The Code Katas were a fortnightly opportunity to pair program with someone completely new in a different department, focusing on a small computer science challenge (of a similar style to Project Euler). In terms of new skills learnt per hour, this was definitely the most efficient way to learn. You quickly pickup new techniques working together with an experienced engineer, and it's a good opportunity to try test driven development or other paradigms new to you. You're free to pick a language and I found it greatly amusing when my 5 lines of C# turned into about 50 of Haskell (now that I think about it I probably should of researched built in time functions before jumping into it - look I'm still learning from the Kata even now!). Down Tools week occurs each year at Red Gate, fortunately for us during the internship season. Throughout this period every software engineer at Red Gate is free to choose any project, new or old, to work on. Therefore for a week of the placement a few of the interns banded together and hacked, prototyped and generally mashed code into a working extension for one of Red Gate's tools. While a rigid style of software development backed up by tests certainly provides the most durable code, this week was a fun chance to throw testing into the wind and see what we could create.
It was a fantastic learning experience working at Red Gate; I was treated as a normal developer and was exposed to a professional software development environment from the beginning. I felt great satisfaction when fixing bugs and completing "stickies". There were some frustrating moments where I didn't know how to deal with a problem, but the team always did their best to dig me out of those situations. There were also lots of opportunities to have fun with work colleagues; activities I got involved with included foosball, frisbee, table tennis, chess, bouldering and poker!