20260415 - Should we learn Programming anymore...?
My first encounter with a computer was in middle school at one of my friend's house.
It was almost a miracle to have a computer in India in those times (1980s).
My friend's father was connected to IEEE and I am guessing the computer was importable through that connection.
We only played games on it occassionally (games of those days - Packman, F16, Nascar, Mario, Prince of Persia, etc.)
I don't remember how much storage memory capacity it had.
I think it had only 512KB of RAM and a 5¼" floppy disk drive (I think they came with a max 512KB of storage capacity).
I vaguely remember once they had got Autocad and it came with 95 of those installation floppy disks!
This was DOS Operating system - i.e., big CRT monitor screens with green characters (think of the Matrix movie)
Anyway, the first time I really interacted with a computer was in engineering, around 1993, I think.
We had a subject called Fortran (Formula Translation) - which is a rudimentary procedural programming language.
That was the first time I understood what the "Compute" part of a Computer meant.
We had rudimentary things we could do - ex, define variables which could be numbers, characters, text strings etc. and then we could assign values to these things (variables) and do many operations on them (ex, arithmetic operations, text manipulations, etc). The most incredible thing was that we could perform these operations in loops till we wanted to stop based on some criteria! - e.g., keep doing something for X times, do something while some criteria were not yet met, etc. Or we could also do things conditionally - ex, do this if some condition is met or do something else otherwise etc.
Basically, using the above arithmetic operations, logical operations, looping operations, etc., we could achieve wonders as long as we could break down problems into smaller pieces and solve them with these structural and logical operations.
Mid 1990s was big time in Bangalore for computer training institutes.
Go to any street and you couldn't miss a handful of centers claiming to be able to teach you whatever was the flavour of the month.
I had tasted blood with Fortran. A good friend of mine was equally hungry.
We joined on of these training institutes for a course on a programming language called "C". That was the flavour of that time!
Very soon we realised we were in fact training the trainer in that institute.
The only benefit of the course was being able to get access to a computer dedicated for some time (which was really rare).
So, we taught ourselves the C programming language.
This was the time before Google. Let alone Google, this was before the internet, email, chatting, etc.
Basically nothing could be learnt online. Whatever could be learnt from books was it!
Soon I realised C was very similar generally speaking (variables, logical operations, looping operations, etc.).
It had a different way of writing things (syntax), but essentially it was similar: break down bigger problems into smaller structures, using logical steps to achieve what you needed to with the above mentioned structured operations.
One very impressive and powerful feature in C compared to Fortran was a concept called pointers...
It was still a procedural programming language but a lot more powerful because of this concept of pointers. I spent a lot of time toying with this newfound ability.
Our ability to learn more through experimentation was limited by the time and computer access we had.
This was still with big CRT monitors with black screens and green characters btw.
One of our good friends in engineering had an aunt who had a computer in her house. I don't remember exactly the situation now but I think she had a relative who lived in one of the Gulf countries and that is how they had a computer at home.
She was very kind to all of us (our group of close friends) and allowed us to use the computer for long periods of time. Luckily our good friend (her nephew) had also tasted the same blood and was hungry as well...
Point to note: this was not a computer with a black screen and green characters anymore.
This was our first exposure to Microsoft Windows (Windows 95 I think) and a graphical user interface.
Encouraged by this, we also (via books still) learnt Visual C and afterwards Visual C++
C++ is a very different way of programming (something called object oriented programming).
It took me a very long time to wrap my head around object-oriented programming and the C++ programming language.
However, when you stripped away the different ways of thinking about certain concepts, it still involved variables, looping, and logical operations.
Just not procedural anymore but something called object-oriented programming.
It was also nearing the end of our engineering course and we spent hours and days/ nights using the power of Microsoft Word to write up our project reports.
My next jump in learning a different programming language occurred when I started my first job, which reinforced what I had learnt earlier along with 2 new but very important concepts.
1. Graphical User Interface (GUI) programming (with Visual Basic) &
2. Relational database programming (with Oracle)
It opened new doors (rather Windows) to what could be done for something called application programming.
Visual programming gave a new power - to to be able to do things not as a procedure or sequence, but as a response to user interactions on screen elements.
Database programming enabled us to store and retrieve data for many purposes afterward—something not easily done with other programming languages.
However, strip away these 2 new abilities, and it still involved variables, looping, logical operations etc. to achieve what we needed to achieve.
At the core of it, needed to be a structured and logical breaking down big problems into smaller solvable pieces...
I joined my first job by late 1997 as a software programmer (no surprises there!).
Thanks to IBMs goofup they had successfully driven the world to panic with their Y2K bug.
This had put India on the world map as a problem solver for this particular Y2K problem.
India was churning out truck loads of engineers who spoke English and were willing to do this mundane work at (comparatively) inexpensive wages - the proposition was too good to ignore for every business in the developed world.
What started as a quick fix for the Y2K problem eventually spread into every possible area in software engineering because the core proposition remained.
It was against this backdrop that I started as a software programmer.
My job over the years took me to many many programming areas like Java programming language, various scripting languages (JavaScript, Macros, App scripts, etc). Each of these programming languages came with different IDEs (Integrated Development Environments) - like VB editor, C editor, Visual Studio, JDK, etc.
Not to mention, as my roles changed, started using many tools and productivity solutions as well.
I successfully moved on from a CRT monitor with a black screen & green characters to colour flat screens and powerful laptops later.
The only thing that remained constant was thinking in a structured way, breaking down big problems into smaller solvable ones, use very similar logics (irrespective of the Job/ responsibilities/ products/ packages used)
Today, I use AI in almost every area to give me an additional "shot in the arm" to get to the outcome I want to get to.
- The Tool I use is AI.
- The IDE is a text file. (I struggle with typing and make many mistakes. So, I type everything first in a text file first and upload the file to the AI to execute.
- The Programming Language I use is English. (It could be any damn language! That AI thing understands and does what I am asking irrespective)
Essentially, as a member of Gen X, I had the fortune of having ample entry-level programming jobs where I was able to gather the Programming mindset which got reinforced and strenthened through the years.
I'd say, Gen Y also had the same privilege of these entry level "white collar" jobs to hone this ability.
This applies across industries btw. not limited to software programming alone.
Analysis entry level jobs are needed everywhere to develop and reinforce the structured thinking, logical mind and overall "problem solving".
These entry level white collar jobs, across industries, are very much needed to develop a problem solving mind over many years by slowly climbing up the rungs of that ladder.
So - the verdict : Programming languages are well and truly dead. It will never come back.
However, Programming thinking is not dead! (across industries).
In fact, in today's world, I'd argue that a Programming ("Problem solving") mindset has become even more important !
Unfortunately, the ladder I referenced above is broken for good now.
For most Gen Z+ individuals, there is no lowest rung from which to start and climb further.
So how do we give this exposure/ experience to kick-start their "problem solving" minds..
Should we expect their schools/ colleges/ other institutions to focus on imparting this "problem solving" mindset?
My humble opinion is it will never happen;
- Most Schools/ Colleges/ etc. havent even woken up to the AI world, let alone having the capability and capacity to impart this ability to children.
- To develop a Problem solving mind, we first need good problem solvers to impart this ability. Existing capacity and capabilities in most schools are not capable of handling this.
- Even if schools/ colleges wake up to this changing need, where will they get them from? All said and done, people with this ability (the problem solvers) are few and far between. I am not trying to be disrespectful to the majority of others. Everyone is needed in this world to make up this world and keep it running. However, it doesn't change the fact that this is scarce.
- Let us say somehow a school/college conjured up enough of these individuals . Schools and colleges simply cannot afford (financially speaking) to have these minds on their rolls.
So, how do we address this Gen Z+ missing rung problem?
My take is that it comes back to the home and will fall on parents, close family, close family friends, etc. They (we) have to grab every circumstance to create opportunities to transfer this ability to them - which we might have been exposed to and benefited from.....
What do you think...?
Comments
Post a Comment