Quite often when telling people what I do for a living, the other person will take interest and ask me how to get into web development. I’ve also responded to a few forum posts with advice for fledgling developers looking for their first step on the web development ladder so decided to put together an advice for anyone looking to get started with this career.
I’m writing this post assuming that you are competent with a computer and will outline what I suggest you learn and some other steps to take to get yourself your first job as a web developer.
If you already have access to a computer (and let’s face it, these days, who doesn’t?) you don’t need to spend a penny.
- You’re going to need a computer. Either a mac, PC or Linux machine. There is huge debate all over the internet of mac vs PC vs Linux, but at the end of the day, either is more than good enough for web development. I use a 13″ Macbook Air for private projects and home use and I use a PC running Windows 7 at my full time job. So it really does come down to your personal preference or what you already own. In my opinion Macs look nicer so I’m happy to pay the “Apple tax” for their products because I spend so much time looking at them.
- A text editor. There are hundreds of different editors out there, many of them Free. When I started as a dev in 2000, I used Dreamweaver. At the time it was the big “buzz word” programme for web development and I’d not heard of anything else. Dreamweaver was my go to editor up until about 18 months ago when I started investigating other light weight options. I’ve tried Notepad++, Coda, Netbeans, TextMate, but have settled on Sublime 2 as I like the features, search is faster than any of the others and it’s nice being able to use the same editor on Mac and PC. It also looks pretty.
- A dev environment. I use MAMP Pro on my Mac for my dev environment. It’s just quicker and easier to set up, run and configure than it is to set up the native environment that ships with OSX – they also do a free, non-pro, version which will do you fine to begin with. On windows, there is WAMP (I can’t vouch for WAMP however as I’ve not used it before. At my job, we have a centralised dev server that we do all our dev on)
Firstly, I should say that it can be quite intimidating when trying to skill yourself up for web development when you look at all there is to learn. There are literally thousands of different technologies and frameworks that you can learn. Even to this day, looking through job boards there are jobs requiring technologies that I’ve never even heard of. I’ll try and steer you to the major ones, the ones that I’ve chosen or been required to devote my time to as these are the skills that have got me a decent job and as much freelance work as I choose to take on the side.
Also worth noting is that you don’t need to know these things inside out. Even with the technologies I use most often and dedicate the majority of my time to, rarely will half an hour go past where I don’t turn to Google or Stack Overflow for some help or a reminder. There is so much to learn, it’s impossible to know and remember everything. The more you learn, you more you discover there is to learn. That is what keeps this job interesting.
When you are learning these skills, make sure you learn by doing, not just by reading. The information will sink in and you will have something physical to show potential employers/clients. It can help if you have a project in mind so you’ve an end goal to work to. If you don’t have one, here’s one for you. Develop a contact directory, in which you can add, edit, delete and search for contacts.
The first thing you should learn is HTML (Hyper Text Markup Language). HTML is what you mark up your content with so the browser understands it and can present it in the appropriate manner. If you right click on any web page and select “view source”, you will see the HTML behind a page. Learn how to create basic layouts with headings, text, links and images. A great resource for learning HTML is W3Schools and this is where I always point people who are new to the field.
Once you have a good understanding of HTML – as mentioned above, you don’t need to know it inside out – you should learn CSS. CSS (Cascading Style Sheets) define how your content is presented. That is your fonts, font sizes, colours, alignment, position, etc. Again, for learning CSS I’d point you to W3Schools. Another good CSS resource is Chris Coyier’s CSS tricks. Chris is pretty much considered the “man” when it comes to CSS and a search for just about anything CSS related will find him right at the top, though for an absolute beginner, the content on his site may seem a little advanced.
Once you’ve a good understanding of HTML and CSS, and it may take you only a few months, I’d recommend you put yourself out there and start applying for work. Seriously! Get onto the online job boards and search for “Junior Web Developer”. There are loads of positions. For those roles, companies are just looking for someone with the basics who is able to display initiative and a willingness to learn. The development agency I work for is constantly advertising for junior devs and we can’t find them anywhere. There is a huge skills shortage in our industry. As a proactive junior dev, you’d be a great asset to a company. For a relatively low investment, they can have their low level work such as minor updates taken care of. Freeing up the experienced devs for heavier work. In the process, you’ll be in web development 40hrs a week surrounded by experienced devs and your learning will sky rocket. Within a couple of years, you’ll be commanding good money.
I’m not guaranteeing you will find work straight away, it may take a while but you’ll be in a position to be employed.
They are not mutually exclusive and even if you decide to specialise in the Front or Back end, the skills from the other are still necessary to have an understanding of. Once you have an understanding of one, the other will come to you much easier.
Keep applying for work!
Keep applying for work!
For the back end, you have a few more options. I listed PHP, .net and Ruby. While I understand Ruby is on the rise, I’ve never encountered a situation where I’ve had to touch it. This may not be the case for the job market in your area so do a bit of research on the job boards to see what companies are looking for. This leaves PHP and .net.
The development agency I work for started out in Classic ASP which is now pretty obsolete. When we decided we needed to update our technologies a number of years back we weighed up PHP vs .net and settled on PHP for a number of reasons; It’s openness, it’s free, the strong community behind PHP and open source and also because it would have been a smoother transition from Classic ASP. As an added benefit, when I think of .net developers I think of a shirt and tie and I’m more of a jeans and t-shirt kind of developer
That’s not to say that PHP is better than .net though. I know some .net developers that are making great money and are involved in exciting projects, but my experience and personal preference is in PHP. I can only list good reference sites for PHP as I’ve not a lot of experience with .net. So again, W3Schools. I also watched a series of videos on Lynda.com a number of years back when I was first learning PHP that I found hugely beneficial (the company I was working for at the time had a paid subscription).
Keep applying for work!
Along with PHP/.net/Ruby, you’ll need to learn how to manipulate a database so you’ll want to teach yourself MySQL (Structured Query Language). There are tutorials all over the web and if W3Schools has been working for you so far, stick with them, if not, a simple Google search will put you in the right direction.
Keep applying for work!
Once you have all of the above under your belt, I’d recommend getting your hands dirty with some of the MVC frameworks out there. MVC (Model View Controller) frameworks have been around for years and they are really taking off. Because of the way the front end (View) is separated from the back end (Controller and Model), it allows for easily maintainable code and makes it easy to farm off the front end to the front end developers, allowing them to work on the project without interfering with the back end.
There are numerous frameworks out there. I regularly use Code Igniter and Laravel and occasionally Silverstripe which was my first foray into the world of MVC. The docs and forums for these frameworks are your best place to get acquainted with the frameworks. Also (mentioned below) Stack Overflow is an amazing resource for everything web development. Out of the 3, right now I’d suggest Code Igniter. While it is a little behind Laravel in terms of features, there is a much bigger community behind it which is a huge bonus when you will have a lot of questions. Laravel’s following is quickly on the rise though and it is a relatively simple transition from Code Igniter to Laravel.
Keep applying for work!
Source control will also come in handy. SVN (Subversion) and GIT are the obvious ones. If you are to pick between the 2 I’d say go for GIT. SVN is fairly dated and where it hasn’t already been, is being replaced by developers with GIT. Source control is one area I personally need to shape up on. I’m fairly comfortable with SVN but definitely need to spend some time learning GIT.
When you get called for an interview, go smart. That means a shirt and tie at least. You’ll likely end up being able to wear jeans to a web dev job but turning up to an interview like that makes you look lazy and like you don’t care about the job. Set a good impression.
Take your laptop so you can show your work and your learning journey.
In an interview, if you don’t know the answer to a question, say so. They don’t expect you to know everything, they just want to suss out what stage you are at with your learning.
You’ll likely be on a short probation when you first start your job. Keep setting a good impression. Don’t be the guy (or girl) that turns up on the dot and then leaves on the dot. That guy exists in every single office and everyone thinks bad of them for it. I have a friend (not a developer) who is that guy. He can’t understand why I’ll be at work at least half an hour before I’m contracted to start and at least 15 minutes after I’m contracted to finish. He regularly tells me “They’re not paying you for that extra time. You should be out the door dead on 5.30. That’s your right”. Yes, it is my right but it doesn’t set the best possible impression. I may be working extra for no immediate financial gain, but come pay review time, the boss is going to be well aware of my time keeping and will no doubt reflect this in his decision.
More tips for developing your skills and getting work
Keep a blog of your progress. Did you struggle with something and work it out? Blog about it. Not only will writing about it help you remember, but you’ll have something else to show prospective employers, it’s a great way to interact with other developers. You may even get job offers come through to you. I only started blogging around a year ago and have had a number of people contact me with employment opportunities.
Get an account on Stack Overflow. If you’re stuck with something, post a question. Also spend some time trying to help those with issues you know the answer to. You’ll quickly build a reputation and you can tie it to a Stack Overflow Careers profile which is another way to get in touch with prospective employers and for them to find and contact you.
Get on twitter and start using it. I’ve only joined the twitter in the last 18 months or so and have to admit that this is one of my flaws. I should be more active. If you want to interact with me on twitter, you can find me @fraserhartdev
Talk your code over with other developers. Seek out tidier and more efficient ways of achieving your end goal. If you don’t know any other developers and have some questions, fire me an email (firstname.lastname@example.org), I’ll be glad to give you some pointers.
If you have any questions at all about anything below. Please ask below or get in touch via email. Good luck in your new careers!