Swami Vivekananda

References for learning C++

24 May 2020 - fubar - Sreekar Guddeti

c++-Logo C++ references of websites, books, code and APIs for learning C/C++.

Abstract

Programming is a science as well as an art. Developing the required skills takes time and effort and an enthusiasm to learn. The learning draws parallels with that of learning a natural language such as English. Just as the required skills to learn a natural language are reading, listening, writing and speaking, so the skills for learning a programming language are reading code, writing code. Also just as we need to know the proper language constructs like grammar (syntax), contextual use of language (semantics), we need to learn the syntax as well as

Sites

Books

Code

Like learning natural language involves listening as a major component, programming language skills are developed by reading lots of good code. It exposes the learner to good programming practices.

Libraries

Some famous libraries that help in learning how APIs are written. By reading their source code, one can learn how good programmers structure their code and also how to abstract functionality so that code has increased reusability quotient.


Hands on Tutorials

Following are hands on tutorials for various aspects of program development. As a typical cycle of program development involves

Writing C/C++ program (#TODO)

Tutorials explaining good programming practices while writing code are given here. Some esoteric aspects of writing good code, which I cannot at the current moment categorize them due to my own lack of understanding, are

Compiling a C/C++ program

Compiling can be as simple as executing the command

g++ helloWorld.cpp -o helloWorld

or as difficult as compiling various source files, linking various static and dynamic libraries. It is one of the important component of program development. These tutorials provide hands on experience with compiling C++ programs.

Static vs Dynamic Linking

How to use library for Application development

(Advanced)How to create a library?

This is an advanced topic. I have not explored it but can refer to Create Static and Dynamic Link Libraries in C on Linux from CS-fundamentals blog.

Debugging code

Tutorials explaining good programming practices while debugging code are given here.(#TODO)