How C/C ++ helps you become the developer you wish to be

How C/C ++ helps you become the developer you wish to be

How C/C ++ helps you become the developer you wish to be

As a programmer and a budding computer science student still in school, you would try to keep yourself updated with the latest scripts and languages that hit the world of computing. With popular languages such as Python, Ruby, Pearl and Angular, you would begin to think about the necessity to go old school when it comes to your education. You attend your computer science classes in school that teach you C++, and you do the very same in college as well. The only difference if you are a computer science student in college, would be you learning the fundamentals of Object Oriented Programming through Java. With the rise of languages that promise a lot more features than C or C++, you cannot help but wonder why you need it when you feel it doesn't have any use in the real world. This thought, if put up on websites like hashnode that spark outrage (not joking), could cause you to change that notion.

Well, let me begin to tell you how and why you're wrong. No worries, I'm not going to bash you. And yes, you're welcome.

Before we go into the juicy details, let me preface this with a reply to this question written by Jason Knight about 2 years ago.

What do you think PHP is written in? What do you think blink is written in? What do you think Ruby or Perl or any of these other languages are written in? What do you think mysql, mariadb, postgresql, and most every other SQL is written in? What do you think OS are written in?
But sure, tell me again how you "can't even build anything" with them.

Now that the layers are starting to peel off, let's get into it. C++ is a language that enables students, or in this case programmers, to think. The amount of thought that goes into what you want to code is a lot more than what's required in other languages. I'm not saying that languages such as C# or Java are easy, but in comparison to C++, they are. These languages provide you with features such as automatic memory management, and the ability to use var, which is a variable that you can use to store just about anything. There isn't a need to define a variable using the data types of int, float, char, or double for your pointers. The levels of abstraction allow programmers to solve their problem statements faster, giving them freedom from understanding how these lines of code or commands work.

 

 

Let's take an instance of a woman who works as a lawyer. Her office machine has a dedicated software that allows the lawyer to request for court hearings, look up their schedule, and the list goes on. What the lawyer knows is how to operate the software on the machine, with her knowledge extending to how to install the software and setup the network connection. She is aware of the different operating systems for both desktop and mobile applications, but what she isn't aware of is how they function. What she can't do, is produce her own code; code that can be used for the software's tool on either the desktop or mobile. She may be proficient in solving software related issues that come up during its usage, but if there was an internal error, all she would be able to do is call for support and wait.

If you want to learn to program, or if you're a computer science teacher teaching higher secondary kids C++ and you keep getting asked these questions a lot of times, here're 4 ways that'll help you frame your answer to the question of why students should have C/C++ in their curriculum. More on this topic can be found in the link here.

  • Managing memory. Students learn how to best utilise memory only when languages don't provide that as a feature. C++ helps a student form an optimal solution around the concept of memory management and space complexity. Right logic accompanied by less space can always lead to your student coming up with the best solutions.

  • Distinguishing between compiler, linker and loader. Grinding down to the details, a compiler produces executable files, while the linker links these executable files. A loader performs the loading operation of these files onto main memory for the process of execution. Since C++ involves these 3 steps to process a particular program, the programmer gets to understand how a program compiles and executes thoroughly.

 

 

  • Distinguishing compile-time from run-time. One of the most important notes for beginners to make is to differentiate between compile and run time. As this is an important polymorphism concept, programmers would understand the difference between the two with the help of C++ as it is a language that's very hands on.

  • Understand low-level implementation of polymorphism. C++ helps programmers understand low-level implementation of polymorphism, such as virtual tables and virtual table pointers, or a dynamic type identification.

There is a lot to learn when you first enter the world of code. Topics such as these can only be taught with the help of languages that don't provide you with all of the perks you wish for. To become a good programmer, you must have your base absolutely solid. It's why C++ is still in the game.

Related links: