Skip to content

About

A documented journey of learning C++, my very first programming language, and Data Structures and Algorithms (DSA).

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

276 Commits

Folders and files

Repository files navigation

🚀 C++/Data Structures & Algorithms Fundamentals

💡 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.


📂 Repository Structure

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.


🛠️ Environment Setup

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:

1. Linux

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

2. Windows

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.

3. macOS

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 --install

💻️ Running Code Locally

1. Clone the repository:

Open 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.git is command which you use when you want to clone any public repository from github to your local system.

2. Navigate into the directory:

Run the following command to navigate to following files of repo:

cd cpp-dsa-fundamentals/01_cpp_fundamentals/basic_syntax

cd example_folder is the command you run when you want to navigate between folders in terminal, using cd .. you can return back to location before the example_folder or any folder for that matter.

Note

Replace 01_cpp_fundamentals/basic_syntax to whatever location you want to navigate.

3. Compile the file:

Run the following command in your respective terminal:

  g++ main.cpp -o main

g++ main.cpp tells compiler to compile file named main.cpp. -o main tells the compiler to name the binary output file main, If you just run g++ main.cpp compiler will compile the file and give default name a.out to 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.


📄 License

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

About

A documented journey of learning C++, my very first programming language, and Data Structures and Algorithms (DSA).

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages