# Shafin Chowdhury > Blog and portfolio of Shafin Chowdhury — CSE student writing about code, learning, and projects. Shafin Chowdhury is a Software Developer and Computer Science & Engineering student at North South University in Dhaka, Bangladesh. This site publishes technical guides, system architecture deep dives, algorithm explanations, and mathematics references across C++, Python, Java, Object-Oriented Programming, and Data Structures & Algorithms. ## Core Pages - [Home](https://shafinchowdhury.dev/): Overview of topic hubs, featured guides, and recent engineering articles ([Markdown](https://shafinchowdhury.dev/index.md)) - [About Shafin Chowdhury](https://shafinchowdhury.dev/about/): Author background, technical focus, education, and contact links ([Markdown](https://shafinchowdhury.dev/about.md)) - [Topic Hubs & Learning Paths](https://shafinchowdhury.dev/topics/): Curated pillar pages and structured CS learning paths ([Markdown](https://shafinchowdhury.dev/topics.md)) - [All Articles](https://shafinchowdhury.dev/posts/): Chronological archive of all published articles - [Search](https://shafinchowdhury.dev/search/): Full-text article search - [Full LLM Corpus](https://shafinchowdhury.dev/llms-full.txt): Complete Markdown corpus of all hubs and published articles - [RSS Feed](https://shafinchowdhury.dev/rss.xml): XML feed of published articles ## Topic Hubs & Curated Learning Paths - [C++ Programming & Systems Engineering](https://shafinchowdhury.dev/topics/cpp/): A complete curriculum from modern C++ language fundamentals to memory management, pointers, references, STL internals, and high-performance engineering. ([Markdown](https://shafinchowdhury.dev/topics/cpp.md)) - [C++ Object-Oriented Programming](https://shafinchowdhury.dev/topics/cpp-oop/): A complete curriculum on C++ Object-Oriented Programming: classes, constructors, encapsulation, inheritance, polymorphism, abstraction, copy semantics, and the Rule of Three, Five, and Zero. ([Markdown](https://shafinchowdhury.dev/topics/cpp-oop.md)) - [Python Architecture & Core Mechanics](https://shafinchowdhury.dev/topics/python/): Deep dives into CPython execution mechanics, internal memory models, control flow, and core data structures. ([Markdown](https://shafinchowdhury.dev/topics/python.md)) - [Java & Object-Oriented Software Design](https://shafinchowdhury.dev/topics/java/): A complete guide to Object-Oriented Programming (OOP) in Java, from conceptual foundations to robust encapsulation. ([Markdown](https://shafinchowdhury.dev/topics/java.md)) - [Data Structures & Algorithmic Engineering](https://shafinchowdhury.dev/topics/dsa/): Essential data structures, memory layouts, algorithmic problem solving, and computational complexity. ([Markdown](https://shafinchowdhury.dev/topics/dsa.md)) - [Mathematics for Computer Science](https://shafinchowdhury.dev/topics/mathematics/): Comprehensive mathematical formulas, numeral systems, discrete structures, and problem-solving references. ([Markdown](https://shafinchowdhury.dev/topics/mathematics.md)) ## Featured Technical Guides - [Python: Control Flow and Core Data Structures](https://shafinchowdhury.dev/posts//part_02_control_flow_and_core_data_structures/): A comprehensive guide to Python control flow and core data structures covering branching conditionals, loops, lists, tuples, sets, dictionaries, comprehensions, and Big-O performance. ([Markdown](https://shafinchowdhury.dev/posts//part_02_control_flow_and_core_data_structures.md)) - [Mathematics Formula Cheat Sheet](https://shafinchowdhury.dev/posts//mathematics-formula-cheat-sheet/): A compact yet comprehensive mathematical formula cheat sheet covering arithmetic, algebra, calculus, coordinate geometry, trigonometry, matrices, probability, statistics, and discrete mathematics. ([Markdown](https://shafinchowdhury.dev/posts//mathematics-formula-cheat-sheet.md)) - [Python Fundamentals](https://shafinchowdhury.dev/posts//part_01_python_fundamentals/): A comprehensive guide to Python fundamentals covering architecture, CPython execution model, syntax rules, variables, memory mechanics, data types, operators, and error diagnosis. ([Markdown](https://shafinchowdhury.dev/posts//part_01_python_fundamentals.md)) - [const in C++: Constants, const Pointers, References, and constexpr](https://shafinchowdhury.dev/posts//cpp-const/): Master const correctness in modern C++. Understand const variables, const references, pointer constness variations, const member functions, and constexpr. ([Markdown](https://shafinchowdhury.dev/posts//cpp-const.md)) - [Pass by Value vs Pass by Reference in C++: Performance and Mechanics](https://shafinchowdhury.dev/posts//cpp-pass-by-value-vs-pass-by-reference/): A definitive guide to parameter passing in C++. Master pass by value, pass by reference, pass by const reference, CPU register mechanics, and real-world performance trade-offs. ([Markdown](https://shafinchowdhury.dev/posts//cpp-pass-by-value-vs-pass-by-reference.md)) - [Pointers in C++: Memory Addresses, Dereferencing, and Heap Basics](https://shafinchowdhury.dev/posts//cpp-pointers/): A comprehensive guide to pointers in modern C++. Understand memory addresses, dereferencing, nullptr, pointer arithmetic, dynamic heap allocation, and memory safety. ([Markdown](https://shafinchowdhury.dev/posts//cpp-pointers.md)) - [Part 3: Encapsulation — Protecting Your Data](https://shafinchowdhury.dev/posts//elcapsulation/): This blog makes Java encapsulation super easy to understand. You will learn how to wrap your data and code together inside a single unit to keep it safe from outside mistakes. By using simple examples, you will quickly master how to use "getters" and "setters" to build better, cleaner programs. ([Markdown](https://shafinchowdhury.dev/posts//elcapsulation.md)) - [Part 2: Classes and Objects — Building Your First Java Class](https://shafinchowdhury.dev/posts//class-object/): Proper view of Object-Oriented Programming through a series ([Markdown](https://shafinchowdhury.dev/posts//class-object.md)) - [Mastering std::list in Modern C++: From Architecture to Production-Ready Code](https://shafinchowdhury.dev/posts//list-in-cpp/): This guide explains how std::list works like a chain of nodes linked together in memory. It uses simple steps and clear code examples to show how to add, find, update, and delete items using modern C++ features. Lastly, it shares easy tips on when to use this container and how to avoid mistakes that slow down your program. ([Markdown](https://shafinchowdhury.dev/posts//list-in-cpp.md)) - [Part 1: Object-Oriented Programming in Java: A Complete Story for Students](https://shafinchowdhury.dev/posts//oop/): Proper view of Object-Oriented Programming through a series ([Markdown](https://shafinchowdhury.dev/posts//oop.md)) - [Binary number conversions](https://shafinchowdhury.dev/posts//binary-number-conversions/): Master binary number conversions between binary, decimal, octal, and hexadecimal systems with step-by-step methods and solved examples. ([Markdown](https://shafinchowdhury.dev/posts//binary-number-conversions.md)) - [How I Cut My Palindrome Algorithm’s Execution Time in Half](https://shafinchowdhury.dev/posts//efficient-palindrome-code/): A student-friendly guide to writing highly efficient palindrome functions in C++. Move from slow string conversions to a raw arithmetic method that speeds up your code by 200%. ([Markdown](https://shafinchowdhury.dev/posts//efficient-palindrome-code.md)) - [Data-Stracture in C: Queue](https://shafinchowdhury.dev/posts//queue/): This article is a comprehensive, publication-ready educational guide designed to teach developers and computer science students the Queue data structure using the C programming language. It transitions smoothly from foundational conceptual definitions to concrete, production-grade source code. ([Markdown](https://shafinchowdhury.dev/posts//queue.md)) - [Dynamic Memory Allocation](https://shafinchowdhury.dev/posts//dynamic-memory-allocation/): Proper view of memory allocation dynamicly. ([Markdown](https://shafinchowdhury.dev/posts//dynamic-memory-allocation.md)) ## All Technical Articles - [Rule of Three, Five and Zero in C++: Resource Management](https://shafinchowdhury.dev/posts//cpp-rule-of-three-five-zero/): Master modern C++ resource management. Understand the historical evolution from the Rule of Three to move semantics in the Rule of Five, and why the Rule of Zero is the gold standard. ([Markdown](https://shafinchowdhury.dev/posts//cpp-rule-of-three-five-zero.md)) - [C++ Shallow Copy vs Deep Copy Explained](https://shafinchowdhury.dev/posts//cpp-shallow-copy-vs-deep-copy/): Understand the vital difference between shallow copy and deep copy in C++. Learn how pointer copying causes double deletion and how to implement custom deep copying. ([Markdown](https://shafinchowdhury.dev/posts//cpp-shallow-copy-vs-deep-copy.md)) - [C++ Copy Constructor: How Object Copying Works](https://shafinchowdhury.dev/posts//cpp-copy-constructor/): Master the C++ copy constructor. Understand copy initialization, why parameters require const references, the difference from operator=, and resource ownership. ([Markdown](https://shafinchowdhury.dev/posts//cpp-copy-constructor.md)) - [Composition vs Inheritance in C++: Object Design Trade-Offs](https://shafinchowdhury.dev/posts//cpp-composition-vs-inheritance/): Explore the architectural trade-offs between composition and inheritance in C++. Learn when to use 'has-a' vs 'is-a', coupling dynamics, and reusability. ([Markdown](https://shafinchowdhury.dev/posts//cpp-composition-vs-inheritance.md)) - [Function Overloading vs Function Overriding in C++](https://shafinchowdhury.dev/posts//cpp-function-overloading-vs-overriding/): A definitive side-by-side comparison of function overloading and function overriding in C++. Compare signatures, binding time, virtual dispatch, and name hiding. ([Markdown](https://shafinchowdhury.dev/posts//cpp-function-overloading-vs-overriding.md)) - [C++ Abstraction: Abstract Classes and Pure Virtual Functions](https://shafinchowdhury.dev/posts//cpp-abstraction/): Master abstraction in C++. Learn how pure virtual functions and abstract classes decouple interfaces from implementations using a complete payment gateway system. ([Markdown](https://shafinchowdhury.dev/posts//cpp-abstraction.md)) - [C++ Polymorphism: Compile-Time vs Runtime Polymorphism](https://shafinchowdhury.dev/posts//cpp-polymorphism/): Master polymorphism in modern C++. Understand compile-time vs runtime polymorphism, virtual functions, dynamic dispatch, the override specifier, and virtual destructors. ([Markdown](https://shafinchowdhury.dev/posts//cpp-polymorphism.md)) - [C++ Inheritance: Base Classes, Derived Classes and Access](https://shafinchowdhury.dev/posts//cpp-inheritance/): Learn C++ inheritance from the ground up. Understand base and derived classes, access behavior under public inheritance, constructor call order, and the is-a relationship. ([Markdown](https://shafinchowdhury.dev/posts//cpp-inheritance.md)) - [C++ Encapsulation: Data Hiding, Getters and Setters](https://shafinchowdhury.dev/posts//cpp-encapsulation/): Master encapsulation in C++. Understand how bundling state with behaviors, data hiding, and invariant validation protect your software from state corruption. ([Markdown](https://shafinchowdhury.dev/posts//cpp-encapsulation.md)) - [C++ Constructors and Destructors Explained](https://shafinchowdhury.dev/posts//cpp-constructors-and-destructors/): Master object lifecycle in C++. Learn default and parameterized constructors, member initializer lists, destructor execution order, and RAII foundations. ([Markdown](https://shafinchowdhury.dev/posts//cpp-constructors-and-destructors.md)) - [C++ Classes and Objects: A Beginner's Guide](https://shafinchowdhury.dev/posts//cpp-classes-and-objects/): Master the foundations of C++ Object-Oriented Programming. Understand classes as user-defined blueprints, object state and behavior, access specifiers, and the this pointer. ([Markdown](https://shafinchowdhury.dev/posts//cpp-classes-and-objects.md)) - [Python: Control Flow and Core Data Structures](https://shafinchowdhury.dev/posts//part_02_control_flow_and_core_data_structures/): A comprehensive guide to Python control flow and core data structures covering branching conditionals, loops, lists, tuples, sets, dictionaries, comprehensions, and Big-O performance. ([Markdown](https://shafinchowdhury.dev/posts//part_02_control_flow_and_core_data_structures.md)) - [Mathematics Formula Cheat Sheet](https://shafinchowdhury.dev/posts//mathematics-formula-cheat-sheet/): A compact yet comprehensive mathematical formula cheat sheet covering arithmetic, algebra, calculus, coordinate geometry, trigonometry, matrices, probability, statistics, and discrete mathematics. ([Markdown](https://shafinchowdhury.dev/posts//mathematics-formula-cheat-sheet.md)) - [Python Fundamentals](https://shafinchowdhury.dev/posts//part_01_python_fundamentals/): A comprehensive guide to Python fundamentals covering architecture, CPython execution model, syntax rules, variables, memory mechanics, data types, operators, and error diagnosis. ([Markdown](https://shafinchowdhury.dev/posts//part_01_python_fundamentals.md)) - [const in C++: Constants, const Pointers, References, and constexpr](https://shafinchowdhury.dev/posts//cpp-const/): Master const correctness in modern C++. Understand const variables, const references, pointer constness variations, const member functions, and constexpr. ([Markdown](https://shafinchowdhury.dev/posts//cpp-const.md)) - [Pass by Value vs Pass by Reference in C++: Performance and Mechanics](https://shafinchowdhury.dev/posts//cpp-pass-by-value-vs-pass-by-reference/): A definitive guide to parameter passing in C++. Master pass by value, pass by reference, pass by const reference, CPU register mechanics, and real-world performance trade-offs. ([Markdown](https://shafinchowdhury.dev/posts//cpp-pass-by-value-vs-pass-by-reference.md)) - [References in C++: Aliases, Memory Mechanics, and Pointers Compared](https://shafinchowdhury.dev/posts//cpp-references/): Master C++ references. Learn how aliases operate in memory, const reference binding, reference vs pointer trade-offs, and how to avoid dangling references. ([Markdown](https://shafinchowdhury.dev/posts//cpp-references.md)) - [Pointers in C++: Memory Addresses, Dereferencing, and Heap Basics](https://shafinchowdhury.dev/posts//cpp-pointers/): A comprehensive guide to pointers in modern C++. Understand memory addresses, dereferencing, nullptr, pointer arithmetic, dynamic heap allocation, and memory safety. ([Markdown](https://shafinchowdhury.dev/posts//cpp-pointers.md)) - [Strings in C++: std::string vs C-Style Strings and Practical Operations](https://shafinchowdhury.dev/posts//cpp-strings/): Master string manipulation in C++. Compare modern std::string with legacy C-style char arrays, learn concatenation, searching, slicing with substr, and input handling. ([Markdown](https://shafinchowdhury.dev/posts//cpp-strings.md)) - [Arrays in C++: Memory Layout, Indexing, and Modern Alternatives](https://shafinchowdhury.dev/posts//cpp-arrays/): A complete guide to arrays in C++. Understand contiguous memory layouts, zero-based indexing, multidimensional arrays, array decay in functions, and std::array. ([Markdown](https://shafinchowdhury.dev/posts//cpp-arrays.md)) - [Functions in C++: Declaration, Scope, Overloading, and Parameters](https://shafinchowdhury.dev/posts//cpp-functions/): Master modular programming in C++. Learn function prototypes, definitions, return types, default arguments, function overloading, pass-by-value, and recursion. ([Markdown](https://shafinchowdhury.dev/posts//cpp-functions.md)) - [Loops in C++: for, while, do-while, and Range-Based Iteration](https://shafinchowdhury.dev/posts//cpp-loops/): Master iteration in C++. Learn for loops, while loops, do-while loops, range-based for loops, loop control with break and continue, and how to avoid infinite loops. ([Markdown](https://shafinchowdhury.dev/posts//cpp-loops.md)) - [Conditional Statements in C++: if, else if, else, and switch](https://shafinchowdhury.dev/posts//cpp-conditional-statements/): Master decision-making in C++. Learn if, else if, else, switch-case, modern C++17 init-statements, fallthrough rules, and how to write clean branching logic. ([Markdown](https://shafinchowdhury.dev/posts//cpp-conditional-statements.md)) - [C++ Operators: Arithmetic, Logical, Bitwise, and Precedence Explained](https://shafinchowdhury.dev/posts//cpp-operators/): A comprehensive guide to C++ operators. Understand arithmetic, assignment, relational, logical, bitwise, and ternary operators, along with precedence and short-circuit evaluation. ([Markdown](https://shafinchowdhury.dev/posts//cpp-operators.md)) - [C++ Input and Output: cin, cout, getline, and Stream Formatting](https://shafinchowdhury.dev/posts//cpp-input-and-output/): A complete guide to standard I/O streams in modern C++. Master cin, cout, cerr, endl vs newline, reading multi-word strings with getline, and formatting with iomanip. ([Markdown](https://shafinchowdhury.dev/posts//cpp-input-and-output.md)) - [C++ Variables and Data Types: A Complete Beginner's Guide](https://shafinchowdhury.dev/posts//cpp-variables-and-data-types/): Master variables and fundamental data types in modern C++. Understand memory representation, primitive types, modifiers, type casting with static_cast, and scope rules. ([Markdown](https://shafinchowdhury.dev/posts//cpp-variables-and-data-types.md)) - [Part 3: Encapsulation — Protecting Your Data](https://shafinchowdhury.dev/posts//elcapsulation/): This blog makes Java encapsulation super easy to understand. You will learn how to wrap your data and code together inside a single unit to keep it safe from outside mistakes. By using simple examples, you will quickly master how to use "getters" and "setters" to build better, cleaner programs. ([Markdown](https://shafinchowdhury.dev/posts//elcapsulation.md)) - [Part 2: Classes and Objects — Building Your First Java Class](https://shafinchowdhury.dev/posts//class-object/): Proper view of Object-Oriented Programming through a series ([Markdown](https://shafinchowdhury.dev/posts//class-object.md)) - [Mastering std::list in Modern C++: From Architecture to Production-Ready Code](https://shafinchowdhury.dev/posts//list-in-cpp/): This guide explains how std::list works like a chain of nodes linked together in memory. It uses simple steps and clear code examples to show how to add, find, update, and delete items using modern C++ features. Lastly, it shares easy tips on when to use this container and how to avoid mistakes that slow down your program. ([Markdown](https://shafinchowdhury.dev/posts//list-in-cpp.md)) - [Part 1: Object-Oriented Programming in Java: A Complete Story for Students](https://shafinchowdhury.dev/posts//oop/): Proper view of Object-Oriented Programming through a series ([Markdown](https://shafinchowdhury.dev/posts//oop.md)) - [Binary number conversions](https://shafinchowdhury.dev/posts//binary-number-conversions/): Master binary number conversions between binary, decimal, octal, and hexadecimal systems with step-by-step methods and solved examples. ([Markdown](https://shafinchowdhury.dev/posts//binary-number-conversions.md)) - [How I Cut My Palindrome Algorithm’s Execution Time in Half](https://shafinchowdhury.dev/posts//efficient-palindrome-code/): A student-friendly guide to writing highly efficient palindrome functions in C++. Move from slow string conversions to a raw arithmetic method that speeds up your code by 200%. ([Markdown](https://shafinchowdhury.dev/posts//efficient-palindrome-code.md)) - [Data-Stracture in C: Queue](https://shafinchowdhury.dev/posts//queue/): This article is a comprehensive, publication-ready educational guide designed to teach developers and computer science students the Queue data structure using the C programming language. It transitions smoothly from foundational conceptual definitions to concrete, production-grade source code. ([Markdown](https://shafinchowdhury.dev/posts//queue.md)) - [Dynamic Memory Allocation](https://shafinchowdhury.dev/posts//dynamic-memory-allocation/): Proper view of memory allocation dynamicly. ([Markdown](https://shafinchowdhury.dev/posts//dynamic-memory-allocation.md)) ## Optional - [Tags Index](https://shafinchowdhury.dev/tags/): Browse articles by topic tag - [Archives](https://shafinchowdhury.dev/archives/): Chronological post archive by year and month - [JSON Search Index](https://shafinchowdhury.dev/search-index.json): Machine-readable metadata index of all articles and topic hubs