24 May 2020 - fubar - Sreekar Guddeti
C++ references of websites, books, code and APIs for learning C/C++.
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
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.
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.
Following are hands on tutorials for various aspects of program development. As a typical cycle of program development involves
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 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.
A simple explanation of static and dynamic libraries in a Learncpp tutorial
A further discussion is done in a CS fundamentals post
(Optional) A nuanced comparison of performance issues with static and dynamic linking in a SO post
We need to configure the compiler of our IDE and a [LearnCPP post] explains it using the case of VisualStudio and Codeblocks
As a simple concrete example a Medium post titled Navigating the world of distributed code explains how to work with uncompiled library/ header only libary and use make
tool to configure the compiler
As a concrete example, I was successful in configuring the MingW compiler of Codeblocks IDE to use SDL2 library by following the [GRHMedia blog post] listed in the SDL’s Tutorial Wiki as a video tutorial.
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.
Tutorials explaining good programming practices while debugging code are given here.(#TODO)