Struggling Software Development

A short introduction.

I’m Kho. I have a Bachelor’s degree in Electronics and Computer Engineering and a Masters degree in Entrepreneurship. My full name (including qualifications) is alphabet soup.

Mr Kho Minh Vi BEng Msc.

You may think that I’m a highly skilled, successful, and knowledgeable person. The truth is, after all that education, I work in a Chinese takeaway – underemployed is an understatement.

You may wonder, how could this be so? If you had my qualifications you’d be light years ahead of where I am today. The truth is I am a victim of circumstance. I graduated from university at the height of the recession in 2008/2009. No one was employing at the time. I had the fortune (or misfortune) of belonging to a family business, a Chinese takeaway. I figured, why not learn about the business my father created. 5 years on, I am still here. I blame comfort. Flexible hours, good working rates, and a highly valued person.

The problem is that I am now in my late twenties, and I hadn’t planned on staying in the takeaway business for the rest of time. The truth is, I am an engineer at heart. I love to understand how things work, how to make things work, to innovate and to create things.

One of the things I loved to do most at university was to create programs. I love computers, I love making computers do things. The problem was – I was never really any good at it. Programming was my kryptonite. My applications would always have bugs (if I could get it to compile) and in the end they were never really finished.

I personally blame my attitude during my youth, I used to think that you could coast through life. This made me lazy. I tried cramming for exams, leaving assignments until the last minute. While I managed to still get a good grade (2:1) I left university with this feeling of guilt. The things I should have learned, but never did fully grasp.

Over the years since, that nagging feeling lead me to study more about the subjects of electronics and computer programming than I ever studied during my time at university. During my spare time I would study electronics, web development, and most importantly Object-oriented programming.

OOP always fascinated me. But it was one of those subjects I didn’t learn properly. Over the past few years I have collected a small library of books devoted to software design and development. I have read books cover to cover, thousands of pages, hundreds of thousands of lines about the subject. I now know more about computer programming than I ever did before.

So where is this going? The truth is, I haven’t written a single computer program (besides a few examples) since I left university.

My plan is to start a professional career in software development, real software development. But without any prior industry experience, or even a program I developed as a hobby, there’s really not much to persuade a potential employer to hire me. I would not be a good bet, and I know it. I know it all too well.

So I have started this blog. Not entirely sure why. To document my experience I guess, or programs I intend to build. As a place to pin up computer code for the world to see. As a record of my progress as a software developer.

Many programmers start out by contributing to opensource projects, unfortunately I have yet to find an opensource project I would like to join – or one that peaks my interest. So maybe I will propose a few of my own projects. Two have sprung to mind in recent days:

  • TV Guide
  • Desktop App Launcher

They are not anything particularly special. But it might be a good starting point.

Language of choice: Java.

Why? There are rumours that Java is a dead language. But I see it as a language that is highly evolved. There are many libraries available for Java developers, and many companies still adopt it as their main development language. As far as I can tell, Java is not dead. Not even close. Did I mention its a wonderful and easy language to learn?

Sure it lacks some of the more interesting quirks that C++ has, such as references and pointers, and resource management. But it is still a good language to use to learn other things, like encapsulation, design patterns, computer algorithms.

It also has a bunch of Java APIs to make the build process faster (I think).

So here we are, at the start of a thousand mile journey. Now whats the first step?


Comments are closed.

Powered by WordPress. Designed by Woo Themes