How Abstraction Redefined Programming

in #programming8 years ago (edited)

Programmers come in many forms and shapes these days, due to the multitude of choices we have in the field. No longer does a programmer have to understand binary, or how a transistor works, or how software communicates with hardware – and this is all a sign of progress, because now we can train people to specialize in particular layers of abstraction.

So what do we mean with abstraction? Well, think about numbers for example. A number can be described in many ways:

Ten (English), 10 (Decimal), 1010 (Binary), A (Hexadecimal)

Which way of describing the number is the most abstract? Well, it depends on how we look at it. For a computer, the least abstract way of dealing with the number is 1010 (although some may argue that I don't understand binary...), because it's precise, and very compatible with the functioning of the computer on a whole. However, for us humans it's way more abstract to talk in ones and zeros, than to just spell it out in the English. But since computers are our reference point, we chose to look at it from that perspective, and thus Ten is the most abstract form in the case above.

What we have seen the last couple of decades, is that programming languages has moved away from the preciseness of low-level programming, into more and more abstraction. When comparing a modern programming language to an old, we find that the code looks a lot more like English nowadays. Which is great, because now we don't have to teach every programmer about the whole concept of software and hardware, instead we only have to learn a language. Think of it like building a website, where you can use a web-builder – suddenly you simply have to drag and drop graphical elements to fit your design, and all code happens behind the screen. The languages has become more and more intelligent in a way, and does a lot of the work for us without instructions.

But if you truly want to master your profession, you should always expand your expertise within the field. And I believe the programmers, back 20 or 30 years ago, generally had a broader skillset than we have today – not only because they had to learn everything from scratch, but also because they must have had that exceptional passion for what they were doing. Think about it, there was no internet, you had to buy the right books and spend all your wakeful hours on trying to grasp this completely new field of 'computing'. Nature self-elected the geniuses of that time – a mix between extraordinary enthusiasts and technological scientists laid the foundation we now stand on.

Nowadays we have much better ways of teaching and learning stuff – just type what you need in Google, and you will have it. But this has also made everything very cluttered I think, and for every good book, there seems to be at least ten or more completely discouraging books. It has become maze, where you're either drawn into becoming a cog for a company, or just lost in translation.

I'm not really for or against this turn of tide though. Things are moving fast, and sometimes we have to take a few steps back to find our way forward. But one thing is for sure, and that is that the oldschool hacker-enthusiasts are slowly fading into the shadows, leaving the scene for the new generations. And the new generations have a whole different synchronization to the world of technology we now live in, and can probably outshine the founding fathers one day... But to honor the old folks, an ambitious programmer should probably delve as deep into the coding abyss as possible. That is to learn even the less abstract forms of programming, and return to where it all started. Because like in all other things, its beneficial to understand the entirety rather than a specific piece, and the more you understand the whole, the more self-explanatory the specifics will become. Although sometimes, you must study the specifics to understand the entirety...



Special thanks to a certain Australian teacher, R.B., to whom I attribute most of my insight on the matter.


Sort:  

upvoted and resteemed for better visibility.
Bye the way (matching to your story):
There are only 10 kinds of people:
Those who understand the binary system and those who don't.

Thank you! Haha gotcha :)

Early in the morning I read your artice now. As a studied mathematician and "dinosaur" programmer (do you know FORTRAN?) I can entirely appreciate your statements and their conclusions. So it was enjoyable for ME!
But - and that is I wonder about - will you reach the other jurors with it?
Anyway I wish you the very best and I am curious about the opinions of the other jurors.

haha, COBOL and FORTRAN..

Some of your jurors are as old as you are lol

Interesting read esqil, thanks for sharing...

I didn't realize that the programming languages, themselves, helped someone coding by doing some of their work. All the men in my family are programmers to various degrees, so I probably should know this, but I'm still resistantly sticking to English as my one and only language.

As a matter of fact, I also prefer English :) Actually I'm really not that great at coding tbh, just inspired

Coin Marketplace

STEEM 0.18
TRX 0.16
JST 0.029
BTC 62497.97
ETH 2428.72
USDT 1.00
SBD 2.65