Have you ever wanted to create computer programs to do tasks for yourself?
What’s stopping you? You can, in fact, anyone, no matter their age, can wield the power of typing code to run on a computer. Like anything else, it requires focus, consistency (even in small doses), and dedication.
In this article, I reflect on my many years of experience as a software developer and talk about the core things required of a coder.
Solving problems, and coming up with algorithms to problems, is one of the key things any good programmer MUST do consistently.
So what is coding?
Coding is not just typing away at the computer screen as the movies portray. It involves a lot more; let’s explore.
Coding is simply implementing the solution to a problem by interpreting or transforming the solution instructions or steps into a languuage that a computer understands, which is binary (1s and 0s) or machine code. Thus, coding bridges the gap between humans and computers.
But humans are not typing in 1s and 0s on a computer screen; that would be tedious; rather, the coder uses what is known as a programming language. Programming languages provide a more human-friendly syntax to communicate with a computer. Many programming languages exist today, but all are categorized as either a compiled or interpreted programming language. The compiling or interpreted nature of a programming language is what converts its human-friendly syntax into machine code. This process is done using what is called a compiler for compiled languages and an interpreter for interpreted programming languages.
Compilers and interpreters are also software programs designed specifically to interpret and convert instructions coded by a coder with a programming language into machine code. When a coder uses a compiled language, all the code instructions must first be written in a file called a source code file and then saved. After which, the programming language compiler is then used to read the source file and convert the instructions to an executable file containing machine code. On the other hand, with interpreted programming languages, source code files can be run immediately without having to be first compiled into a binary executable. The interpreter is used to interpret the script by just-in-time compilation.


Where do coders write their code?


Code can be written within a basic text editor such as Kate (KDE), GNOME Text Editor, or Notepad for Windows users. However, using these basic editors will make writing, compiling, and debugging programming language syntax very difficult. So coders generally use what is called an Integrated Development Environment (IDE) or a Text/Code Editor. An Integrated Development Environment (IDE) is a more full-featured application compared to a code editor, which is generally more lightweight. Code editors, however, allow you to add functionalities as needed by using plugins or extensions. The lightweight nature of code editors is why I, and usually most coders, prefer to use code editors that use fewer system resources but still can be as powerful as needed. Regardless of which you choose, both provide a space to write and execute your code. Two of the key features of these tools are syntax highlighting and IntelliSense.
Every programming language has keywords built into the language to accomplish specific tasks. With syntax highlighting, code editors help coders to know which part of their code is using the programming language keywords. These keywords being reserved for the programming language are not reusable by a coder; otherwise, an error would occur. Errors may be classified as syntax or logical errors. Syntax errors occur when the programming language syntax is misused by a coder, such as leaving out a semicolon at the end of a line in some languages. Logical errors occur when the solution steps to a problem result in unexpected results in certain instances.

So what is programming?
Yes, programming and coding are two separate things. Recall coding is the act of inputting solutions to a problem using a programming language which is then converted into machine code which computers understand to process solutions. But how do we get to the solution of problems? This is where computer programming comes in.
Programming is a process of computational thinking; it is simply the process of how we go about finding the solutions to problems. Programming is problem-solving. So before coders code, we must first problem-solve. Problem-solving may be modeled as taking some input and producing an output.

Thus, the focus of computer programming is what happens within the box, which is replaced with what is called an algorithm.

Solving problems, and coming up with algorithms to problems, is one of the key things any good programmer MUST do consistently. I have found programming—problem-solving for several years—to be fun because it keeps my mind actively thinking. Programming has also vastly improved my reasoning and logical thinking ability, which I have also applied to all other areas of my life.
So given any problem, no matter the complexity, approach finding a solution by breaking the problem into smaller pieces and solving each piece at a time. The final set of instructions to solve the problem is called an algorithm. Algorithms are not programming language dependent; therefore, one algorithm may be coded or implemented using different programming languages. Algorithms may also be represented in what is called pseudocode.
Defining the algorithm is just detailing the steps I need to solve a problem. This can be done using diagrams or just writing out the steps in plain language. On the other hand, pseudocode, while also written in plain language, is more closely related to actual code outlining the algorithm or program logic before implementation. Pseudocode is the “implementation how” of the algorithm.
Programmers at times also debate which algorithms to a problem come to the solution faster. This algorithm analysis or study is referred to as finding the time complexity or runtime of an algorithm. Finding the time complexity of an algorithm is to determine how an algorithm performs in the worst case and best case, using notations such as Big O and Omega. So really, the faster algorithm is the one that gets to a solution with the least amount of steps.
Let’s look at an example of summing two numbers.
Algorithm:
Initialize sum variable to zero.
Take two numbers as input.
Sum the numbers and store the result in a variable called sum.
Print the sum variable.

Pseudocode:
Begin
Set sum = 0;
Input: number1, number2;
sum = number1 + number2;
Print sum;
End
Why did I get into coding?
I hate monotonous work, so I got into coding because it was challenging, always requiring different approaches to solving problems. Yes, learning to code will be challenging in the beginning, but once you have learned the basics, it becomes second nature. Nothing truly worth fighting for comes easy, and so is coding, but the rewards can be very satisfying. As a hands-on learner, I fell in love with coding because coding is a very practical domain. You MUST code to learn how to code.
I enjoyed starting from a blank source file to a fully functional computer program that solved a real problem. I was always fully engaged in writing code and working through numerous C++ error messages. I consistently felt productive and that I was adding some sort of value to myself and others. I love learning new things. As I was learning to code, I had to consistently learn new concepts about programming, computer concepts, and even domain-specific concepts. So even though I was a computer science student, I recognized that understanding different subject matters would make me a more well-rounded coder and IT professional. So as a coder, life-long learning is a must. You have to keep learning new technologies at a relatively fast pace.
I also fostered valuable relationships by collaborating on coding challenges or fixing errors within programs. This is when I also understood the importance of peer reviews, which allowed me to improve my coding style. I also got the chance to interact with other coders around the world and learn about different cultures. Through learning to code, I landed my first job in a foreign country. So as a coder, you must be able to collaborate at some point with at least one other coder.
It is perceived that coders are normally introverts. However, it is a plus if a coder is sociable and able to express themselves well, or at least willing to have a conversation with stakeholders. You may have written a brilliant application, but if you are not able to effectively communicate its value to stakeholders, then it is of no effect. So as a coder, effective verbal communication is a must.
Writing code is one aspect of the life of a coder, but a usually overlooked aspect and an important one is writing documentation. It is also important to properly document code itself, for your future self and others. A lack of proper documentation can lead to maintenance nightmares and slow resolution responses to production issues. As such, non-verbal communication—writing—is a critical aspect of the life of a coder. Proper documentation helps to bring new hires up to speed relatively fast so they may make positive contributions in a shorter period. I love to write so preparing documentation is not an issue for me.
Coding also challenged my reasoning ability. I developed the art of finding solutions to issues by engaging in computational thinking to craft algorithms. So a coder is consistently thinking of effective solutions to problems. I chose coding as it was and still is an in-demand skill that can produce good monetary returns via a regular job or by freelancing. Coding is also a domain in which you may have the opportunity to work remotely.
All in all, I got into coding because it is not monotonous, it keeps me engaged, and it is challenging. The coder never stops learning new tech to continuously develop his craft. It is a plus when a coder can communicate well with stakeholders, be sociable to build his network of people to collaborate on projects. Also, a coder should be capable of preparing sufficient documentation for written code bases as well as system documents to aid in proper maintenance and upskilling. Remember, the key to coding is consistency and even small consistencies.
Thank you for reading!!
Interesting Bits
Interpreted vs Compiled Programming Languages: What’s the Difference?
https://www.freecodecamp.org/news/compiled-versus-interpreted-languages
We stumbled over here from a different website
and thought I might check things out. I like what I
see so now i am following you. Look forward to exploring
your web page yet again.
I really love your site.. Pleasant colors & theme.
Did you develop this website yourself? Please reply
back as I’m trying to create my own personal blog and would love to know
where you got this from or what the theme is called. Many thanks!
Hello, happy you like my site. I am using the free Blocksy WordPress Theme.
You can use sites like https://coolors.co/ to help you with choosing a color scheme for your blog. I wish you all the best, have fun blogging.
Very interesting and well written article, Kevin. I can’t wait to see what’s next for you. Looking forward to your next post! ♥
Hi Lackeisha, much appreciated. Be on the look out for coding tutorials and some Linux articles. Be blessed.