Home Algorithm Surviving In A Digital Age of Instability
blank

Surviving In A Digital Age of Instability

667
Thumb1

Updates, deprecation, something new comes out… Literally every month…

Frameworks Illustration
A list of all the frameworks. Illustration by Eric Heikes on ericheikes.com

If you are a computer scientist you might have noticed that new frameworks are constantly popping up. Programming languages just keep showing up and old ones that can’t keep up are becoming deprecated.

The Beauties

For experienced programmers, it is a normal part of everyday life. New technologies like to be promoted as things of the future, it is beautiful they said, it will help us they said, it is the hottest framework today they said… It is like these technologies have a cult following.

The Frontend Beauties

In the last year, I have continuously learned new things to keep up with the pace of incoming technologies but sometimes it seems that more-and-more technologies are popping up. What really bugs me is the fact that these technologies are just a different take of the same cake. For example, imagine being a frontend web developer you already have to learn HTML, CSS, and Javascript. But there are also a whole lot of other things you ‘should’ learn. React, Vue, Angular, Webpack and probably some good ol’ jQuery. Though to be fair, each framework has its pros and cons and each library/framework was built to solve problems not yet answered or caused by libraries/frameworks before them.

Popular frontend frameworks
Popular JavaScript frameworks and libraries on rubygarage.org

Believe me, you do not have to master all the frontend web frameworks to be a frontend web developer, just use things that make you comfortable. It just annoys me that there are so many different frameworks that it gets confusing.

The Backend Beauties

It starts out very intimidating because while there are many similarities between frameworks, the manner in how we use them is very different. Phoenix, Spring Boot, Ruby on Rails, Django, and Laravel are among the most sophisticated web frameworks that can boost development speed because it is easy to use.

Popular backend frameworks
Popular Web frameworks on nickjanetakis.com

Adding to that, the level of abstraction in these frameworks can also be very hard to understand. This doesn’t only apply to frontend frameworks because backend frameworks also have a lot of ‘magic’ frameworks. These ‘magic’ frameworks are very confusing for people who want to learn to program, the level of abstraction in some of these frameworks are so high-level that it’s hard to grasp the basics. In the end, you might end up memorizing code other than understanding them.

Even though memorization seems like the most likely answer to this problem, frankly it is not. Memorization of code is the worst thing to do because different programming languages already have different syntax, but a framework based on the same language also have different syntax. It is not the optimal answer, that’s what I am trying to say…

The Beasts

St. George and the Dragon
St. George and the Dragon by Peter Paul Rubens

In a hero’s tale, the villain overpowers the hero in the first battle. Only for the hero to train intensively and face the villain again to finish the tale once and for all. This story is a good metaphor for the learning curve. At first, it seems impossible to learn every single thing to complete a task, but when we ‘train’ ourselves by doing these tasks separately and repetitively it becomes easier and it becomes more understandable.

Illustration of the Learning Curve
Illustration of a Learning Curve by Alan Fletcher

The Learning Curve

We can see patterns in the task that we could never have seen before, this is when we master a subject, this happens when we have reached past the hard learning curve. But to understand the framework you need to understand the fundamentals, the architecture, the language and many more. It is not a simple task to learn a new algorithm or a new design pattern but to learn those things will help in the development of our understanding.

This brings me two the second part, the beast. Learning algorithms and another basic computer science subjects are as hard and as boring as it can get, at times it might feel like we want to give up because honestly when I was learning an algorithm it was hard for me to visualize what kind of scenario would this certain algorithm be used in, but the more I learn about the basics of computer science and programming the easier it is for me to understand the frameworks because it follows a pattern.

Model, View, Controller
Illustration of an MVC architecture on Wikipedia

For example, Ruby on Rails and Django are web frameworks designed with the same architecture in mind. The Model View Controller architecture or MVC for short. If you understand the fundamentals of an MVC framework transitioning from Ruby on Rails to Django is only a matter of syntax. Development-wise there will be a lot of similarities. Learning the basic architecture pattern is are like beasts.

The Importance of Taming the Beast

Beasts are hard to tame, they are hard to understand and they seem intimidating. Sometimes it may be easier to ignore the beast altogether and try to force learn by memorization. Sadly, it will end up in a faulty understanding of the system at hand. Thus, resulting in a misconception of what the reality of the system is.

Hercules and Cerberus
Hercules taming Cerberus by Peter Paul Rubens

Taming the beast should be the first thing all of us ought to do. Like in every story to save the beautiful heroine you must tame the dreaded beast. Sadly, not everyone is fond of your journey. Some might worry, some might question, and others are skeptic. But all you should know is to tame the beasts and to save the heroine. What I am trying to say is. Yes… theory sucks, learning algorithms aren’t as fun as building a website with Rails, and architectures seem unimportant. But knowledge about these fundamentals is going to define you and what you know.

Final Thoughts

I believe that if we truly understand the fundamentals of programming, the new tech wouldn’t be much of a hassle. Technologies keep evolving, it’s a good thing! Tech evolves to improve upon the mistakes of the previous generation or to bring new things to the world. People should really embrace change. Programming knowledge is subject to change. I realize that I should continuously improve my knowledge of current technologies every month or so. It is a process in which all of us should do.

 

LEAVE A REPLY

Please enter your comment!
Please enter your name here