In my previous two articles I have discussed the majority of the main advantages and disadvantages of being a programming apprentice. Now you have an idea what I was up against and what worked in my favour, I feel like its about time I told you my duties as a programming apprentice. When I discuss my duties, keep in mind some of them was at the start and the others were towards the end (2 year apprenticeship.)
Lets start at the start, at the start of my apprenticeship it was mainly just a massive learning curve for me. I guess you can say my first duty was to learn, being chucked in the deep end I had to learn pretty quickly. There are a couple types of learning that I encountered which was obviously learning coding but also learning logic and the actual existing systems I would be working on. In my previous episode I mentioned to you guys the finance system was one of my first tasks and I can tell you it was a complex system with lots of business logic involved.
During my learning period, my C.E.O wanted me to develop by creating some small to medium size applications that the business could use. This way I was able to spend time developing my skill set with some use as the business would actually be using my applications.
The first application I made was a piece of software which could clean up your computer and make it go faster. Essentially, it was able to detected processes eating up your memory and were not critical and close them down freeing up memory and speeding up your computers performance. Along with the speeding up it was also able to clear out old log files, browser data and so on to free up memory on your computer to make more storage space. It was a cool little application and it gave me a decent understanding on how to integrate into windows.
The second application I created was a desktop icon organiser where you could simply drag and drop any files, folders, RDC’s etc onto a windows form panel and organise everything under one tab. The program had multiple tabs so you could organise everything on your computer under one program and launch the items from the software. When you dragged and dropped, it physically grabbed all the information needed and stored it locally to launch the files whenever clicked on.
My final application I created as an apprentice was an internal communication chat system for the business. An employee of the business can sign up an account, log in and see all the other employees on a contacts list. The user was simply then able to launch a chat with someone else and communicate with each other where the messages were sent and stored over a SQL database. (Sub Story, I also learnt after my apprenticeship send messages over TCP/UDP so no need for any data-basing.
It would make sense to discuss learning SQL after just briefly explaining the chat application that I created. SQL was probably one of my biggest learning curves with no guidance, just internet resources. The first thing I learnt was physically SQL Studio it’s self, so creating a database, tables, relationships and so on. Then after the code came, INSERT, SELECT, UPDATE, DELETE and WHERE.. Well, that was hard at first but again its second nature. Initially, it was only hosted locally which was pretty pointless as people could only chat on my machine. This is where I learnt the next part, WCF (Windows Communication Foundation). By learning WCF, I was able to host my services which pointed to the SQL database on a domain and I was able to reference them from the application. As soon as the reference was connected, pass over the parameters.. Bish.. Bash.. Bosh.. You can now use the application anywhere in the world and communicate with someone in a different office, country or planet.. Okay maybe not planet but you get the point.
Over my 2 year apprenticeship that was pretty much all my coding projects that I created and completed and remember I was only at work 2 days a week and college 3 days a week.
However, that was not the end of my responsibilities, imagine being put in a position where the company started to grow and a new C# apprentice was hired and it was my job as a junior apprentice to train that person. Yep, does not make sense to me either, where are these seniors? I did not turn down the challenge and I took up the responsibility of training the new apprentice. It is quiet important that I mention here by training the apprentice, it was essentially bringing him up to speed on the code knowledge I have which I explained in the above points.
Okay, I guess it kind of made sense I brought him up to speed with my level which to be honest I really enjoyed and also helped me out in the long run. Because he was the same level as me, we was able to bounce ideas off of each other and help become more creative. I had never experienced this before and my productivity and Ideas started to increase rapidly.
From this article I hope you got a general idea of my duties as an apprentice software developer and the challenges I had to tackle and also, the new responsibilities I took on to help others.
Until Next Time
My name is Andrew, passion for anything technical and fast. I am a software developer from London quick background check I started as an apprentice desktop developer and 5 years later and 2 jobs later i am now a desktop, web and mobile app developer working for a company just outside of London.
My passions is obvious and i love to share and talk about it which is why i am starting developer diaries, a spin off from my popular world of programmers page with over 100,000 fans world wide.