Monday, 15 October 2012

I learnt the importance of experience the hard way


No wonder why most job openings requires some form of experience, at least 2 years for most of them. Before I couldn’t quite understand why experience was that important, I though all you required was amazing talent and you can just good as anyone experienced. That was until I learned my lesson the hard way.

While in college I had quite a reputation as one of the few who really loved programming. I played with a number of languages and read a lot of books. I aced most of the programming exercises that I came across while studying these books. I had no trouble understanding programming concepts like object oriented programming, functional programming e.t.c.  I was quite confident of my programming abilities; a bit arrogant.

While during my intern programme, I met a business man who offered me an opportunity to freelance for his small business. He ran a business consultancy firm. Back then, 2007, only a few businesses in Zimbabwe had gone online. There were a few web development agencies in the country and none in Gweru, where I was located. Business that wanted any programming related work done for them had to rely on freelancers who were also mostly non-existent. Employing students like me was probably the only option at their disposal.

His main object was to create a website that would allow him to bring in new clients and also communicate effectively with his existing customers. Also he wanted to bolster his brand image. The website was obviously going to be a database driven website. He wanted each customer to have its own account. Customers would be able to send him messages and he would be able to do the same. He wanted also to be able to have a feature that would allow him to sent one message to lot customers at one time. He would also require a form of content management system to allow updating the content of the website.

I agreed to his project proposal without giving it much thought. He wanted me to complete the project in a month. I didn’t see any problem with this; I had started to learn PHP and it was really easy.  Every exercise I did was just ridiculously easy. Then there was HTML, JAVASCRIPT and CSS   which just even more easy. With this background, I thought it was just a walk in a park. I charged a couple of million dollars (Zim Dollars), 3 million dollars, a paltry figure.  He paid a down figure, 2 million dollars, and I began on my project. 

I started with design which I thought was going to be very easy. I had no experience other than books that I have read. I did not know I required some image manipulation techniques which I didn’t have. Also even though HTML seemed easy, I was quickly forgetting some of the tags required and my depth was just narrow. I ended spending more than a week, 8 days, just trying to get a decent interface. It was quite a nightmare.

I moved on to the core programming in PHP. The loosely natured of PHP had tricked into think it was going to be easy. I quickly found out that a lot of effort was required to tie the loose ends together; PHP, JavaScript, HTML, CSS and MySQL. To tie it all in one framework that can produce a working foundation to create a fully functional project took me another week. I was now left with only two weeks to complete the project and I hadn’t done anything of note.

I thought things were going to be little easier now but it wasn’t to be. He would call on me to explain progress and I would assure him that everything was going according to the plan. I worked very hard to allow for the creation of customer accounts and also the authentication of accounts. This took me about 8 days. I was now starting to feel the enormous weight of the pressure on my shoulders. I had less than a week to complete the project, yet I had not even gone halfway through the project. I had the messages feature and a content management system, something that would require its own project.

The deadline quickly arrived and I had managed to barely finish the messages feature; I couldn’t manage to finish the broadcasting part of it. There was still the content management system part of it. My client was understandably very disappointed and couldn’t give me the rest of money until I finish the project. On my part I was just exhausted and I couldn’t imagine myself going through this again with content management system. I wanted a break so I just told him I wasn’t going to be able to finish the project.

My confidence plummeted and I just felt like I had lied to myself about my capabilities. The truth of the matter is that I had grossly underestimated the importance of experience. Firstly I had grossly underestimated the time and complexity required to complete the project. I had also obviously over estimated my skills. The result was a disaster. I should instead have started with smaller and less complicated project and pick up larger ones with experience. However my technical skills improved much than before; I learnt more from this project than from all the books I had read. 

No comments:

Post a Comment