Programming and DSA Roadmap

From Zero to Hero

We’ll start the whole journey of mastering programming and data structures and algorithms by learning a few fun topics.

Just to spark your interest on computers, learn the following topics:

  1. GUI vs CLI
  2. RAM vs ROM
  3. Everything is 0’s and 1’s. But how?
  4. Compression (Zipping and Unzipping files/folders)
  5. Understanding File Extensions
  6. Pixels?? How is a image created? & how about videos?
  7. How does internet work? What is a server?

What is Programming? Why you should learn programming?

Possibilities of Programming?

Understanding science behind computers. (transistors, gates, hdl, flipflops, alu, cpu, os, compiler, vm translator, programming language etc. )

Command Prompt(Mandatory for everyone):

  1. History of CLI
  2. Why learn command line in 2024?
  3. How CMD is same as using a full OS?
  4. A Command: Command + arguments
  5. Absolute/relative paths
  6. Folder management
  7. Files management

Code Editors & how to use them?

Programming basics:

  1. Program Flow
  2. Algorithm?
  3. Basic syntax for any program
  4. Input and output
  5. Keywords
  6. Data Types
  7. Range and Size
  8. Variables
  9. Operators
  10. If else conditions
  11. Switch-case
  12. Loops: For, while, do-while
  13. To be continued…

Create a Command line Calculator application

Data Structures and Algorithms

  1. Why DSA?
  2. What is an algorithm?
  3. What are Data structures?
  4. Understand how its helpful for placements.
  5. Space complexity?
  6. Time complexity?
  7. Big O Notation
  8. Examples of Time Complexities
  9. Euclidian Algorithm
  10. Primality Test
  11. Sorting Algorithms
  12. Bubble Sort
  13. Selection Sort
  14. Insertion Sort
  15. Heap Sort
  16. Merge Sort
  17. Quick Sort
  18. Linear Search
  19. Binary Search
  20. Recursion
  21. Backtracking
  22. Arrays
  23. Sliding Window
  24. Two Pointer
  25. Linked lists
  26. Stacks
  27. Queues
  28. Set
  29. Map
  30. Trees
  31. Binary Search Trees
  32. Heaps
  33. Graphs
  34. Dynamic Programming
  35. Memoisation
  36. Tabulation
  37. Bellman Ford
  38. Dijkstra’s
  39. Run-Length Encoding
  40. Huffman Coding
  41. Tower of Hanoi
  42. To be continued…