8000 GitHub - ramadan-x/roadmap: Roadmap for Software Engineering
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

ramadan-x/roadmap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 

Repository files navigation

Roadmap

Foundational Level 1: Programming, OOP, & DSA (6–12 Months)

This initial phase is crucial. It's like building the foundation of a house; skipping it will lead to instability later on.

Programming Languages (e.g., Rust, C++, C#, Java, Python)

  • Structured Programming

    • Data Types
    • Variables
    • Operators
    • Conditional Statements (if, switch)
    • Looping Constructs (for, while)
    • Functions
    • Structs
  • Object-Oriented Programming (OOP) Paradigm

    • Inheritance
    • Encapsulation
    • Abstraction
    • Polymorphism

Data Structures

  • Linear

    • Array, Dynamic Array
    • Linked List
    • Stack
    • Queue
  • Non-Linear

    • Tree (specifically Binary Search Tree)
    • Dictionary (Set, Hash Table)
    • Graph

Algorithms

  • Searching

    • Binary Search
    • Linear Search
  • Sorting

    • Bubble Sort
    • Quick Sort
    • Merge Sort
  • Graph Traversal

    • BFS (Breadth-First Search)
    • DFS (Depth-First Search)
  • Other Techniques

    • Backtracking and Recursion
    • Greedy Algorithms
    • Dynamic Programming

Problem Solving (on platforms like LeetCode/HackerRank)

  • Easy: 50–100 problems
  • Medium: 15–40 problems

Projects

  • Build a small project to apply what you've learned (e.g., a management system for a pharmacy, HR, or school, or games like Snake and Pong).

This entire phase should take approximately 6–12 months to complete thoroughly.


Foundational Level 2 (Ideal Path): Core CS Principles

These subjects can be studied in parallel and don't always require immediate practical application. For guidance, check university course maps, such as the CS Course Map Guides from UC Berkeley.

  • Operating Systems
  • Databases
  • Networking
  • Software Engineering (e.g., Agile methodologies)

Foundational Level 3: Track/Domain Fundamentals

Focus on understanding the core principles of your chosen specialization (e.g., web, mobile, game development). Crash courses are a great way to get an introduction to a domain.


Foundational Level 4: Track/Technology

Choose specific technologies within your domain (e.g., .NET, Flutter, Node.js). This choice should be based on your domain's fundamentals and personal interest, not just on current popularity.


Entering the Job Market

  • Build a strong portfolio to showcase your work.
  • Focus on gaining practical experience through internships and personal projects.
  • Prepare for interviews by practicing and demonstrating your practical understanding.
  • Remember that continuous learning is essential in the tech field.
  • Your passion and a strong foundation are more critical than chasing trends.
  • Refer to this video for more guidance: Career Options

Different Learning Paths

  • Perfect Path: Study all four foundational levels for a robust and adaptable career. This is the ideal approach for long-term success.
  • Quick Path: Focus on the first foundational level and then jump to a specific technology/domain. It is crucial to return to the second and third levels after securing a job to build a stronger career foundation.

Sources

  • How to Start Programming in the Age of AI by Mohamed Moshrif: Part 2

Credit

About

Roadmap for Software Engineering

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0