10 things I've learnt my first year as a web developer (Advice to new web developers)
01 Apr 2011As a bit of background I work in a small specialist printing company in Sheffield, UK. My projects have ranged from basic design and implementation of static html sites to eCommerce systems incorporating custom image generation and internal systems which integrate with production software. Most of my work is in PHP, Mysql and javascript, although I always try to use the best tools for the project at the time.
Me when I started
I don't normally write posts about myself as usually they'd not be very profound, however I feel that after my one year anniversary of my getting my first real job as a web developer after leaving university (though not my first job) I have some worthwhile experiences to share. Some of them are just good practice that any decent developer will alredy follow and some are more general observations:
At this point there was going to be a paragraph for each...then half way through writing it I realised nobody would read it all so I've summarised it (even now I'll be lucky!):
Being a lone developer is great but being in a team is better
- Responsible for everything electronic.
- Forced me to be tenacious when problem solving / learning as no other help was there.
- Now my team has expanded from one to two/three it's allowed everyone to be better at their specialism.
Working for a startup gives you breadth
- It's not a software startup but same principles apply.
- In a year, I've done design, development, sysadmin, planning, meetings, interviews, managing and fixing.
- If I'd have taken a job in a software house I'd have been working on a couple of projects doing the same thing and none of the above.
- I have breadth and quite a bit of depth too.
- There are no pre-pre-existing standards.
Don't be afraid to innovate
- Within reason if you think it's best, it is.
- I use Linux because there is no legacy windows only requirement and it works best for me.
- I use solutions like NoSQL or Elastic Search if they work best (there's no Mr 'stuck in my old ways' sat in the corner)
- I can use HTML5 as long as it works.
- But don't use things just for the sake of it.
Conferences are cool
- Meet people
- Watch cool talks
- Learn more than you'll ever learn from the talks from chatting over beer.
Read Read Read
- Learn best practice
- Learn from the best
- Never stop reading (I usually spend a couple of hours a day reading relevant blogs/tweets)
- Books seem to hold more respected work but not always true.
Unit testing is great
- Learnt it at university but didn't quite understand the need.
- Started building projects without and they rarely worked first time.
- Tried simpletest with codeigniter for login lib and worked first time after unit testing
- Converted
- Now I test everything possible
- Nobody knows I do it, but the end product is better.
Version control is worth it, even when you're on your own in small projects
- Easy undo
- Easy deployment
- Easy updates
- Easy to move around machines (as long as you use distributed version control).
- It's a hassle keeping people who are less familiar up to date.
Frameworks help but are not the only way
- Built some small apps without framework - lots of messy sql, all proceedural bit of a hassle to get out of the door fast.
- Used codeigniter on next project much nicer, quick to get going, modular, mostly OO (but I now want more).
- Now looking for better.
- HTML5 Boilerplate good for front end good practice but usually needs cutting down, worth developing your own version. (and the build script rocks)
1and1 are in leagues with the devil
- We use a managed server and a vps from 1and1, not arranged by me.
- The managed server uses apache 1.4 and php4 (default, php5 available),
- Imagemagick is out of date and hard to install in your user folder.
- The default ubuntu setup for our vps left 100GB of 150GB unallocated in lvm.
- Slow and unwilling to update managed server.
- No gzip.
Work Work Work
- Hard work is appreciated
- It's worth it whether you get paid or not.
- You learn which improves you.
- You output better work.
- Don't work too much that it stops you having time to experiment with new stuff.
- Do side projects: experiement, learn (maybe even blog!)
Me now
Until next year….