That’s it, you’ve decided, you want to learn how to program using C++. But you must always have some questions running through your mind.
- Concretely, what is C++?
- And why start with C++?
- What will I know when I come out of this tutorial?
- Are there conditions, prerequisites, to be able to follow this course?
Small focus
I said in the introduction that the only prerequisite was to read the introduction to programming and that’s true. But if little knowledge is needed to understand everything that is said, it does not mean that it will be cooked at all, pre-cooked, directly in the mouth. That’s why I want to take a few minutes to clarify this
To develop, a profession in its own right
Eh yes ! Creating software is a profession. Besides, there are even schools and specialized studies for that. It’s that developing is not just writing code. There are also phases of reflection, design, writing, validation, testing, rewriting old portions, etc.
Moreover, even if it is not directly related to programming, can also be added to this: database management, network usage, management, project management, etc. In short, being a developer is a lot of different skills in various fields.
The cruel truth behind all this is that this course will not make you experts or professional developers. On the other hand, once finished, you will have solid bases to continue your learning. The road of knowledge is infinite.
Your part of the work
The course is written so as to be as clear as possible, without drowning in a stream of details and explanations, but sometimes you will not understand a piece of code or an explanation. It’s perfectly normal, it’s part of learning. Resume the lesson at your leisure, help yourself with diagrams or drawings, ask for help on the forums, and you will never be stuck for long. 😉
On the other hand, you have to be ready to make efforts on your side. It means not rushing into the forums after a few minutes without even trying to find a solution.
Mathematics, essential?
One of the major apprehensions, which regularly comes up in the mouths of beginners, is whether mathematics is a prerequisite for learning programming. The answer is no. It is quite possible to learn to program while having a low level in mathematics. This course requires no more advanced mathematical knowledge than basic operations and, sometimes, the use of sine and cosine, as examples.
Of course, certain aspects of programming, such as security, cryptography or scientific applications will require a solid mathematical background. But this is not part of this course.
English, indispensable?
Strictly speaking, as part of this course, no need to know how to speak English. Although we will regularly review written material in Shakespeare’s language, I will be there to provide explanations and clarifications. And even if there is something you are stumbling over, you can use an automatic translator.
From a more general point of view, if you want to continue in computer science and programming, it will be very difficult to escape English. Many courses, documents, forums are in English, or make massive use. English is simply the language of computer science. Afterwards, know that computer English is easy to understand because it is often written by people whose mother tongue is not English. So, no need to be bilingual, a good dictionary or translator will help you.
Overview of C++
The history of C ++
Let’s take a plunge into history and back in the 1970s. At that time, Dennis Ritchie, a programmer at AT & T Labs in the United States, invented the C language, designed to program the UNIX operating system. This language became very popular to such an extent that it is still widely used today, in the writing of Linux for example. Then a little later, in the early 1980s, Bjarne Stroustrup, also a developer at AT & T Labs, decided to take the C language as a base and add features from another language called Simula. This language then became the C with classes.
Finally, in 1983, its creator, believing that the name of his language was too reductive in view of all the additions made to the C, decided to rename it C ++. But the story does not end there. On the contrary, C ++ continues to evolve to such an extent that it was decided in the early 1990s to normalize it, that is, to establish the official rules. This long-term work was completed in 1998; this version is thus often called C ++ 98. Then, in 2003, corrections were made and we obtained C ++ 03.
Then again a titanic site is set up to further improve the C ++, which culminates 8 years later, in 2011, the release of C ++ 11, judged by many developers as the rebirth of C ++. Then, new corrections and some adjustments were made to give C ++ 14. Finally, at present, the standard C ++ 17, new major version and bringing a lot of interesting things, came out at the end of the year and C ++ 20 is already under construction.
Why learn C++?
- Its popularity: C ++ is a language that is used in many important projects (let’s mention Libre Office, 7-zip or KDE). It is on the program of many computer training. He has a very important community, a lot of documentation and help, especially on the English-speaking internet.
- Its speed: C ++ offers great control over the speed of programs. It is this characteristic that makes it one of the languages of choice for scientific programs, for example.
Its ease of learning: since its 2011 release, C ++ is much easier to learn than in the past. And that’s good, it is on this version and the following that will be based on this course. - Its seniority: C ++ is an old language from a computer point of view (30 years is huge), which gives a certain guarantee of maturity, stability and durability (it will not disappear in a few years).
- Its evolution: C ++ 11 is a real renewal of C ++, which makes it easier to use and more powerful in the features it offers developers. C ++ 14 and C ++ 17 further improve the thing.
- It is multi-paradigm: it does not impose a unique way of designing and cutting programs but leaves the developer free of its choices, unlike other languages such as Java or Haskell.
Of course, not everything is perfect and C ++ also has its flaws. - Its C: C ++ heritage is a descendant of the C language, invented in the 1970s. Some design choices, adapted for the time, are more problematic today, and C ++ trails with him.
- Its complexity: do not hide it, have some control of C ++ is very long and will require years of experience, especially because some of the most powerful features of C ++ require knowledge of the basics.
- Its standard library: although it allows you to do a lot of things (and besides, we will not even have time to make it a complete tour in this course), it does not offer a native mechanism to manipulate databases, making programs in windows, playing with the network, etc. Compared to other languages like Python, C ++ may seem more “limited”.
The documentation
In programming, there is a reflex to adopt as quickly as possible: if you do not know how to use a tool, you should consult the documentation of the tool concerned, and before asking for help on a forum by example. Here is a link to excellent C ++ documentation. It’s in English, but no worries, I’m here with you. I will give you links, explain how to understand and use the information provided so that you can do it yourself later.
There is also another tool, very useful to search for information and you already know, the search engines (Google, Bing, DuckDuckGo, Qwant, etc.). Also be aware that forums are a mine of information. For example, you can use those of Zeste de Savoir, obviously not forgetting to use the [c ++] tag when creating a topic.
Finally, be aware that there is an ultimate reference called the standard, produced by an international validation body called ISO, which explains all the details and rules of C ++ but which is a complex document and very largely out of reach for you .
The latest version of this document was released in 2017 and explains the rules of operation of C ++ in its version of 2017. I just mention it so that you are aware of its existence, without being surprised if, during your research on the Internet, answers mention or quote the standard.
In summary
- Programming is an activity that is sometimes complex, but very rewarding and accessible.
- The course is intended to be as accessible as possible, but you must play the game and make efforts on your side.
- Mathematics and English are not required to take this course, although an acceptable level in English is extremely useful afterwards.
- C ++ has a long history, but modern C ++ really came into existence in 2011, with improvements and fixes made in 2014 and 2017.
- C ++ has forces that make it one of the most used languages on the planet.
- In return, C ++ is a fairly complex language that takes many years to be “mastered”.
- The documentation helps us better understand the language, how it works, etc. It is in English, but illustrated with examples.