First of all just to make sure that we are on the same boat. What is a web developer? According to Wikipedia:
A web developer is a programmer who specializes in, or is specifically engaged in, the development of World Wide Web applications, or distributed network applications that are run over HTTP from a web server to a web browser.
Ok so a web developer is actually a programmer who works on the web. Web developers can be classified into 4 groups:
- front-end developer
- back-end developer
- middle-tier developer
- full-stack developer
The back-end developer mainly works on the back-end of the website or the things that happens in the background while the user is interacting with the web application. This is the core of the web application. Common technologies involved are server-side technologies like PHP, Python, and Ruby. Back-end developers also works with databases such as MySQL, PostgreSQL Oracle, and MariaDB.
The middle-tier developer mainly works with services that sit between the front-end and the back-end. The middle tier developer is mainly concerned with how the front-end and back-end of the web application is going to communicate.
Lastly there’s the full-stack developer which knows how to do a bit of the front-end, back-end and middle stack.
So which do you want to be? Personally for me I’m currently working as a full-stack developer. I work a bit on the front-end, back-end and the middle stack. The advantage of the first 3 types of developers is that they’re specialists. They have a very deep understanding of the technologies that they are working on, specialists are often rare so their salary is very high. The advantage of being a full stack developer is that its easy to become one and you will be more marketable since you know a lot of different skills and technologies. The only downside is that they don’t make as much salary as the front-end, back-end and middle-tier guys make.
Back to the main topic of this article. Here are some tips to get a job in web development:
- Have a Portfolio / Github / Stackoverflow / LinkedIn / Blog
- Learn things on your free time
- Apply for that job
Have a Portfolio / Github / Stackoverflow / LinkedIn / Blog
If you’re a new graduate you might not have anything to put in your portfolio and that’s just normal. What you can do is to work on personal projects or create a blog. A personal project can be anything that you really want to create. For developers its common to work on projects that can help them in their daily tasks like generators, code linters, or libraries. You can also have a personal project that involves technologies that you want to learn. For example, if you want to learn how to use the Facebook Graph API you can go ahead and plan out the application that you want to build. It doesn’t matter if you don’t know anything about the technology or if the features that the application that you have in mind are already present in Facebook. Just dive in to the Facebook Graph API Documentation and figure out how to do stuff using the API by Googling stuff. You can also ask questions at Stackoverflow if you get stuck.
The fastest way to learn things is to dive right in to doing it, but be sure to google best practices and look at code that other people have written so that you’ll have an idea on how to do things the right way.
Once you have setup your personal project you can just go ahead and push it up on Github so that the rest of the world can see it. It doesn’t matter if other people thinks your code sucks. What matters is that you know you’ve done a good job and is constantly working on improving it.
You can also create your stackoverflow profile and answer some of the questions that you can already answer. It doesn’t matter if the question that you’re trying to answer has already an accepted answer or that the question is already 3 years old. Just answer the question as best as you could and people will surely notice. They will give comments on how to improve your answer and you will even get an upvote if they think your answer is awesome.
Lastly you can also create your LinkedIn profile and start putting some of your achievements in school and the personal projects that you have worked on in your free time. Link to your portfolio, twitter, Google plus, stackoverflow, github or even your facebook if you want. Its okay to put in a lot of information about your past achievements and projects but be sure to only include the things that actually matter to the career that you are trying to pursue. In this case being a web developer. So there’s no need to put in your linkedIn profile that you are actually a chess champion or a basketball super star.
Learn things on your free time
The best way to make yourself more marketable is to learn things on your free time. Its a good time to learn something new. Especially now that there’s so much good learning resources out there which are free to use. Here are some of the resources that I have personally used:
Its always a good idea to have a network of people who can recommend you for a job. If you have taken up college, it can be your classmates, teachers, friends. It can also be like-minded people that you have met online. A good place to find those connections is linkedIn, a social network for professionals. But be sure to keep your linkedIn profile updated so that people will actually notice your profile. Its also a good idea to add recruiters who are recruiting professionals in the field of web development. You can also join groups in LinkedIn and start contributing to the community. There will be a bigger chance that someone will notice you and can recommend you to a client.
Apply for that job
We are never really 100% ready to apply for a job that we want. Sometimes were not confident that we enough of that specific technology in order to apply. But that’s actually a good sign that you’re ready. If you’re familiar with the Dunning-Kruger effect which according to Wikipedia is:
a cognitive bias in which unskilled individuals suffer from illusory superiority, mistakenly rating their ability much higher than average. This bias is attributed to a metacognitive inability of the unskilled to recognize their mistakes.
Not having the confidence that you already know enough to start appliying for a job means that you’re already in the second stage of competence which is the conscious incompetence which means that you already recognize your lack of knowledge or skill on a specific field. This is enough to drive you into learning more.
At some point in time when you feel like you already have the minimum requirements to get started with applying for a job then you can go ahead and start applying. Here are some good places to start looking for jobs:
Craigslist – you can look at web/HTML/info design jobs, internet engineering jobs, and software/QA/DBA/etc jobs. Sometimes there are bad eggs that you have to filter through. Some signs that a job posting is a bad egg if there are lots of mispelled words and there’s really no sane job description which gives you a bit of idea what you will be working on once you get accepted for the job.
Jobmote – by far has the most quality job listings I’ve ever found. These are human curated job listings so the bad eggs are already filtered out. These are mostly telecommuting jobs.
Staff – mostly telecommute jobs. You will get emailed when there’s a job opportunity.
All you really need to get to that interview is to have an awesome Résumé and cover letter. I won’t be delving into those in this article since they have already been written a dozen times before. Just Google those and you will surely find an answer.
I cannot assure that this will work for you as well as it worked for me but just give it a try if you really want to get that job. All I can say is that you’re already half-way to getting that job if you have the genuine passion and you really love web development and building things.