Skip to main content

What is coding?

The below is a chapter from my second book Learning to code again


I had to explain what coding is to someone in layman terms and this is what the conversation looked like

Me : Coding is speaking to the computer in a language that the computer understands. When we click on the reply button on this forum, there is code that runs that tells the forum software what to do.

Person : So, what exactly is software?

Me (with the help of Bard) : Software is a set of instructions that tells a computer what to do. It is like a recipe that tells the computer how to perform a task. Software is essential for our computers to function, and it helps us to do everything from browsing the internet to playing games to working on our jobs.

Me : We use code and coding to create the software.

Person : So, software is like AI or a form of it?

Me : Yes, AI is a type of software. AI is created with code to mimic human intelligence.

Person : Thank you for answering my questions so thoughtfully.

I asked my friend Bard to help me explain the difference between coding and programming:

Coding and programming are often used interchangeably, but there is a subtle difference between the two terms. Coding is the act of writing code, which is a set of instructions that tells a computer what to do. Coding is the technical skill of writing code in a specific programming language. Programming is the process of designing, writing, and testing code to create a software program. Programming is a broader term that encompasses coding, as well as the other steps involved in creating a software program, such as planning, debugging, and testing. Here are some other terms that are often used in the context of coding and programming:

Software development is the process of creating software programs. Software engineer is a professional who designs, develops, and maintains software programs. Computer Science is the academic discipline that studies the theory, design, and application of computer systems.

Ultimately, the difference between coding and programming is one of scope. Coding is the technical skill of writing code, while programming is the broader process of designing, writing, and testing code to create a software program.

While I will explore many things related to all of these, my focus is on coding and being a hobbyist coder. My laptop conked out and all I have is my four year old Android mobile phone. At the moment, I use github and gitlab, termux, replit and pydroid. I use Bard, ChatGPT, Google, forums and youtube for learning and research. Recently the Ministry of Digital Transformation in Trinidad and Tobago launched the Developer Hub project. This aims to bring together the local developers to build our developer ecosystem. I am there also contributing as much as I can and learning with others.

I wont remember a lot of what I am learning and researching but the more I come across things and the more I use things the better my understanding gets and the more I am able to connect concepts and expand my thinking. Does not matter how good a coder we become or how senior we become, most of us will still rely on Google (and now AI) and documentation and tutorials and Stack Overflow. Technology changes often and quickly that we are always in learning mode.

The word "code" comes from the Latin word "codex" which means "a book of laws". Codex comes from "caudex" which is a tree trunk. The first use of the word "code" to refer to computer programming was in the nineteen forties. The etymology of the word "code" is a reminder of the roots of computer programming. Just like the ancient Romans used wooden tablets to write laws, we use computers to write code that tells them what to do. We often hear the term hackathon but some people do use the term codeathon.

All this talk about coding is making me hungry. I have learnt that I should avoid spaghetti code. Spaghetti code is a pejorative term for unstructured and difficult-to-maintain source code. There is even ravioli code (each component of ravioli code is self-contained and easy to understand), lasagna code (code that is structured and layered, but also monolithic and difficult to modify), jenga code (code that is fragile and difficult to maintain) and frankencode (code that was never designed to work together). I remember asking about spaghetti code in the Caribbean Developers forum and someone responded, "If it’s a quick thing I’m doing, I really don’t care to spend extra time making it maintainable and readable." This is a good point.

Someone asked on Twitter, "A developer turns ______ into ______" and I replied funnily, "pizza into bytes".

What does coding mean to you? How would you explain coding in simple terms? Is there an analogy that helps explain coding? Find me on social media and share your thoughts with me.

Comments

Popular posts from this blog

Hobby project - Store and view exchange rates

The next step in my project was to test out being able store and display the rates in a database. I decided to use nodejs and supabase for this. Everything worked beautifully. Only hickup was the following error due to my package.json not being correct. SyntaxError: Cannot use import statement outside a module Added this to package.json   "type": "module" This works beautifully. Right now I am just testing fragments of what could be part of a bigger system to see what is possible and what works and how easy to code on a mobile. There is no fully functioning integrated end to end system just yet. This is also what I tested. A serverless append-only database using GitHub + Actions + Pages. That’s basically a lightweight backend system. This was the ChatGPT prompt I used. Guide me through each step. This is what I want. A manually run github actions that adds to docs/data.json with the current date and time. docs/index.html displays all the entries in data.json. Make s...

What is important

Every now and again, I get reminded of the why. Why I have handed my life over to God. It is 3:08 p.m. and I have decided to write. Honestly, I feel like I could end this blog post right here. What more is there to say? God above all else. God is our compass on this journey called life. Everything else can become a distraction. Maybe not everything, but certainly many things. You get the point. What is important? What do we prioritise? What do we make time for? The answers look different for everyone. Our lives are different. We are tested differently. We are all products of our circumstances, and those circumstances vary from person to person. Yet God is the common thread across humanity and throughout time. God always was and always will be. One day, we will answer to God. We will give account to God. We cannot live without food, water, and oxygen, but all of those things come from God. So how can we live without God? How timely. I just received a notification from the Quranly app: S...

Running php and apache on termux

This was my experience getting php and apache to run on termux apt update && apt upgrade -y apt install php-apache I was following an old blog post that used php 7 and got these errors Can't locate API module structure `php7_module' in file /data/data/com.termux/files/usr/libexec/apache2/libphp.so: undefined symbol: php7_module Cannot load /data/data/com.termux/files/usr/libexec/apache2/libphp7.so Corrected in apache config file vim $PREFIX/etc/apache2/httpd.conf LoadModule php_module /data/data/com.termux/files/usr/libexec/apache2/libphp.so Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe.  You need to recompile PHP. Comment out mpm_worker and use mpm_prefork #LoadModule mpm_worker_module libexec/apache2/mod_mpm_worker.so LoadModule mpm_prefork_module libexec/apache2/mod_mpm_prefork.so This still does not work as apache (httpd) was failing silently. According to Chatty LoadModule php_module ...libphp.so often fails in Termux becau...