So you want to learn programming.
Very nice. Good choice. Programming will open many doors to you.
This guide is not for those who want to learn to code in 10 minutes, like those dumb youtube videos or those. It will take you time to learn, as it takes to everyone learning a serious activity. But don't give up yet, Chances are that if you're seeing this right now, you're already somewhat deep into technology, but I will start from 0 anyways so anyone can follow this guide.
will not learn to design websites. If that is what you want leave now.
You will learn systems and desktop programming, which is the development of computer programs that work natively in the operating system, and maybe learn OS dev too, if I have the time to write about such topic. The languages we will use are C#(pronounced "c sharp") and C++ (pronounced "C p p" or "C plus plus"). You can find the C# documentation here and the C++ documentation here. Let's talk a bit about these programming languages.
C# is a high-level, general-purpose, object-oriented programming language built on top of .NET. It's use cases range from desktop applications, to console programs, to videogames, and to even web servers. C# has a garbage collector, which simplifies things a lot for the programmer as resources don't have to be allocated and freed manually.
C++ is a low-lvel, general-purpose, object-oriented, functional, generic, imperative language that is compiled to native machine code. Its applications vary, from high perfomance computing, to game engines, to scientific computing, to desktop programs, to web servers and even to operative systems programming.
I will use the coding styling that I think is the best, such as a modified version of Allman style and 4 spaces instead of tabulations, but you can use your own. If you just read this line and had no idea of what I was talking about, don't worry. It's something only programmers will probably understand, which means that you can understand it too if you learn to program :^).
Know that problem solving skills are part of the set of skills you should learn while you learn to
program, which means I will not answer any questions related on how to do X thing if it can be solved
using a search engine like Google. I know google is not certainly the most private search engine, but
it's required if you don't want to lose your time searching for answers to your questions.
Alternatively, you can use Startpage, which is a sort of relay
for google search, so the results are pretty good too. I recommend you try searching on Startpage first,
and if you don't have luck, use Google.
You won't get anywhere, and I really mean it, if you have to ask someone else your questions or need someone to solve your problems. Someone else has had the same doubts and asked your same questions before, so search them!
Finally, I ask you that if you find any typo, mistake or issue in this guide, let me know via email.
If you have read all this it means that you are ready to start!