📜 ⬆️ ⬇️

How to become a professional web developer: a practical guide


The road is long and difficult, but interesting and useful!

The article was conceived as a practical guide for those who want to become a professional web developer. I have been writing code for the web for over 20 years. I work daily with web developers and help them. In the article I will describe what you need to learn, when you need to learn it and where to get the information (most often even for free). Then I will give advice on gaining real experience, and most importantly - on getting money for writing code.

The article is scattered with many links to free and important resources. For simplicity, I collected them in PDF and categorized them. I don’t get paid to mention the sites I link to — I just want to recommend the best resources to help you reach your goal.
')
Things to remember:

1. Article allowed to browse

A guide can help you regardless of your position on the road to professional development. Scroll to the heading that best describes your current position, and read from there. If you have just begun this journey, or while you are thinking about it, follow the advice of the King from Alice in Wonderland:

Start from the beginning, and continue until you reach the end; and stop there already.

2. Try a bit of everything, and then choose a specialization.

Money is not the most important thing. You need to LOVE your occupation! But you won’t know what you like until you try.


Find your passion and then monetize it.

The guide will help you become familiar with as many web development areas as possible as quickly as possible. And then he will help you choose a specialization in the area that you like. At first you will not achieve perfection in anything - you will learn the basics, and then continue your study. Find your passion and I will show you how to proceed.

I decided to write code. I like the web. I do not know where to start


You will succeed!

Congratulations! This is a serious first step and the beginning of something very exciting. But it can be very difficult. Do not worry, I will help.

First you need to quickly get acquainted with the basics of all areas of web development ("full cycle"). Training will be varied, but shallow. This is necessary in order to find an area that you like, as well as acquire basic skills in different areas. Then you can understand and work with a large set of tasks, regardless of where you choose.

Learn the basics of HTML


Hypertext Markup Language (HTML), a hypertext markup language, controls the content and markup of what you see in the browser. Starting with it, you get a user interface with which you can interact, and see the results of your code. When learning more complex languages, its importance will increase. You do not need to code blindly.

Here's what you need to learn about HTML:


I already know the basics of HTML


Cool! This is a very important step. Now learn the basics of javascript.

Learn the basics of javascript


JavaScript is a web language, and all major browsers (Chrome, Firefox, Safari, IE, many others) support it. Each site, each web application that you used, most likely contains a huge amount of JS-code. Not to mention the fact that the language is also gaining popularity on other platforms - servers, desktops, other devices.

For now, you need the basics, and the following resources will do for this:


I know the basics of javascript and html


Awesome! Now add to your CSS skills

Learn CSS


CSS, or Cascading Style Sheets (cascading style sheets). Used to customize the appearance of HTML elements on the page. Check out Mozilla's free tutorial , and then refer to CSS-Tricks to solve the most difficult problems (there is a search in the upper right).

Go to backend


Until now, we have considered what is called the "front end" of web development. You are familiar with the main languages ​​that work in the browser. It's time to go to the backend - the code running on the server. Do not worry, you do not need a server - your computer will cope with this.

There are plenty of backend languages, but since you are familiar with JavaScript, I would recommend learning how to use Node.js. It allows you to run JS-code on the server, not in the browser.

In addition to this, you need to learn Express and MongoDB.

Express

This is a library through which Node.JS can work as a web server (listen to requests from pages and send them answers).

MongoDB

This is a database that allows you to store and retrieve information.

You can study these three topics thanks to the following excellent and free teaching material , and its continuation .

I need to choose between front-end, backend and full-cycle development


After you have tried both versions of development, it is time to make a choice. If you did not have time to try them - refer to the previous section of the article to fill in the gaps in your knowledge.



At this point you have written two types of code. One is for user interaction, the other is for data. What do you prefer?

User interaction? Congratulations, you are a front-end developer!

Interaction with data? Congratulations, you are a backend developer!

Both? Congratulations, you are a full cycle developer!

Didn't you like anything? Congratulations, web development is not for you. Rejoice that you understood it now, and did not lose a lot of time and money. Not ready to give up? Maybe you did not get the language that you would like? Try to learn other languages ​​in the “I want to be a backend developer” section.

I want to be a full cycle developer


Cool. You need to familiarize yourself with all the contents of the sections “I want to be a backend developer” and “I want to be a front-end developer”.

I want to be a frontend developer and I know the basics of javascript, html and css


To work effectively as a front-end developer, you need to master HTML, CSS, and client-side JavaScript to perfection. You will also need to understand a few important frameworks well. You will gain the skills that employers and customers expect to find in the frontend developers.

At this point, you should already know the basics of HTML. Otherwise, go back to the “Learn the basics of HTML” section.

Learn intermediate and advanced HTML

Check out the tutorial on intermediate HTML, and then on advanced .

Explore advanced client javascript


Excellent JS book series, while free

To raise your level of JavaScript, I recommend the series of “You Don't Know JS” books written by Kyle Simpson. The author posted the entire series online for free:


In addition, MDN JavaScript should be your best friend.

[Also, an excellent translation of the excellent book " Expressive JavaScript " is available to you completely free of charge.)

Knowing the “frontier trinity”, HTML, CSS and JavaScript is, of course, great. But for making money, you'll have to meet some frameworks.

Learn jQuery

This is the most popular JS library of all time. Although due to some new frameworks, the importance of jQuery was slightly reduced, if you are looking for a job, it is likely that jQuery will be present in the description of the necessary skills (and mentioned in the interview) for many more years.

I recommend learning jQuery using FreeCodeCamp materials - this is a fast and efficient method. After that, go to the official training site - there you will find additional instructions.

You also need to keep the jQuery API documentation handy.

Explore the popular JS framework

The frameworks make working with a particular language or technology easier, because they solve the greatest problems that exist with the chosen technology. JavaScript has a very beneficial effect on the development and popularization of frameworks.

Almost once a week, a new framework appears, which is tied to the place of the new development standard. You will need to go through sites with jobs and google a lot to find out which framework is popular in your market. I also recommend a tool from Hacker News for assessing job market trends.

While writing this article, the following frameworks were popular:



React JS

React was created by Facebook developers to work with their Flux architecture . This is a JS-library for creating interfaces. Not so long ago, she broke out in first place in popularity, overtaking Angular. Start with React . Here you can find a good course for beginners.

Angular 1 and 2

Angular JS was created by Google developers, and it quickly gained popularity. Many companies have invested heavily in it, and judging by the chart above, it is still popular. Unfortunately, Google decided to completely rewrite Angular when developing the 2nd version. Therefore, Angular 1 and Angular 2 turned out to be almost completely different. If you want to become an expert in Angular, you will have to study both frameworks. It is even possible that the first version will be enough for you - there is still time. But time is running out. Most of the work related to Angular is gradually moving to Angular 2. At Code School there is an interesting free course on Angular 1 . And to learn Angular 2, watch free videos .

Ember js

For people with experience in Ember JS, there are still places, but judging by the schedule, he is already dying. It is not supported by such monsters as Google or Facebook, and you will already be loaded with the study of React and Angular. But if you're interested, you can read the official guide on Ember JS .

Choosing the most appropriate framework and thoroughly familiarizing yourself with it is worth exploring the CSS framework that comes with it. The two biggest players in this market today are Bootstrap and Material Design.

Bootstrap

Bootstrap was done by Twitter developers, and it is already quite mature and popular. Versions of Bootstrap exist for Angular, Angular 2 and React.

Material

Material is a design rule set by Google. It is gaining popularity, there are versions for Angular and React. Since Angular is also the brainchild of Google, Material fits in perfectly with it.

Here are some links to you:


Congratulations! You have the key skills of a front-end developer!


Just look at him!

I want to be a backend developer


Perfectly! The first step is the choice of language. There are many languages ​​for working with the backend, and each has its own advantages and disadvantages. Check out the table of programming languages ​​sorted by popularity. All of them have been in the top ten for ten years. Marked in green are web languages ​​that have gained popularity over the years.


TIOBE Index of Programming Languages, www.tiobe.com/tiobe_index?page=index

Concentrate on languages ​​whose names I circled in green. If you don't know them, start at the top of the table and go down. Stop when you find something you like and dig deep!

If you are familiar with one of the languages ​​marked in green, and you like it - concentrate on it.

Java

An extremely popular language that runs almost everywhere. Developed by Sun Microsystems (now owned by Oracle). Applications for Android are written in this language. It can also be used to create desktop applications, and, of course, web applications (both individual backend applications and those paired with JSPs). It is developed, stable, and there is a huge amount of resources for studying it. In addition, it is the most popular language for studying object-oriented programming in colleges and universities. Here's a good java course for beginners.

C #

C # was created by Microsoft as a direct competitor to Java. Until recently, its support on non-Microsoft systems was not so hot - but now the situation is getting better. Like Java, this language is object-oriented, and can be used both to create web applications (both separately and in conjunction with ASP.Net) and desktop applications. If you are using Windows and you need a more familiar development environment, C # may suit you. Check out the free Microsoft Virtual Academy language course .

Python

It’s not a huge company behind it, like Java or C #, but Python is a great language to accomplish tasks quickly. It is relatively easy to learn, and every year it is gaining popularity. If you don't like other languages, you can delve into it. The best place to start is from here .

Javascript

If you are reading this article from the beginning, then you have already figured out with JS. With the advent of Node.JS and the popularity of npm (package management systems, Node Package Manager), server-side JavaScript will undoubtedly continue to gain popularity. Worth studying.

If you have not done this before, now is the time to explore Node.JS, Express and MongoDB with this excellent free study material and its continuation .

Ruby

This is a strange language. Those who like him are deeply in love with him. It is among the top ten, but its growth is slowing. It is a hybrid between functional and imperative programming. I recommend to try it - suddenly you will become one of his most ardent supporters. Jobs for Ruby will exist for a long time. But be sure to check your job market so that at least some companies are infected with an interest in Ruby.

It is best to learn Ruby on the resource RubyMonk

What about PHP ?

The market is full of jobs for PHP, but at least, judging by our tablet, it is losing popularity. I highlighted it in yellow, because it is still a good choice for a career. To be honest, I myself am not a big fan of PHP - perhaps this prejudice plays a role. But I can’t imagine that in 5-10 years PHP would become more popular than JavaScript, although now it is more popular and PHP jobs will still exist.

I learned a lot of things, but I have no real experience.



Well, let's gain you experience!

Without work experience is very difficult to get a job. First you need to finish a couple of personal projects to get started with their creation from beginning to end. And when you start working on them, it will be very useful to learn how to manage and publish the code. To do this you need a github.

Github

GitHub is an online repository on the Git platform. It allows you to store, manage and publish the code. If you are already working as a developer, you simply must have an account there. You can learn how to work with GitHub from this “Hello World” training material , as well as from the interactive training material on using the Git platform.

Personal projects

Having dealt with GitHub, you need to start developing your projects. And here are a couple of ideas:


On the Free Code Camp resource you will find various examples of projects, including those that only require frontend. Two of my favorites are:


Real experience

Now you need a real experience. It means working for someone else. Personal projects are a good thing, but they are not enough to compete successfully in the job market. There are several options for this.

1. Contribute to an open source project.

Thanks to the popularity of GitHub, there are millions of open source projects that have problems (bugs) that are just waiting to be fixed by someone like you. Including a reference to participating in a well-known open source project in your resume is a great way to improve your status. It is best to find a project to your liking with the help of the Code Triage resource. He will help you choose the best project for you and will mail you tasks every day.

2. Work on a friend or relative

Choose a friend or relative who owns your business and make a web application or website for it, or improve an existing one. Just choose carefully - you need a project of a suitable scale. Choosing the right relative also helps you avoid trouble. Ideally, you need a project that you can do in less than 90 days, and a person with whom you have a very honest relationship. Do not be afraid to admit when something has gone wrong as planned, and do not be afraid to refuse and rebuff certain requests or expectations. Also make sure that your refusal of the project or the refusal of it of your partner will not affect your relationship.

3. Work for charities

A very useful way to gain experience is to work for charitable and non-profit organizations. You can turn to a dear to your heart organization of this kind and offer your help. You can find the project you need through the website Catch a Fire . And if you complete the training program on the Free Code Camp website and get all the certificates, you will get access to non-commercial projects where you can apply your skills.

4. Slave labor

Daring turned out the headline for the next sentence - but, in my opinion, if you choose this option and then find a normal job or go freelancing, it will seem like slave labor to you. On the sites Upwork , Fiverr and PeoplePerHour you can succeed in the role of a developer, but you will have to assign a very small fee and accept the position of a person who just earns experience.

I have experience help me with my work.



Ready to challenge the world?

The first rule - do not be called "web developer".



And what is the difference between a web developer and a full-cycle developer? But it turns out that the difference is $ 15,000 per year. But seriously, a simple name change can solve quite a lot.

Make a decent summary

Despite all the funny stories about people who are doing something unimaginable to attract the attention of the employer, you still need to prepare a good resume. This article from Tech Republic will help you with this.

Create a portfolio portfolio website

More important than a resume is having a good portfolio website. Take all the real projects that you have done, place them on your personal page. Read good tips for creating such a site in an article with SitePoint . It is also very important to clarify exactly how each of your projects solved the business problem of your client (or employer). In this case, your site will be head and shoulders above the others.

Prepare for the interview

With this, my previous article, How to Win the Coding Interview , will help you.

Pump up interview skills

You need to prepare not only for writing code. A good article with Life Hacker describes a lot of useful and valuable information.

The main thing - to gain a foothold in the market

Don't worry too much about getting a dream job from a dream employer with a dream salary. First, just get a job where you write code for money. Having more experience, you can plan the next step.

I want to be a freelancer

The owner himself is good, but at the same time it is a tremendous pressure and great difficulties. The best source of freelancing information I've ever seen is DoubleYourFreelancing.com . He has a series of articles that will help you become a freelancer better than I would have. Read.

Another option if you are sure of yourself is Toptal service. They take only 3% of those who submit applications, and this process is very complicated, but if you get there, you will have access to well-paid jobs that you can work on remotely.

I started work, but I feel that I was stumped

Understand. It is not easy, and if someone told you the opposite - he either didn’t do it, or tries to lure you money. If you feel you are at a dead end, try the following options:

Refresh your original intention.

Ask yourself, write down on paper why you decided to go this way. Is your answer still valid? If so, why stop? Forward!

Rate your real opportunities

Now that you know more about what is required to fulfill your desires, and what you can do - you have a good idea of ​​what can happen at best, at worst. Understand that, most likely, the “most probable” case is realized in life, which will be slightly closer to the “better case” than to the “worst” case. You do not need to be afraid - go ahead. You will succeed!

Source: https://habr.com/ru/post/303896/


All Articles