Programming? Introduction for beginners
The target audience for this post are total beginners to programming who are interested in programming, however, do not know where to start.
Do not worry. Every one of us was a total beginner and looked for a starting point just like you do.
Start here. This post is a very high level introduction to encourage total beginners to get started with programming. Keeping the concept simple allows to gain a better understanding of the very basics. Everyone can learn how to develop software and anyone who’s willing to spend more time on it than the average can be a successful software developer.
Please note in below definitions I am going to use the word “computer” to simplify the concept. However, this does not mean we are limited to computer devices. The basics are the same regardless whether we develop code for an actual computer, a mobile device, a smart watch or something else has the facility to run those programs.
What is a computer program?
Honestly it is not as difficult as it sounds. A computer program can be defined as a set of instructions a computer can interpret.
Who writes those instructions?
Typically software developers, software architects, software engineers and anyone who knows the basics of a programming language can write computer programs.
What is a programming language?
Programming language can be described as a set of rules collected into a unique language that can result in a set of instructions the computer directly or indirectly understands.
We use programming languages to develop computer programs.
At this stage it is vital to distinguish between two types of programming languages:
- Low level language. Also called machine language or assembly language.
- High level language. These languages are not directly interpreted by computers as low level languages. Instead, a compiler or an interpreter is used to translate the instructions into machine language the computer can directly understand.
Why do we need high level languages?
One of the main reasons is that high level languages stand much closer to human languages so programmers can almost write the instructions as they would write a story or a scenario. Realistically it is not so easy, however, the idea is to manage to develop the instructions by transforming human logic into program code.
What programming language would be your personal recommendation to start with?
Personally, I believe it is better to start with a lower level language and after a little bit of deep diving move on to a high level language. I would recommend C or Pascal to write the first hello world program and after a while move on to Java. This approach is going to be very useful when you reached the advanced stages of software development.
Focus on understanding
Many beginners make the mistake of trying to memorize unnecessary details about a programming language and after a long learning process they are still not comfortable with the language. I do recommend focusing on understanding rather than memorizing. High level programming languages are still quite volatile, so there is no guarantee that what you memorize today, will be useful tomorrow. On the other hand, the same statements are being used for a very long time which is indeed worth to be understood.
Developing software is complicated
Although in this post I focused on keeping the concept simple, software development is not easy at all. Which makes it to be even more difficult is the rapidly changing market demands. Writing appropriate software is far more complicated than it is being said nowadays. Plenty of people gained only some sort of understanding of software development and they tend to describe as writing code, following tutorials or even worse, copying existing code. If you hear someone talking about software development like that, run away. That person has absolutely no clue what he/she is talking about.
Now I know what computer programs are, what’s next?
To learn programming languages you need resources. Although the internet is full of blogs and video tutorials, it is very important to get started with the right resources as well as focusing on the right priorities in order to be able at least linearly improve your knowledge.
Books or video tutorials? Both. However, pay attention to stay on the right track.
If you feel you have done enough research to decide which programming language you are going to start with, just start. Read books, watch videos and most importantly write code. Learning passively will not help you to become a software developer. You need to practice as much as you can.
Mobile or computer or something else?
Even though you could start directly learning how to develop code for mobile devices, I do not recommend this approach. I do recommend however, spending time on learning the basics for computers, including computer architectures, networks and operating systems. This approach will be beneficial in many ways regardless which direction you will go later.