Being a software developer in 2020 can be quite overwhelming due to the amount of information you can find about this branch of knowledge. However, as with any form of study, it’s necessary to master concepts before diving right into the most popular technologies for web development. In this post, we’ll illustrate how to orient your knowledge to help you achieve your goal as a web developer.

1. The bases

Like everything, it’s necessary to return to the basics and always practice them, regardless of your mastery of the concepts. With the rise of object-orientation due to the language’s familiarity with the relationship between real-world concepts, it’s necessary to have a thorough understanding of this paradigm and the benefits it offers. Below, we’ll illustrate the elements you must develop to properly understand object-orientation.

At this point, it’s recommended to use C++, as it requires a thorough understanding of RAM management—that is, the creation, destruction, and release of objects. It also supports better-defined object-oriented programming concepts than any other language, such as abstract classes, inheritance and polymorphism, function and operator overloading, templates, modularity, exceptions, composition, and aggregation.

Some advances in data structures, expressiveness, and algorithmic computing have been introduced over the years in response to the needs and evolution of the industry. Among the best-known features we can mention lambda expressions, callbacks, smart pointers (exclusive to C++), type deduction, inline-if, asynchronous functions, enumerations, among others.

And why are bases so important?

For the simple fact that object orientation is the foundation of the most popular programming languages, given their power and ease of being both reusable and understood.

2. The languages

Except for some additional features mentioned above, all object-oriented programming languages ​​support the data structures described in the previous section. However, like any technique, it’s necessary to know/memorize the basics of each language to understand how to take advantage of them.

Below, we’ll show you the GitHut 2.0 page, which illustrates the languages ​​that are trending for development, primarily for the web. However, I’ll highlight a few given their importance/relevance:

  • JavaScript: It is the only language understood by web browsers for editing elements in HTML and XML documents. Hence its importance and ranking. Other languages, such as TypeScript, are specifications to support a purer object-orientation in JavaScript.
  • Python: It is an extremely user-friendly, expressive, and powerful language, primarily used for big data, artificial intelligence, and web development.
  • Java: It is the most robust and complete language for web development. It has a large number of tools, libraries, and frameworks that can be used to develop these types of applications.
  • PHP: It is a very fast language, starting with version 7.0, and is widely used in free server versions. The latter represents a great advantage if you want to learn how to deploy a complete back-end application, or even an entire website.

3. Mastering algorithmic problems

To master the most common algorithmic solutions, you also need to understand the language, its data structures, functions, and calls, so you can master the simplest solution in the shortest possible time. We’ll share some pages that may be helpful if you want to learn how to develop properly:

  • Hackerrank: You have algorithmic problems, and it is necessary to develop the solution using expected results.
  • Codingame: Like hackerrank, they provide you with problems to develop with interactive examples.
  • FreeCodeCamp: Similar to the previous tools, they offer certificates for completing their courses.
  • w3schools: Documentation linked to the W3C to obtain documentation on how to develop web applications.

I want to clarify something regarding some tools that teach programming: the basics of algorithms aren’t as relevant as knowing how to use modern libraries well, especially when your goal is to solve real problems for real clients.

Think about it this way: do you really expect to be required to write a function to detect palindromes or convert binary to decimal from zero in a business environment? These types of exercises are common in interviews, but they rarely reflect the real challenges of everyday work.

Still, you’re likely to face these types of technical tests during the hiring process. It’s a sign that many companies still don’t have mature or well-defined processes for evaluating talent. The problem is well-known, but few want to openly talk about it or confront it.

4. Learning routes

It’s not enough to be very good at solving algorithmic problems if you have no idea how to work with your code in a TEST-ORIENTED way, with automatic version deployment, scalability, distribution when applicable, and other necessary considerations for getting development projects off the ground. Again, we return to the problem of what to learn from all this ocean of knowledge.

Fortunately, there is a website that provides excellent guidance and is constantly updated on what is necessary to achieve the solutions the industry requires. The roadmap.sh website illustrates in a very simple way what technologies I must master to achieve this goal. Here we will focus on two paths: the backend and frontend learning paths. In fact, all the paths are extremely interesting, as they provide us with tools to understand which technologies we must master in an integrated manner.

4.1. Ruta de aprendizaje de frontend

Ruta de aprendizaje de frontend

4.2. Ruta de aprendizaje de backend

Ruta de aprendizaje de backend

4.3. Otras rutas de aprendizaje recomendadas

To further enhance your learning experience, you need to master the concepts related to DevOps, which you can also find in roadmap.sh. A good runtime environment for your website is essential for achieving rapid deployments in both production and development or testing environments. Above all, you need to have a good command of cloud providers such as AWS, Google Cloud, and Azure, which are the most popular.

5. Conclusions

It’s no easy task to internalize the knowledge necessary to become a full-stack developer. However, as we mentioned earlier, much of this knowledge shares common ground. In this case, it often lies in thoroughly understanding object-oriented concepts, a paradigm closely tied to today’s most important and popular solutions. Always be consistent with the basics, since specific development technologies may change, but architectural solutions, new approaches to data structures, and code reuse will always be a common factor when developing web solutions, including software solutions.

If you liked the content and would like to stay up-to-date with our posts, please subscribe to the social media platforms we manage in the footer or sign up to receive emails about new posts. Also, if you think we missed something or would like us to delve deeper into a specific topic, please let us know in the comments.