Coding skills are highly valued in the job market today, many people try to get in and give up due to the steep learning curve. With the right curriculum and plotted path, any person can become a professional developer, I have been successful with my path and in this post I’ll share it with you, here you will learn how to become a professional web developer with about 8 months of study.
Web development is the most accessible way of getting started in the tech industry as a programmer, from here, you can pivot into the other areas of programming a lot easier than if you were starting from zero.
My name is Nicolas Sartor and I became a professional full-stack web developer with all the tips I’m about to share with you. Web development has changed my life and I believe it can do the same for anyone willing to put in the work.
In this post we are going to explore:
- Why become a web developer.
- What is it like to be a web developer.
- How to become a (good) web developer.
- Landing your first job.
In the how to become a web developer section, you’ll find the curriculum, If you are here just for that, I highly recommend you also read the landing your first job section where I describe what employers like to see in a developers resume, as well as what being a professional developer is like section, where I build realistic expectations for both a tech startup scenario as well as a freelance environment.
Why become a web developer
As I said before, web development is the most accessible area of programming. In the web environment you will find many different areas of programming, from machine learning to natural algorithms and processing. The web is the best platform to dabble with everything you are curious about.
Another great reason to get into web development is the job market, developers of all areas are in high demand, so much that if you can prove to know your coding you can get an amazing job without a degree (which was my case).
You will find many reasons to become a web developer, so let me make sum it all up in one list:
- Job prospects.
- Web development introduces you to most other areas of coding.
- Lower barrier of entry than other programming areas.
- May allow you to work remotely and have more time to experience life.
As I said before, web development can change your life, it is a highly rewarding skill and career to have.
What is a web developer
A good web developer will understand both front-end and back-end technologies, now I say understand not master. Although someone who masters the full-stack (front and back ends) will definitely be an amazing developer, you don’t really need the mastery of them to get started.
If you are just getting started you probably have the question: “What is front and back end development?”
The easiest way I’ve found of explaining this, is by using a restaurant as a metaphor.
The restaurant metaphor:
Imagine a regular restaurant, in it a customer sits at a table, we are going to call this the front-end (also called client side) . In this restaurant there is a waiter (he handles the requests from the customer), he gets the customer’s order (front-end) and delivers them to the kitchen (in this metaphor the kitchen is the back-end, also called server side), the kitchen then gets the ingredients from their storage (database) and cooks up (processes) the food (data) into what the customer (front-end) wants.
An application works exactly like that. The waiter represents a HTTP request (don’t worry about this term yet), he will handle requests from the client-side and send them to the server side, where, if they don’t have the resources to handle the request (lets say the kitchen is out of ingredients) the back-end rejects it, otherwise it accesses the resources from the database and prepares it for serving (again, handles by the waiter, our HTTP request).
Now you know how an application works, let’s take a deeper look at front and back end development.
Front-end development (client side):
The front-end of an application is what the user interacts with. It consists of the user interface, and connections to an API (to make requests to the back-end, which can either be your own back-end or a third party one), APIs are essentially another program separate from your own, that can process, store and serve data to your application through HTTP requests (AJAX on the web).
One of the biggest mistakes entry level front-end developers make is to not understand how the front-end communicates with back-end through API calls.
Summing it up, for you to become good front-end developer requires you to understand how the user interface is built, as well as how to communicate with the server.
Back-end development (server side):
Back-end developers are creating the routes for the front-end to make requests, in the same context as our restaurant metaphor, let’s say the kitchen is responsible for creating the recipes in the menu, so the customer can order.
After creating the routes, back-end developers also need to understand how the data they will serve has to be processed or structured. Again, in the restaurant metaphor, let’s say the customer requests a medium rare steak instead of a well done one, the kitchen is the one that guarantees that the steak is served as requested.
As a back-end developer you will allow the user to get data from other sources (images, video, text, and more from databases), you can also do most of the processing on the back-end and serve data already processed, so the user won’t need the computing power.
Summing up: Back-end developers allow applications to receive more sources of data, store data from user sessions and process data before serving, in the back end you can also control the access certain users have to certain data (example: you have to login before accessing Facebook).
Back-end technologies (the back end can work for multiple platforms, so here are the technologies more accessible for web developers): Node.js, Express.js and MongoDB.
A good web developer will understand how an application flows on the web platform. You can focus on the front-end, but always being aware of the back-end and vice versa. Or you can become a full-stack developer and be able to create the entire application yourself.
As a professional developer, I create features and apps that process data in the front-end after the user interacts with it, then the data is sent to the back-end for more processing or storing on a database, all this combined with the user interface creates the user experience.
How to become a web developer
If you want to become a front-end developer I have already made a post explaining all the curriculum, resources as well as a learning strategy, you will find it here.
Here is what you need to learn:
- AJAX (Http requests)
- Libraries or frameworks (Recommended: React.js, Angular.js or Vue.js)
- Basic computer science (always good to have)
In this post, I tell you that you can become a front-end developer in 3 months, and that is true, however I’ll recommend you make at least 3 projects that use AJAX, and 2 of them using a front-end library such as React.js, these projects will be part of your portfolio and you will need them in order to get a job.
With these projects, you will have a much better understanding of web development, try to take 1 to 2 months per project, that will take you around 8 months (from 0 to job ready).
Another thing you have to learn to become a professional is version control (git and github), it is very easy to learn it, and should take you a week at most.
I’ll make a post in the future on how to choose projects and how to build a strong portfolio. But, as long as you feel confident with your AJAX, structuring views for your app and handling merges on git. You will be ready to look for jobs.
Landing your first job
The first job is the hardest to get, after you have it, your experience clock starts turning and you become more valuable in the job market every year!
But how can you get the first job?
Work smart, not hard. Having a strong portfolio as well as a strong understanding of your tech stack will be essential, but understanding how to become a desirable candidate plays a bigger role in the hiring process.
I’ll first describe what a desirable candidate is, then I’ll share with you how I get multiple invitations to apply to companies every week.
A desirable candidate is:
- Someone who is active with their development and understands there is always something new to learn.
- Someone who can communicate in a team and manage their own tasks.
- Someone who understands the product they are building (this is a big one, many developers don’t display any interest at all for the product)
- Someone who can bring value to any team.
To display the qualities of a desirable candidate, you will need to have an active github, try working on or starting open source projects and being active within a community of developers (find some on meetup.com).
Being prepared for your interview and not mumbling about your tech during the phone screen (but instead talk about your experience learning and passions in programming) will help display your communication skills.
Do your research on the company you are applying for, understand their product, what need are they filling in the market? Talk a little about your interests on their product during the interview.
If you are able to display all of the above, together with good development skills, you will have no issues getting a job. But now, how should you find a job?
Job hunting? More like job attracting.
When I first got started looking for jobs, I had no idea what I was doing, until I started to approach this like any other problem. I started to break it down and understand the separate components involved in the skill of job hunting. Here are some things that helped me:
- Be accessible: Optimize your LinkedIn profile, open an AngelList profile, be everywhere you can be. Have your own personal website with your contact information.
- Optimizing LinkedIn: Have images of your projects, describe your experience in bullet points, don’t add too much fluff, you don’t want to seem like you are trying too hard. Have keywords on your about me section and on your experiences, try to get someone to recommend you.
- If reaching out, go all the way: Whilst you try to attract a recruiter, send out applications. But do more than just sending out the application, look for the people involved in the hiring process at that company (you can use LinkedIn for that) and send them a message introducing yourself, talking a little bit about why you like their product, and send them a link to you personal website where you should have all of your projects with images and descriptions.
- Optimize GitHub: Make sure your GitHub is active, and on your projects, have a Readme file describing the project, the process of creating it and the technologies you used.
Once you become available to recruiters to find you, lading interviews will become effortless.
I have a lot more I can share in the job hunting space, and I’ll make another post on it later on 🙂
Once you find yourself creating apps without being stuck all the time, you are ready to start marketing yourself out to recruiters and tech companies.
But remember, you can also go freelance and do your own thing, the tech market has plenty of demand and it will stay like this for a while. If you have any questions, let me know in the comments 🙂