💡 Note: This repository is a live, ongoing learning journey and is currently in progress. Some directories or files may be empty or under work as I take the time to learn and implement each concept.
Welcome to the cpp-dsa-fundamentals repository dedicated to learning C++ and Data Structures & Algorithms (DSA). This repository serves as a structured timeline of my learning journey, moving from basic syntax to complex data structures and algorithms.
The project right now is organized logically into three major phases:
-
01_cpp_fundamentals/- Core language concepts including basic syntax, pointers, references and more. -
02_data_structures/- Implementations of standard data structures like Linked Lists, Array, String and more. -
03_algorithms/- Standard problem-solving including Searching/Sorting, Recursion and more.
Before running the code, you need to ensure you have Git and a C++ compiler installed on your machine. Follow the guide below for your operating system:
Warning
The command below is specifically for Debian/Ubuntu-based distributions (like Linux Mint or Pop!_OS). If you are using a different distribution (like Arch, Fedora, or openSUSE), packages and commands will vary. Please check your specific distribution's documentation online to install Git and the base development tools.
Run the following command for Debian/Ubuntu-based distributions
sudo apt update && sudo apt install build-essential git -y-
For Git: Download and install Git for Windows.
-
For C++ Compiler: The easiest way to get g++ on Windows is by downloading MinGW-w64 via MSYS2 or installing the "Desktop development with C++" workload via Visual Studio Community.
Warning
Make sure both Git and MinGW are added to your system's environment PATH variables.
Tip
For Windows, It's always much better to install Linux using WSL 2. You get much faster compilation speed and no headache of setting up PATH variables etc. It also keeps your whole dev toolchain in one place, which is much easier to manage using terminal.
macOS makes this incredibly simple via the Terminal. Running this command will prompt you to install Apple's Command Line Tools, which includes both Git and the Clang C++ compiler (g++ alias):
xcode-select --installOpen terminal in a folder (the one you would like to clone the repo in) and run the following command in your respective terminal/konsole:
git clone https://github.com/rensyntax/cpp-dsa-fundamentals.git
git clone example.gitis command which you use when you want to clone any public repository from github to your local system.
Run the following command to navigate to following files of repo:
cd cpp-dsa-fundamentals/01_cpp_fundamentals/basic_syntax
cd example_folderis the command you run when you want to navigate between folders in terminal, usingcd ..you can return back to location before theexample_folderor any folder for that matter.
Note
Replace 01_cpp_fundamentals/basic_syntax to whatever location you want to navigate.
Run the following command in your respective terminal:
g++ main.cpp -o main
g++ main.cpptells compiler to compile file namedmain.cpp.-o maintells the compiler to name the binary output filemain, If you just rung++ main.cppcompiler will compile the file and give default namea.outto binary output file.
Note
replace main.cpp with the name of the file you would like to run.
📝 Reflective Note: You might notice that some of the code inside the
01_cpp_fundamentals/directory looks a bit messy, slightly incorrect, or even cringe. This is entirely intentional! That code represents the absolute beginning of my C++ journey. Instead of rewriting or deleting it to look perfect, I have chosen to leave it exactly as it was written. This serves as a permanent, documented benchmark so I can look back one day to see where all this started and how much i have improved.
This Repository is open-source and licensed under the MIT License - see the LICENSE file for details.
Thank you for reading, have a nice day ahead. 👋
-- RenSyntax