Getting started with programming or coding

Learn how to get started with programming and what I would like to have known upfront to make my life more easier. First you have to decide a direction that peaks your interest. Here I consider two directions, web development and application development, where the application can run on mobile or desktop. These days the line between web and applications start to fade as web techniques can be used to build applications too.

Web development

Web development is the easiest to start with. First you can build a website with HTML and quickly see some results in your browser. Later you can extend on it by starting to learn HTML 5, which basically means extending your knowledge of HTML with CSS to style the elements on your site and using Javascript to add interactivity. This way it's possible to create all kinds of stuff, such as games, simple tools, education resources etc. To create even more interesting projects you can start using WebGL and WebAssembly. I don't go into too much detail on how to start on the web in this article. There are plenty of sites for that which you can find by googling for HTML 5 tutorials.

Application development

If you want to create cool visual effects, graphics intensive games, do simulations, create automation tools then Applications are for you. An application is a piece of code compiled and linked to run on a mobile phone or desktop. It's possible to create applications that can run on mobile as well as desktop. My advice is to start programming on the desktop if you are just getting started. For the desktop there are 3 options, Windows, Linux and MacOS. It's also possible to code for a device as the Raspberry Pi but I don't recommend that when you are just starting. I know these devices are made also for education but anything you can do on them to get started you can do more easily on the desktop. I prefer programming on Windows, I also use Linux but I think it is easier on Windows to get started. I don't have a Mac so I don't know. Just use the OS that is available for you.

Windows development

To create something that can run on Windows you need software that allows you to build what you can imagine. I recommend Visual Studio Community This is a free program for individuals and it can do a lot. It also helps you debugging problems with your code. When you first start it, it might look a bit intimidating and complex but to get started all you need to know is to create the project type you need and then add files and learn how to use the solution explorer. You can build your project by clicking the build button and then start your app if there are no build errors. Software is build by writing code in a programming language. There are many programming languages. Luckily there are only a couple of popular programming languages. The choice of language depends on the types of projects you would like to do.

Programming languages

Python is a very popular language and relatively easy to start with. I would start with Python when you are interested in machine learning, data science, server programming on Linux or just small programming tools.
Dart in cobination with Flutter, Kotlin or Java when you want to do pure Android development.
C++ is considered to be not a language for beginners but if you only use the basic features I think it is a perfect choice to start in. I would start with C++ if you are interested in making games, creating computer graphics and other real-time applications.
C# if you like to create mobile apps on diffent platforms such as Android, IOS and Windows. You can use it to create games as well as full blown Desktop applications and server programming. I would personally start with C# at this moment.
Scratch is a visual programming language and it is really for kids but of course adults can also tinker with it, this will teach you some programming concepts in an isolated environment.

The reason I suggest to start with these languages is because every time you switch a language you hit a barrier in that you need to learn which syntax to type and you build up automatic memory which works against you when you switch so it is better to start with something where you can build what you want to build in the first place even though you might lack the knowledge when just starting. In the next post we will dive deeper into how to learn programming.