Published on

The All-In-One Programming Language

featured Image

There are 517 million search results for "which programming language should I learn" at the time of writing. Each page will go on and on about the merits of one language over another, with 90% of them promoting Python or JavaScript.

If I may be so bold, I would want to formally disagree with all 517 million of these results and recommend that you study logic as your first programming language.

Knowing how to code is no longer sufficient. The market is so flooded with bootcamp graduates that the title of "junior software developer" has vanished. To thrive in today's world, you must be able to code and possess a rational attitude.

The First Time I Learned Computer Science

My first encounter to computer science was in a tenth-grade elective. On the first day, I was overjoyed to discover a large selection of ice cream and a variety of sundae toppings laid out before me. "Today, we're going to make sundaes," my teacher announced after we'd all taken our seats. On one condition: you must provide a list of exact directions for preparing your sundae, which I will then follow."

No problem, I reasoned, this would be a piece of cake. I scribbled out the perfect set of sundae-making directions in under a minute:

In a mixing dish, place three scoops of black raspberry ice cream.
Fill the bowl with two teaspoons of hot fudge.
Fill the bowl with whipped cream.
Sprinkles and a cherry should be placed on top of the sundae.

Then my teacher — in this great metaphor, the computer — put on the most accurate sarcastic performance I've ever seen. She began ferociously stabbing the ice cream carton's sturdy surface, lid attached.

I said, yearning for a reward, "OK, remove the lid first."

"Because you failed to provide those directions, I was unable to prepare you a sundae, NEXT!"

Let's go on to the second try.

Remove the top from the black raspberry ice cream and open it.
In a mixing dish, place three scoops of black raspberry ice cream.
Pour two teaspoons of hot fudge into the mixing bowl.
Pour part of the whipped cream into the bowl.
Sprinkles and a cherry should be placed on top of the sundae.

I was certain I had it this time. I even double-checked that each item had been opened before adding it to my masterpiece.

She removed the lid and scooped three scoops into the dish. My nascent sundae was finally starting to take shape. She then poured two teaspoons of the hot fudge into my bowl. It wasn't two tablespoons of hot fudge - it was two spoons, and there was no hot fudge. Once again, I failed to be detailed enough. After everything was said and done, I was given a bowl of ice cream, two metal spoons, a solid container of whipped cream, and around 300 sprinkles.

I believe it finally dawned on me at this point: the computer is a fully logical thing. It is devoid of context and preconceptions. It is programmed to respond to a very particular set of instructions and to carry them out to the letter.

Open each of the following if they haven't already: Whipped Cream, Black Raspberry Ice Cream, Hot Fudge, Sprinkles

Take a bowl from the pile and set it in front of you.

Scoop three scoops of black raspberry ice cream into the bowl with the ice cream scoop, one at a time. When you're finished, put the scoop down.

If you don't have a hot fudge spoon, get one, then get two teaspoons of hot fudge and spoon them into the bowl, one at a time, until all of the hot fudge is gone.

Return the whipped cream bottle to its resting position by turning it upside down and pressing your finger over the nozzle over the bowl for 3 seconds.

When finished, sprinkle around 40 sprinkles over the bowl and restore the shaker to its upright position.

Take a single cherry from the container and carefully lay it on top of the sundae.

Hand the sundae and a spoon to the student.

That final bullet was crucial since she began devouring my sundae without it.

This is how computer programming works. Giving a computer a long list of specific instructions. All programming languages, in essence, breakdown into this — instructions.

A Career in Software Development

Software development has become too large to be discussed as a single industry, just as "software developer" has grown too large a job title. Two developers with fragmented skill sets might be equally employable, demonstrating that there is more to a profession in development than just knowing how to code. There's one quality that all great developers have that isn't related to programming: logic.

Critical thinking is a skill that the greatest developers possess. Because the bulk of software projects are undocumented, fragmented catastrophes, this is critical. They necessitate a critical thinker who can piece together knowledge and fill in the gaps as needed. Those who can't connect the dots are the ones who fall behind.

All of this leads to even another forceful remark, this time in capital letters: The principles of computer science have always been and will continue to be crucial to coding competence.

Languages that are popular come and go with the tide. Companies adapt to changing demands by switching up their tech stack as frameworks become obsolete. What is the one constant in life? Fundamentals - that's their definition in a nutshell!