Programming languages not required

Why you should learn general concepts instead of programming languages

As a junior or mid-level developer, it can be difficult to zoom-out and analyse a situation while you’re implementing a feature.

It occurs that you develop something without understanding the general concept behind the code that the framework provides.

For example, in Ruby on Rails the notion of HTTP Query String is abstracted and a params accessor is provided to access all kind of parameters (query parameters, etc..).

This is really developer-friendly for a beginner. But imagine you must (or want to) use a framework that doesn’t implement this level of abstraction: Sinatra in Ruby, Django in Python, etc..

At this moment you’d have to learn new idioms, new concepts and adapt to the language and framework you want to use.

This transition would be easier if you knew the different concepts behind HTTP parameters.

So, let’s have a look to a practical approach to learn general concepts behind framework features.

When to take the time to learn?

As a beginner, I know that it can be overwhelming to learn new language while learning a new framework and understanding the tech team culture and processes.

You need time to assimilate all of this. But once you feel comfortable with all these aspects of your daily job then it’s time to level up and learn things in a more “efficient” way. What I refer to as “efficient” is learning general concept instead of the language implementation of this concept. For example, in Ruby on Rails the content of the params dictionary can provide 3 kinds of HTTP parameters:

Query-String

Payload

Path Variable

These are the general concepts of HTTP that you must know and that you’ll have to deal with in any web framework.

The art of investing your time

In this section we’ll try to define when it’s important to invest your time in learning the general concept behind a feature.

Let’s take the example of a web developer — as I’m a senior Ruby on Rails developer.

Note that learning when to invest your time in something is a general topic. So, I’m pretty sure that you’ll be able to apply this concept for your own situation.

As a web developer there is 2 general notions that worth your time:

anything related to the HTTP protocol.

anything related to the general web concepts.

HTTP protocol

As a web developer, it’s important to understands the mechanics of the HTTP protocol. For example, we talked about the params dictionary in the previous section. Understanding how this dictionary is built is not important. But understanding that it refers to the notion of HTTP parameters and having a good general comprehension of this notion will help you to have a better understanding of what you’re doing.

So anything that deals with the HTTP request and the HTTP response worth your time.

General web concepts

At first, General Web concept can be a bit hard to identify. So let’s try to provide a proper definition with few examples.

A General Web Concept is the most famous solution to a well-known web problem.

For example, we need a system to treat information while not blocking the HTTP request. The most famous solution is to use Background Jobs. This system is known and implemented in each web project no matter the language.

Few other examples:

server architecture (horizontal scalability, vertical scalability, etc..)

indexation

web request optimization

data archiving

API

Monolithic vs. Micro-services Architecture

Conclusion

Having a better understanding of the general concepts behind the features of your framework (or your SDK) can tremendously ease your work when you want to try a new framework or language. Also, that’ll help tremendously to understand what you are doing when developing your next features.

Voilà!