# [How I got into programming](/content/articles/how-i-got-into-programming/index.html)

[Nick Hibberd](/content/site-root.html)
25 February 2014

- [Share on Facebook](http://www.facebook.com/sharer/sharer.php?u=http://sharktank.co.uk/articles/how-i-got-into-programming/ "Share on Facebook")
- [Share on Twitter](https://twitter.com/intent/tweet?url=http://sharktank.co.uk/articles/how-i-got-into-programming/&text=How%20I%20got%20into%20programming "Share on Twitter")
- [Share on Google+](https://plus.google.com/share?url=http://sharktank.co.uk/articles/how-i-got-into-programming/ "Share on Google+")
- [Share on LinkedIn](http://www.linkedin.com/shareArticle?mini=true&url=http://sharktank.co.uk/articles/how-i-got-into-programming/ "Share on LinkedIn")

I have been working as a software engineer at Sharktank for 2 years. I write
Ruby and JavaScript, Python and Go. I’m an Agilist, a pair-programmer, and a
test-driven-developer!

I also didn’t buy a computer until I was in my late twenties. I still can’t
tell a motherboard from a microprocessor, and I’ve never played Call Of Duty.
Or Halo. Or any other computer games for that matter :)

Most of my colleagues studied computer science at university and have
had their heads buried inside a computer since they were teenagers. My degree was
in Politics, and I spent the first 7 years of my career working in a marketing
department.

People are usually surprised when I tell them that I’m a computer programmer (I
think they’re expecting me to say “accountant”, or “something to do with
insurance”), and I perhaps don’t fit the stereotype, but having been in the
industry for a few of years I can hardly imagine ever having considered anything
else.

It’s certainly the thing I’m best at and was most suited for, and I often wonder
how many other people there are who would love programming if they
had the opportunity to find out.

## Why didn’t I think of it before?

It was just never a consideration for me. I was not interested in computers
when I was younger, and I dropped IT at school as soon as I could. I stand by
that decision, if I had to do the kind of assignments we did in school today, I’d
drop it all over again!

By the time you leave school the choices you’ve made have already funnelled you
in a particular direction. I had no idea that a job in IT was ever an option for
me. You need a degree to do that right?

Like many of my peers I didn’t have a good idea of what I wanted to do when I
left university. It must be a strange thing to hear for someone who has been
playing around with computers since a young age, but it’s not always easy to
answer the question “what are you good at?”, or “what do you enjoy?”.

It seems obvious to say that you enjoy doing things that you have a
natural aptitude for, but it’s also true that not everyone realises what they
have a natural aptitude for until they try it!

I didn’t realise that I’d enjoy writing software until circumstances conspired
to give me that opportunity.

## Programming of the Excel kind

I used to be a bit of a whizz on Microsoft Excel. I worked in a marketing
department for a web business, and my day job comprised compiling sales
performance reports and exporting data from Google Analytics to analyse how
customers were using our website.

I took an unnatural pleasure in compiling extraordinarily complicated
spreadsheets, and I know I’m not alone in that regard! I have a number of
friends who work in accounting who measure their success on their proficiency
with a “spreado”, and with good reason. I’ve seen macros of impressive complexity
written by people in finance departments.

Excel is basically a friendly interface over the top of the VBA (Visual Basic for
Applications) programming language, but once you need to go beyond the
capabilities of the basic worksheet, you get into recording macros to automate
repetitive tasks.

Anyone who has stepped in a macro and changed any of the references has done some
basic programming.

I was pretty good at that stuff, and at one stage even wrote a primitive booking
system for use by the sales agents at the company consisting of a network of
shared spreadsheets that stored data in a Access database, way before the company
had any proper systems.

My sister even bought me an “I love spreadsheets” mug as a birthday present :)

I enjoyed being the go-to guy who knew most of the Excel commands by heart, and
could pluck a function out of the air, and looking back I can see it was obvious
that my strengths lay elsewhere, but at the time didn’t really occur to me that
this was only the very tip of the iceberg.

If I could see the nested IF statements I used to write back in those days I
would cry!

## Starting out in web development

I kind of got into web development by accident. I didn’t set out to be a
programmer, I just started doing things that interested me, and it grew from
there.

As part of the Marketing team at our web business, we were generally responsible
for what the website looked like, how people got to it and what they did when
they were on it. The nature of the role meant that I worked pretty closely with
the IT team.

I always felt pretty thick when it came to talking to them because they could
tell me whatever they liked and I wouldn’t know any better. Even working in
online marketing there are concepts that require a bit of technical knowledge
that never really sink in unless you use them yourself.

I realised that my career was likely to be in online marketing, and I wanted to
understand it all better, so I decided to learn how to write a website.

I went through the tutorials on W3Schools; they’re good, and easy to follow,
but enthusiasm dies quickly without an actual problem to solve. Nothing compares
to actually building something that you want to build.

I needed a real world challenge, and luckily one was on hand! My friends and I
had started a football team, and we took it pretty seriously, so I decided to
create a website for our team.

Inevitably I made every beginner’s mistake in the book - using fonts that were
only installed on my computer, rendering a page of 2mb jpegs and scaling them
down to 60x60px thumbnails, checking the site on a decent browser and assuming
it would look the same in Internet Explorer (still IE6 at that point!) - but I
managed to deploy a site to the web, got my friends to write stupid profiles
about each other for the site, and by the time it was finished I’d caught the
bug!

## Sticking at it

It was still a number of years before I’d make the switch to being a full-time
developer, and on numerous occasions I came close to jacking the whole thing in
disillusionment at the sheer amount of information I’d have to learn to become
really good at it.

I always managed to find little motivations to keep me going though, and more
importantly focussing on the next small improvement I could make, rather than
fretting about how much I still had to learn.

My motivation has been different at different times.

Firstly, as I’ve mentioned, I wanted to give myself a bit more real world
knowledge to aid my day job. I had a bit of spare time on my hands, and
considered pursuing a qualification, but (rightly with hindsight and IMHO) decided
to get my hands dirty rather than adding another line to my CV.

Once I’d started telling a few people about what I was doing I felt a commitment
to follow through with it and actually get something on the web. It’s enormously
satisfying to see something that you’ve produced go up on the web and to be able
to send around a link to your friends.

Next I wanted to make some money. I knew a bit about affiliate marketing, and had
some experience with SEO, and thought I’d join an affiliate program and try and
write a simple price comparison site. This required me to learn how to store my
data in a database, and to render dynamically generated pages.

I used PHP on the server-side, though if I’m honest I didn’t really understand it
then, and got by by finding little snippets of code online that I could copy and
paste to get over my next hurdle. My site barely earned me a penny, but getting
something working gave me the confidence to keep at it.

Then I started taking on jobs for other people. My mum wanted a website for the
church that she belonged to, and a friend of mine wanted a site for the charity
that he was just starting up. They wanted to be able to update the pages
themselves without having to write any code, which gave me the opportunity to
research content management systems.

I’d had a bit of experience using Wordpress, and could write some basic PHP, and
while I wouldn’t put my name to either site these days, both ended up serving a
couple of hundred visitors a month and were in existence for a few years.

Having played around with various technologies for a few years I got chatting to
a developer at my company who recommended trying Ruby on Rails. This was my first
taste of real programming and I started to learn the basics of application
design.

This was where my interest in programming took off to the extent that I would
spend most of my spare time studying different aspects of the Rails framework,
and I started to consider switching to become a full time programmer.

## Making the switch

I was lucky to the extent that I had the flexibility to switch jobs within my
company, and I realised that not everyone would have had that opportunity. Had
that option not been available to me, I would have started applying for
junior jobs in the industry.

I knew that the knowledge I’d gained through my own personal study had got me at
least on par with a recent computer science graduate. Whereas I didn’t have
the qualifications to support an application, I felt that I could withstand a
technical interview if given the chance, and that my self-starter attitude and
obvious passion for the work would stand me in good stead.

Now that I’ve been working as a full-time developer for 2 years I know that there
isn’t really a substitute for working day-in day-out alongside like-minded
people, and I know I’ve learned more in these past 2 years than in all my years
of experimenting in my spare time.

That being said, I would urge anyone who has the slightest inclination that they
might be interested in computer programming to take matters into their own hands!

## If I could give any advice…

### Pick something you want to build and build it

Even the simplest of websites will present you with challenges that you didn’t
anticipate, and will teach you things about the web that you can’t learn by
reading a tutorial. You will at times be surprised how easy to can be, at other
times frustrated at how the tiniest details can stand in your way, but ultimately
satisfied at seeing something that you’ve created on the web. And above all, pick
something that you care about, because that keeps you motivated when things aren’t
working out.

### Don’t let the stereotype put you off!

There’s undoubtedly a stereotype of an “IT geek” that must dissuade some people
from pursuing a career in IT, and I’m sure I used to have a bit of prejudice too,
but looking back I can see how silly that was. I’ve made some great friends, and
met some great people, and above all I’ve barely met a single person who didn’t
love their job.

### You don’t need expensive software to get into it

Pretty much all of the applications we write are based on open source software
that is freely available for anyone to download. You can get a seriously long way
without spending a penny, and the only hardware you’ll need is a low spec’d
laptop. A colleague of mine did all of his programming on a 11” netbook with less
than a GB of RAM, because he liked to carry it around with him in his man bag!

### Don’t give up when it seems hard.

Reading code can be like reading a new language. I’ve often had that sinking
feeling when faced with what looks like a page of gibberish and I’ve got
to make sense of it, but usually after going slowly and taking the time to look
up the words or constructs that I don’t recognise, I realise it’s not as
complicated as it first seemed.

Often when code is hard to read it is an indication that it has been poorly
written. Good programmers however strive to make their code easy for others to
read. Barely a code review here at Sharktank goes by without someone making a
suggestion as to how to make code simpler to read.

There’s a lot to learn, but not much that’s beyond the comprehension of anyone
who’s prepared to take the time to understand it.

There’s good reason that [this phrase](http://martinfowler.com/bliki/TwoHardThings.html)
is quoted so often!

### Remember that someone else will have run into the same problem before!

I often wonder how anyone managed to learn anything using textbooks alone. The
web community is enormous, and the free resources out there are truly staggering.
Particularly if you’re starting out someone will have written a tutorial for
every conceivable thing that you’d want to do. In years of developing websites I
can barely remember a time when I wasn’t able to find the answer to a question
via a few targeted web searches.

## Wrapping up

I never set out to become a computer programmer, but that’s what I’ve ended up as
and I couldn’t be happier. If I could have my time again I’d have chosen
different options in secondary school, and would have applied to do a different course
in university, but I try not to dwell on it too much, because I know I enjoy my
job now because I’m doing what I did as a hobby for many years.

I’d encourage anyone who’s even a little bit curious to give it a try, it could
be the best decision you ever make!

[See all articles](/content/articles/index.html)

Disqus Comments

We were unable to load Disqus. If you are a moderator please see our [troubleshooting guide](https://docs.disqus.com/help/83/).

G

Start the discussion…

Comment

###### Log in with

###### or sign up with Disqus  or pick a name

### Disqus is a discussion network

- Don't be a jerk or do anything illegal. Everything is easier that way.

[Read full terms and conditions](https://docs.disqus.com/kb/terms-and-policies/)

This comment platform is hosted by Disqus, Inc. I authorize Disqus and its affiliates to:

- Use, sell, and share my information to enable me to use its comment services and for marketing purposes, including cross-context behavioral advertising, as described in our [Terms of Service](https://help.disqus.com/customer/portal/articles/466260-terms-of-service) and [Privacy Policy](https://disqus.com/privacy-policy), including supplementing that information with other data about me, such as my browsing and location data.
- Contact me or enable others to contact me by email with offers for goods or services
- Process any sensitive personal information that I submit in a comment. See our [Privacy Policy](https://disqus.com/privacy-policy) for more information

Acknowledge I am 18 or older

I'd rather post as a guest

- [Favorite this discussion](https://disqus.com/embed/comments/?base=default&f=sharktanklabs&t_u=https%3A%2F%2Fsharktank.co.uk%2Farticles%2Fhow-i-got-into-programming%2F&t_d=How%20I%20got%20into%20programming&t_t=How%20I%20got%20into%20programming&s_o=default# "Favorite this discussion")

- ## Discussion Favorited!

Favoriting means this is a discussion worth sharing. It gets shared to your followers' Disqus feeds, and gives the creator kudos!

[Find More Discussions](https://disqus.com/home/?utm_source=disqus_embed&utm_content=recommend_btn)

[Share](https://disqus.com/embed/comments/?base=default&f=sharktanklabs&t_u=https%3A%2F%2Fsharktank.co.uk%2Farticles%2Fhow-i-got-into-programming%2F&t_d=How%20I%20got%20into%20programming&t_t=How%20I%20got%20into%20programming&s_o=default#)

- Tweet this discussion
  - Share this discussion on Facebook
  - Share this discussion via email
  - Copy link to discussion

- [Best](https://disqus.com/embed/comments/?base=default&f=sharktanklabs&t_u=https%3A%2F%2Fsharktank.co.uk%2Farticles%2Fhow-i-got-into-programming%2F&t_d=How%20I%20got%20into%20programming&t_t=How%20I%20got%20into%20programming&s_o=default#)
  - [Newest](https://disqus.com/embed/comments/?base=default&f=sharktanklabs&t_u=https%3A%2F%2Fsharktank.co.uk%2Farticles%2Fhow-i-got-into-programming%2F&t_d=How%20I%20got%20into%20programming&t_t=How%20I%20got%20into%20programming&s_o=default#)
  - [Oldest](https://disqus.com/embed/comments/?base=default&f=sharktanklabs&t_u=https%3A%2F%2Fsharktank.co.uk%2Farticles%2Fhow-i-got-into-programming%2F&t_d=How%20I%20got%20into%20programming&t_t=How%20I%20got%20into%20programming&s_o=default#)

Be the first to comment.

[Load more comments](https://disqus.com/embed/comments/?base=default&f=sharktanklabs&t_u=https%3A%2F%2Fsharktank.co.uk%2Farticles%2Fhow-i-got-into-programming%2F&t_d=How%20I%20got%20into%20programming&t_t=How%20I%20got%20into%20programming&s_o=default#)

live.rezync.com

# live.rezync.com is blocked

This page has been blocked by an extension

- Try disabling your extensions.

ERR\_BLOCKED\_BY\_CLIENT

Reload

This page has been blocked by an extension

pippio.com

# pippio.com is blocked

This page has been blocked by an extension

- Try disabling your extensions.

ERR\_BLOCKED\_BY\_CLIENT

Reload

This page has been blocked by an extension
