This blog is a guide to those who want to jump into the coding world. Of course, C and C++ are not necessarily the starting point if you want to understand the world of coding. However, this journey is oriented according to what I wish I knew when I became an Undergrad in India.
This blog will begin with how to understand and efficiently write better code, and has two paths for it. The C Language is more "Variable" Oriented, while C++ is Object Oriented. The Languages are closely linked though, and a newbie will face no problem in transitioning between the two, provided their projects are of a newbie level.
It will then move towards the aspect of Competitive Programming, since it is similar to what a typical Undergrad syllabus holds. Data Structures and Algorithms are really handy to understand the languages, and can lead towards other options. Again, not a necessity but a popular choice.
Books would generally be considered a good source to not only learn but as a documentation of ideas and questions also. I would recommend these books by Deitel Publications, as they are really easy to understand and reader friendly, although a bit long winded at occasions.
- C How To Program has really great back exercises. I would recommend to try to reach the 7th Chapter which is about Pointers, a really important part of C. It also has strings and DSA as further discussions.
- C++ How To Program has a really comprehensive idea about classes and OOPS. Nothing is really skippable in this book to get really good in C++, but Chapter 22 should be the end point for a passionate programmer. The exercises might not be too big of a deal though.
Still other book recommendations can be found here. These are a basis of changing perspective, and have more or less the same knowledge to grant (maybe quicker but not as solid, the tradeoff depends on the reader).
Videos would also be considered a great source of knowledge. Here are some.
- CodeWithHarry would probably be the most recommended YouTube channel ever. It has a bunch of videos, from hour long crash courses to playlists full of deep knowledge. You can choose based on your requirement.
- Neso Academy also comes to mind. They mostly have longer but intuitive playlists.
There might not be such complete tutorials like those mentioned above, but if I feel something could be added, this would contain a reference to them.
Websites for learning the basics may not be really up for the hype, other than those that branch into DSA as mentioned later. Still, RosettaCode is a great website to practice efficient coding, since their problems are more lengthy rather than tricky, ideal for new coders. You can cherry pick anything, from the famous Towers of Hanoi to the basic 100 Doors. I can surely provide places to check references of functions and headers here.
As one learns C/C++, undergrads are usually channeled towards the idea of Data Structures and Algorithms. These can basically be considered efficient and clever ways of handling information, be it just numbers.
The books for this are hence really not a very well versed and established, but there are some like the Guide to Competitive Programming. It can be studied completely.
The video aspect of it is really dependent on a particular concept. Other than the C/C++ videos already linked, you can check here for sure.
However, websites are where the best content is. You can join sites like:
Which leads to the part of Competitive sites. These host regular competitions and are essentially the heart of Competitive Coding. Other than CodeChef, there are sites like:
One can simply register and compete in their bracket with timed and rated contests.
Development could be considered the ultimate goal of learning to code. From OS to Game Engines, they use C/C++ in some way or the other. It might need a whole blog for itself though, branching into other languages as well.
Maybe soon 👀