Posted on 24/11/2015 by
I came into the trading technology industry with a background in physics and engineering. My experience in programming was limited to a couple of modules at university, some online physics games which I developed in flash and some more recent web development in HTML5 and JS. All of this was mostly front-end work, so my back-end knowledge was minimal, despite this being the area I felt I would start my career in. Luckily, I was placed in the FX trading technology team within RBS where C# is used as their main back-end development language.
Whilst I enjoy picking up a new language on the job, I found it very useful to attend the formal training that the programme provided. The training was completely separated from your day to day working activities and enabled you to fully concentrate on learning. By the time I started the training course, I had been working at RBS for around 3 months which gave me enough time to pick up enough of the basics for the course to be extremely relevant. We started off looking at the very basics of .NET; exploring the basic data types and then moving on to use reflection to get detailed type information. This was after learning about how the code we write is transformed into an intermediate language before it is run by the computer.
The course set up was excellent. We were in the Mthree office training room and were each provided with a laptop which had a virtual machine loaded with all the necessary settings so that we could just boot it up and start coding. After each topic lecture, our instructor would set a small exercise to test our knowledge whilst it was still fresh in our minds. This style of hands-on learning means that each topic is firmly cemented in your head before moving on to the next topic. I would not have fully grasped some of the concepts being taught without this follow-up programming exercise.
The most interesting day for me was on delegates, events and language integrated queries (LINQ). Lambda expressions were a completely new concept to me prior to working at RBS, but I found they were used very frequently by my team. I understood large multiline conditional for loops, but did not fully understand how to simplify them to single line LINQ statements. This was quickly sorted out once the lesson began and the underlying concepts were explained, and for the rest of the week I used LINQ expressions wherever I could in the coding examples!
The course then moved on to explaining the basics of threads and asynchronous execution. I found that I had seen this being used in the FX options codebase, but hadn’t fully understood what it did and how to implement it correctly. This part has been especially useful upon return to work and I’m now finding that I can improve my existing code, especially when working with databases. After this, the course focused on front-end developing in C#, touching briefly on the web API framework before moving onto ASP.NET MVC. Although these were less relevant to my current role, they were still very useful and I can see how I could utilise them in a few personal projects that I have in mind.
Overall, I found that the course has drastically improved my theoretical and practical knowledge of the .NET framework. I am more confident in my role as a developer and I have already used a great number of the skills that I learnt in my day to day coding.
By Tom Cains