Image for post

If you are interested in how programmers think or in becoming a programmer yourself then this article is for you; it doesn’t matter if you’ve ever written a single line of code, buckle up because I’ll take you on a journey into and through the programmer’s mind. The hope is for you to leave this article with a better understanding of what programming is and how programmers think.


Programming is the term I’ll be using, some people call it coding, and others call it software engineering; different people use different terms, and despite the minor differences in definitions they’re all pretty much the same thing. So, what is programming?

Programming is the abusive non-consensual act of commanding a stupid piece of hardware to do math for you so that you can relax and sip on your coffee instead; that of course is the purest of definitions for programming, but let’s try a nicer definition. Programming is the act of talking to a piece of hardware to have it do something for you. For the sake of simplicity moving forward I’ll use the word **computer **instead of a piece of hardware; personal computers, mobile phones, and smart fridges are examples of what I mean by computers.

Computers, unluckily, can understand one and only one language; that language is called Machine Language, which consists of 1’s and 0’s. Fret not my friends, you won’t have to speak that language.

What you do have is hundreds of languages to choose from instead, because unluckily again, people realized machine language is too difficult to master so they invented new languages, many new languages mostly using the English alphabet but are not English, and then introduced many translator programs (called **compilers **or interpreters) that will translate that language for you to machine language.

That, of course, wasn’t enough for some people, so they decided to write more translators on top of translators, creating a complex chain of translations down to machine language. Some people went so far as to create virtual machines that understand completely different languages with their own chain of translators on top that will eventually translate whatever they’re running into machine language. This of course proved to be extremely beneficial, but we’ll leave that topic for another day.

This pattern of constantly trying to figure out and refine things is a very important commonality between programmers; it’s also one of the most important things to keep in mind as you start your own journey as a programmer. Nothing is perfect, and the path between you and your goal is far from being straight.

Programmers try to solve problems all the time; it’s not perfect, and there’s no one right way to do something.


Throughout my time as a programmer I met so many people who gave up on themselves because they didn’t think they were smart enough; this misconception is partially because of the way we test students in our education system, and how far that happens to be from real-life programming. The other side of that coin is the way our education system makes it seem like there’s only one way to solving a problem.

I remember when I was taking my bachelor’s degree in Computer Science in one of the exams we were given a question with most of the solution code written, and we only needed to fill in the blanks, on paper. Not only were we required to remember how to perfectly write code in a given language, but we were also expected to know how the professor was thinking when he wrote the partial solution.

In my own journey as a professional programmer I found that if you understand logic, then you’re good to go; it won’t be easy, but you’ll be able to do it. If you don’t have a great understanding of logic then luckily you can practice as you go. In summary, you can do it no matter how smart you think you are.

To battle those thoughts, just keep in mind that we created the machines, not the other way around. Machines are not smart, they’re just efficient. We are here to take advantage of that however we see suitable.

Computers are stupid, and you’re boss.


Expecting to perfectly remember how to do everything in any programming language is absurd, and even expecting to perfectly remember how to write code to do simple things, such as creating a button that does something upon clicking on it, is not always reasonable.

That might come as a surprise to a lot of aspiring programmers such as yourself; the truth is, programming languages come to life and drastically evolve very often. Luckily you have documentations to refer to whenever you feel the need to do so.

#programming #software-development #programmer #coding #software-engineering #visual studio code

Into the Programmer’s Mind
1.25 GEEK