The software industry is doing very well, and it’s still expected to grow even more over the coming years. Everyone of us uses different kinds of software, for work as well as for everyday life, but in addition of being a user, you also could be a software creator, and you don’t need years of tech studies and/or experience for that, this is something that you can learn, just like playing a musical instrument, painting, playing a sport or speaking a language.
The reality is that many tech people do not like programming, whereas some people with no tech background can become talented programmers, that’s why you should give it a try, whatever your background is, and even if you think that it’s not for you.
In this article, I will try to explain the very basics of computer programming, assuming you’re starting from zero.
You may already know that the “brain” of any computer is the processor, because it’s what makes software run. Processors only understand one language: the machine language, which is binary code, made of zeros and ones.
Of course programmers don’t write zero and ones all the day, they write code, which is a mix of commands, variables and some data. Code needs to be executed, otherwise it is just useless text, and there are actually two ways for turning text written in a particular programming language into instructions to be executed:
Compilers: They convert code to binary files, that are directly executable by the processor, with the help of the operating system of the computer, you already came across .exe and .bin files. There are compilers for languages like C++ and Go.
Maybe you want to try writing some code now, but where do you write it? Well code is basically just a text file with a specific extension, so a basic text editor like Notepad can be used, but this is not what you will want to use, because you need a dedicated code editor that can understand the syntax of the programming languages you are using and will help you with writing while making the code more readable, and error spotting easier. An IDE (Integrated Development Environment) will offer you even more functions and possibilities.
I tried many code editors, but the best one today is probably VScode
Libraries and frameworks, the secret weapons of developers
When you build a software, you will not write everything from scratch, because most of the functions that you will need were already needed by somebody else before you, that’s why there are code libraries for each programming language, where you can find pieces of code created and maintained by contributors from all over the world, together with a documentation to allow you to use it properly.
Frameworks are also a kind of code library, but they provide more abstraction and automation, reducing the amount of code you need to write, and also providing more security.
Why I like web applications
For most people, the words “the web” and “the internet” have the same meaning, but technically speaking, the web is in fact a technology that allow two or more computers to communicate. Computers needs to understand each other to provide a useful outcome out of exchanged data, and just like humans have languages, computers have protocols. You probably already heard of TCP/IP and HTTP.
The purpose of connecting computers to make a network is to offer the possibility to a user on one machine to access a data or a service that is located on another machine. In order to make this possible, we need a software with a user interface, to handles interaction with the user, called the client, and another software on the remote machine, that has access to the data or the service that the user needs, called the server.
To make a web application work, we need an HTTP client, like the web browser that you are using to view this post, and on the other side an HTTP server, like Apache or NGINX. The web is the technology that makes the internet possible, but the HTTP server can also run on a machine on a local network, also the client and the server can run on one same machine.
Web applications have a fantastic power: They can reach unlimited users while being installed on a single machine, this is why cloud services like Software as a Service (SaaS) are widely used today.
Electron: make desktop apps using your web skills
With Electron apps, the web client and the webserver are “merged” into one same application. There is no more distinction between client-side and server-side, and you can use the power NodeJs everywhere.
Examples of popular apps made with Electron are Slack and VScode
Cordova: make mobile apps using your web skills
The importance of regular practice
Programming is definitely a skill that you learn by doing. It’s simple: the more you code, the better you will get, and there’s no way around that. Maintaining good habits is also very important.
What about no-code and low-code?
These last years, a lot of online tools started offering you to create amazing things using a visual interface, without writing a single line of code, like Webflow to create websites and Zapier to automate tasks, while these tools are great, you should not limit yourself to what they allow you to do, code will always be more powerful than a visual interface by far.
Low-code has a much higher potential in my opinion, but by the time I’m writing this, this is not really a big thing yet.
Feel free to share your thoughts and ask questions, thank you for reading!