I graduated from The University of Surrey in 2006 with a 2:1 degree in Electronics and Computer Engineering (with Honours). After university I was disheartened that my education was over, but I left university feeling that I wasn’t good enough to become a professional programmer, much less a software developer. After I graduated, I put any ambition of becoming a software developer behind me and pursued other interests.
In 2008 I graduated from The University of Bristol with a Masters Degree in Entrepreneurship (Pass Award). This allowed me to understand business like never before. I learned the importance of creating value, the importance of teamwork, and the parts that make a business successful.
Unfortunately, my education finished at the most unfortunate time. In summer 2008 it was the height of the recession, and no one was employing. I only went to a few interviews, but the experience was the same for each, there would be at least 50 graduates at gruelling assessment days all competing for 2 or 3 positions. It felt like a meat grinder for graduates.
In the end I went to work for my own family. We ran a successful catering business, a hybrid Chinese takeaway and Fish and Chip shop. We had good people, the work was intense but satisfying, and here I stayed for many years.
While I was working for family I kept my entrepreneurial spirit alive by reading many books about business. Even attempting to start my own internet marketing business on the side. While fun, it was time consuming, and its success was largely dependent on the whim of Google. After the Google Panda update, which changed the SEO landscape dramatically, I threw in the towel and concentrated on more traditional businesses.
At one point I was looking at how to model business systems using tools borrowed from software development i.e. UML. This was when I had my first break-through in programming in many years since I left university.
I bought a book called ‘Applying UML and Patterns’ which introduced me to the concept of the “representation gap”. The book provided guidance on how to get from domain level problems to code level solutions. It also re-introduced me to object-oriented analysis and design, but perhaps most importantly it introduced me to applying programming heuristics and design patterns. This was a pivotal moment that rekindled my fascination with software development.
Following that break-through I began purchasing highly rated software development books from Amazon, such as:
- Code Complete 2
- The Pragmatic Programmer
- Analysis Patterns
- UML and the Unified Process
- Algorithms by Sedgewick and Wayne
- Head First Software Development
- Clean Code
These books became my foundation of knowledge for software design and programming and launched me back in to software development with renewed verve. It provided me with the education I appeared to be lacking from university and gave me new found confidence in what I could achieve and contribute.
Unfortunately knowledge isn’t enough, being able to apply it is what makes a person truly productive. And since then I have continued to expand my software development library of knowledge, but also started several projects to practice what I have learned.
At the moment I am discovering that without the help and guidance of like minded peers and mentors, I am not gaining enough experience quickly enough. So, while I continue to work on my own projects, I am also looking for work in the software industry to catapult me from inexperienced book learner to a highly productive and experienced software developer.