Software development: Learn Old, Not New.
There is a common misconception about software development: it’s an area where everything changes rapidly, and being a software developer is akin to running on a treadmill.
Even worse -– it’s like a treadmill that keeps accelerating, and at some point (around age 30+), you eventually fall off, exhausted, with only two options:
- Become a manager.
- Become homeless.
The choice is non-trivial. When we look at this from the quality of life prespective — there is no scientifically proven evidences that one option is better than the other.
Well, in fact, the reality is quite the opposite. But let’s not throw words around and look through the history of programming to make a reasonable conclusion about how fast software development is really changing.
The 3 Main Paradigms
We have dozens of languages, tons of frameworks, and libraries, and still, something new seems to appear every single day — is that what people call “fast-changing”?
While it’s true that something new comes up all the time, I don’t even need to look closely to confidently state that each of these new developments extends one, two, or all of the main paradigms: Object-Oriented Programming, Structured Programming, and Functional Programming.
And guess what? Each of these paradigms is at least 60 years old!
Structured Programming was a solution Dijkstra came up with to solve the issues caused by using the GOTO command. Back then, control over code execution was based on explicitly pointing to the exact line of code that needed to be executed next.
I had some experience with BASIC in my childhood, and what I remember for sure is that line numbering is a huge headache, even when writing simple programs for learning purposes.
But doing it without loops and conditional statements? That’s a real nightmare. Just have a look at these few lines of BASIC code:
10 PRINT "Welcome to the Number Guessing Game!"
20 PRINT "I'm thinking of a number between 1 and 10."
30 LET secretNumber = 7
40 INPUT "Enter your guess: ", guess
50 LET difference = guess - secretNumber
60 GOTO 90 * (difference = 0) + 70 * (difference < 0) + 80 * (difference > 0)
70 PRINT "Too low! Try again."
75 GOTO 40
80 PRINT "Too high! Try again."
85 GOTO 40
90 PRINT "Congratulations! You guessed the correct number!"
100 PRINT "Thanks for playing!"
110 ENDThanks to what Dijkstra did in the 1960s, we now have `for`, `while`, `if…else`, and other structured control flow constructs.
Object-oriented Programming was invented even earlier, in the late 1950s and early 1960s. It’s worth mentioning that it all started with just the idea of an object as a data structure, represented by a set of properties. By the 1970s, though, all the core features of OOP — encapsulation, inheritance, and polymorphism — were already in place. Which is quite a long time ago!
Get Grigor Oganesyan’s stories in your inbox
Join Medium for free to get updates from this writer.
Functional Programming is surprisingly the oldest paradigm, invented around the same time as Alan Turing’s “universal Turing machine”, which predates the first computers.
Lambda calculus, the foundation of functional programming, was introduced in the 1930s (over 90 years ago!) by mathematician Alonzo Church.
It’s a formal system in mathematical logic used to express computation, centered around the idea that functions can be treated as first-class citizens. This means functions can:
• Be passed as arguments to other functions.
• Be returned as results from functions.
• Be assigned to variables.
That’s basically all the features we expect from any programming language to say that it supports functional programming.
Still not convinced? Just have a look at this statistic:
All the top languages are both old and (except SQL) support all three paradigms. For example, Python has been growing in popularity year after year, with ambitions to become the most popular language. But does it bring anything new to the table? Of course not.
Should We Learn Frameworks and Libraries Then?
If you’re looking for your first job, unfortunately, you’ll have to learn some frameworks and libraries. A hired developer is an investment, so companies look for evidences to determine whether you’re a worthwhile asset.
However, once you got your first job — it’s time to switch focus to learning fundamental principles of software development instead of reading some framework’s documentation and memorize its features.
Conclusion
The world of software development is NOT fast-changing. Most new things either provide insignificant improvements or are totally useless. Some crucial changes, like the rise of AI, do happen, but they are like the news: even if you don’t follow it, the really important things will reach you anyway.
Focus on time-proven fundamentals, and you will inevitably become a great developer!
Stackademic 🎓
Thank you for reading until the end. Before you go:
- Please consider clapping and following the writer! 👏
- Follow us X | LinkedIn | YouTube | Discord
- Visit our other platforms: In Plain English | CoFeed | Differ
- More content at Stackademic.com










