So everyone at least once felt like a hamster in a wheel.
It feels like even if you’re studying all new technologies they seem mushrooming too much. And also, the rate of appearance is approximately equal to the disappearance of them for the majority forever. But someone dips into them for a rather long time waiting for the wind of change.
Everything happens so quickly that if you stop to rest for a couple of minutes, you can be late to catch up, but if one will be in a constant tension it will lead to burning out and an overdose of IT technologies, concepts and approaches. And everyone who feels that would want to keep both feet on the ground.
If one will look more closely at all these things, and not some separate stuff, some questions might appear.
The approaches in these technologies – how new are they?
Is it just me or I’ve seen them somewhere?
Why is this technology problem here solved by introducing something new?
Why does it bring us boundaries that are hard to get rid of? And every time something goes wrong or the problem is not solved by this new technology you’re thrown in a cold sweat?
Is it impossible to find an answer on Stack Overflow (just don’t tell me that you’re not looking for an answer there first of all), and it will have to spend hours, if not days to understand how this new tool, that consists of a dozen of old tools, works?
Looks like these are rhetorical questions.
Technologies become more complex and evolve in order to meet new demands, and you have to deal with it. As long as technologies don’t make a great step forward it’s possible to catch up.
And what about keeping both feet on the ground?
Well, that will be fundamental knowledge. You can easily forget the API of some new technology, but not the basic principles and foundation. It’s like if you know how to swim with one style then with proper physical preparation and desire you can definitely master any other swimming style.
And it’s not like you shouldn’t learn new products, but at least not to spend 100% of the time on them. A small amount would suffice. The main point is to get a grip on the basics.
It’s better to study something that is taught only in universities like high-order math, algorithms, the law of probability, mathematical statistics, mathematical methods of operations’ research etc.
And while thinking about all that you can ask yourself a question: do I need all these just to live with that everyday routine? Just to correct some formats, fix simple bugs and write ordinary requests into the database? Experience has shown that the answer is no – it’s not necessary.
Then why in the interviews are you asked about things that you so rarely meet? What need are in these logical problems and general tasks or math and data structure questions? Is there any particular reason why such companies as Google, Amazon or others focus on that?
We can assume that the employer apart from you yourself is concerned not about your memorizing ability and not even the knowledge of all new API. In other words, it’s your mind that is estimated: intellectual prowess or your minds flexibility meaning whether you will be able to learn new thing rather quickly, or for example do you have the ability to keep the apples and oranges separate, which is very important with such a great amount of old and new technologies.
So, what will we get from some of the basics?
Let’s do a brief review.
Mathematics: algebra and geometry will be the first steps in logical thinking. A long time ago Aristotle described logic foundations, and later on, it influenced a lot of Greek philosophers and mathematicians. It’s not always that easy to understand what has caused a certain bug or some problem in the system, and the mathematical logics first of all help to develop such skills.
Physics expand our general knowledge about the Universe. Majority of nerds have heard about Schrödinger’s cat or that a particle can turn up in any part of the Universe at any time, but few understand what that means. Physics teaches us critical thinking – to distinguish the achievable things from the unattainable.
Probability theory and mathematical statistics: it’s hard to imagine modern systems without a huge amount of events. Big data here and there. And so with such pile of events, there is always the need to analyze them. If the kind of normal distribution is not the same – it’s time to sound the alarm. But if it is just some schedule for you, then next time nobody will even show it to you.
Data Structures: the data is everywhere, and it needs to be stored somewhere. But we already have standard structures like lists and maps! Experience has shown that abilities start to be lacking at the most inappropriate moment, and to quickly eliminate it one needs to know the alternatives, to know where they are already being used – and all this can help at the most unexpected moment.
Algorithms: this is the next step in logic. And if the mathematical theorems did not assume special variants, the algorithms on the other way introduce the concept of complexity, the problem of a choice that would be optimal for your task. This will help you to learn how to compare alternatives, weighing the pros and cons.
Databases: you can quickly learn how to write requests, but it will be significantly harder to project them. To do it you need to be able to analyze the subject area, to know how to link properly the facts and to create links between them. There is a possibility that you simply won’t get such a chance if you have not been familiar with this before and have not heard about normal forms.
Computer Networks: we are no longer surprised by the fact that even the simplest program requires an Internet connection, and in general, most of our life flows there. But in most cases, we cannot explain how our browser finds a specific website, how the computer connects to another, and why do we need other protocols besides http / https.
Electrical Engineering: we used to take new technology for granted, but did anyone even think how does it work? What interesting things can NPN- and PNP-transitions give us and what transistors bring to our civilization?
Mathematical Methods of Operations’ Research: to be able to search for an optimal solution is something that many do not have; most people make decisions on intuition. But it turns out that there are some approaches that will help you in this difficult matter.
System Designing: everyone has heard about GRASP-patterns, that Coupling should be low, and Cohesion – high. But to hear is one thing, and to understand and even to do is quite another.
Patterns/Antipatterns: like any dentist should know all the typical methods of dentistry, furthermore, mistakes that could be made in the process, so you should know the vast majority of patterns and anti-patterns.
And then the next time, when there will be a need to understand some new thing, you will look not only at the API but also in the very essence of technology. And then you can tell yourself that you have a better option than spending your time on it.
Lots realized only at a later age that they had been superficially skeptical of many disciplines at university. Do not repeat their mistakes and do not run after big money while you are at university, but study the basics and it will pay off with interest!