How to become a web developer is an increasingly complicated question to answer.
Do you know why?
On one side we have the university and computer science courses, on the other the self-taught ones who venture online to learn this craft.
In this article I bring both my experience and resources from other research to help answer this question.
I was very inspired by Kamran Ahmed’s article and also from the Leancode.academy video. I’ve also brought some of my experiences from the last 6 years in the area to try to make clearer the path that someone today has to go through to be a web developer.
A lot of people when they see graphics like the ones I’m going to add below are a little confused or even thinking it’s too much. However, I would like it to look like a curriculum for a website development course.
I explain in the first part here about why universities are not a good alternative and the need for guides like this to guide self-taught.
Why university is not an option
I graduated in International Relations and soon after joined the faculty of Computer Science.
Although I love the contents and have excellent grades I did not last mai 8 months in this new course and I will explain a little the reasons behind it.
No course can keep up
Every course in a university needs a lot of planning, teacher organization, and dependence on legal issues for its curricula to be structured.
If on the one hand this is good for ensuring training supported by regulatory institutions, it is impractical for an area such as web development.
Here’s what we’re going to think about. A course is usually 4 years old. When you enter college you already know what the possible subjects will be to be taken and you have an idea of what you will learn.
However, a website I created 4 years ago with the most advanced and current technologies of that time today is completely behind schedule and difficult to maintain.
The speed with which the area of web development grows and changes today is immense and if someone entered a university today – even with a 100% updated curriculum – would enter a market with knowledge deficit in the most current technologies.
Every university course is more comprehensive than the craft itself. This is a very good thing because it makes students learn more about the world, adjacent areas and also research methodologies.
At the same time, there is generally a lack of depth in what defines the success of a programmer -> “ability to turn around”.
As much as having everything chewed by a teacher is good for learning, a good web developer will have to know how to search for solutions and new learning alone.
This ability is not much encouraged in a good part of universities. Naturally I am speaking here from my point of view, my experiences and my research with other people.
If your experience is different, be sure to comment here on the article and tell.
There is no university course in web development
As far as I know and I’ve been able to research there is no faculty of webist development. Computer science courses are aimed at software development and, in most cases, focus on languages such as Java to teach their students the logic of programming.
There’s nothing wrong with that. You can even use Java in web applications. But that’s just the tip of the iceberg and it’s a tip that’s not pointing to the future of the web.
The website development environment is very different from that of traditional software and even if the programming logic is the same, it is still a somewhat long way to get out of one to the other.
I think the role of the university is very important, but for those who want to become a web developer maybe the self-taught path is more appropriate.
The self-taught path
So if college doesn’t work, being self-taught is going to be easier? Not necessarily, but maybe faster.
Going straight to the point, if you seek to learn on your own how to be a web developer you will be more focused on what really matters and can develop in the craft with more agility.
I make it clear that I am focusing only on the skills needed to be a good website programmer and not a good professional. Being a good professional involves many other adjacent skills such as working in groups, knowing how to deal with interpersonal relationships, dedication, caring about work, etc.
Some of these skills can be developed in universities, but at the end of the day they are elements that each of us needs to pursue, be humble and open up to them.
The advantage of the self-taught path
Being self-taught is not a sick condition of the human being. It is a skill that, even if some have more ease, can be learned and perfected by anyone.
Like all skill, it requires a lot of dedication and training. But the return is incredibly advantageous.
When you are self-taught – especially in this generation we are with access to virtually any online information – you can learn countless trades without needing large investments.
Instead of paying a thousand reais in a monthly fee of a face-to-face course, you can pay 100 or even pay nothing and have access to knowledge.
Many universities already record their courses and make available online for free and there are other specialized companies that have their own courses.
Combining this ability to learn on our own with a clear path of what to study, we have a focused, objective and rapid development of (in our case) web development.
The challenge of the self-taught path
Thinking about my own self-taught learning path, the two biggest challenges are:
- Know what to learn
The part of the discipline I can help with some of these articles here on the blog:
- 8 Tips to Be More Productive
- How to structure your business as a Freelancer
- You’re not your productivity. Slow down
However, discipline and persistence is a daily struggle against procrastination. The internet is a sea of possibilities to distract the head, so learning some techniques of focusing and blocking distractions can help a lot here.
As for what to learn is that this article will be more useful. When I started making websites I had no idea where to start. I went to YouTube to see some courses, read articles, took online courses at Lynda, Udemy and others and even participated in forums to ask questions.
Even so, with each new content I watched or read came 10 new impediments. When I say impediment I mean some kind of concept, knowledge or skill that I did not yet have and needed to delve deeper.
For example, when I created my first “Hello World” I decided to go up to a server I acquired, but quickly came across the concept of DNS and was totally lost.
I left my code aside and went to study how to direct the domain I had purchased to my server and only then be able to view my program in the browser.
It is at this particular point that I have put together several sources below in creating a diagram of paths that we can follow to become web developers. I go through concepts that we need to learn in an order that makes more sense than just the same one I did: “in race.”
How to become a web developer in 2020
Let’s get on our way! I divided here into 4 sections and each also has its divisions. We can then divide the learning of web development into the following categories:
- Basic for any path
In the images below the colors mean the following:
- Blue: The main paths
- Red: The knowledge and concepts recommended
- Pink: The options within the concepts
- Yellow: Optional knowledge and concepts
- Star: My personal recommendation
1- Basic for any path
Regardless of which area you want to specialize in, there are some concepts and knowledge that we all need to know.
Traditionally this was a much more operational and manual role than logical and intellectual, but currently the story has changed and those who work with the front is also responsible for the logic and functionality of websites and web applications.
The back-end path is for those who like to create functionality, programming logic, database, and the structure of websites and applications.
Those who deal with this area usually need a deeper study of the concepts and functionalities of the languages chosen to program themselves.
Here we have a wider variety of options because we can choose from several types of languages to program.
First we have the most basic concepts and knowledge.
Then choose the programming language. In this first image we have the compiled and functional languages.
Now within the scripting languages. Also known as high-level. In the first image Node.js and Ruby.
And to finalize Python and PHP.
The name DevOps comes from development and operations. Those who want to enter this branch are interesting to get to the intermediate level of the Back-end because much of the knowledge is common and will help a lot in the process.
DevOps is a more complex area and focused on configuring servers and development environments to receive and scale online applications.
If you can open a site like Facebook at high speed, a good portion of the responsibility is for those who have configured the clusters of machines to receive so many users at once.
The knowledge here is very technical and the fundamentals need to be very clear.
Here I no longer have many opinions or knowledge, so I took advantage of external resources to build this diagram.
From here I have no knowledge even to build the diagram. This area is somewhat “hairy” at the nearest levels of the machine so that system optimizations are adequate.
I think it’s worth reinforcing that these diagrams serve as those curricula or course plans in universities. It’s a lot of concepts and a lot of subjects, but it’s like they’re the whole course.
Some items are very simple, others require many hours, days and even months to be fully understood.
Moreover, it is important to say that not everything needs to be understood perfectly. That’s exactly why I split between basic, intermediate and advanced.
As a basic you can already create websites and applications, but the deeper you go, the better and more efficient the code will be. In the basics you will make a functionality with, for example, 100 lines of code. In the forward, you can get the same result with 10.
I hope you enjoyed the article on how to become a web developer and hopefully serve as inspiration and guide for your learning.