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