Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 68 additions & 0 deletions Backend Engineer/Learning Materials/01 Web Basics.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# General Basics (Internet and Web Foundation)

## Overview

This section covers foundational knowledge about how the internet works, including HTTP/HTTPS protocols, domain
names, hosting, DNS, web browsers, and internet security. Mastering these topics will provide a strong base for
backend development.

## Topics Covered

### 1. How the Internet Works

- Packets and protocols (TCP/IP).
- IP addressing and routing.
- Networking layers (OSI model).

### 2. HTTP/HTTPS

- HTTP methods: GET, POST, PUT, DELETE.
- Status codes: 200, 404, 500, etc.
- Headers and cookies.
- SSL/TLS basics for HTTPS.

### 3. Domain Names and Hosting

- How domain names are resolved.
- Types of hosting: Shared, VPS, Dedicated, Cloud.
- Domain registration process.

### 4. DNS Basics

- What is DNS and how it works.
- Common DNS records: A, CNAME, MX, TXT.

### 5. OWASP

- What is the Open Worldwide Application Security Project (OWASP), and why is it important.
- Common security issues (OWASP TOP 10) and how to prevent them.

## Suggested Learning Resources

### Articles and Tutorials

- [`How the Internet Works - Mozilla`](https://developer.mozilla.org/en-US/docs/Learn/Common_questions/How_does_the_Internet_work)
- [`HTTP Made Really Easy`](http://www.jmarshall.com/easy/http/)
- [`What is DNS? Basics for Beginners`](https://www.freecodecamp.org/news/what-is-dns-for-beginners/)
- [`Understanding DNS`](https://www.cloudflare.com/en-gb/learning/dns/what-is-dns/)
- [`OWASP`](https://en.wikipedia.org/wiki/OWASP)

### Videos

- [`How the Internet Works in 5 Minutes`](https://www.youtube.com/watch?v=7_LPdttKXPc)
- [`HTTP 1 Vs HTTP 2 Vs HTTP 3! by ByteByteGo`](https://www.youtube.com/watch?v=ai8cf0hZ9cQ)
- [`SSL, TLS, HTTPS Explained`](https://www.youtube.com/watch?v=j9QmMEWmcfo)
- [`Domain Name System (DNS) 101 Miniseries`](https://www.youtube.com/playlist?list=PLTk5ZYSbd9MhMmOiPhfRJNW7bhxHo4q-K)
- [`OWASP TOP 10 - EXPLAINED WITH EXAMPLES - 2024`](https://www.youtube.com/watch?v=Gb7RDognNcc)

## Hands-On Practice

- Use [`nslookup`](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/nslookup) or
[`dig`](https://linux.die.net/man/1/dig) to query DNS records.
- Explore your browser's developer tools (network tab).
- Practice sending HTTP requests with tools like [`Postman`](https://www.youtube.com/watch?v=LdmzhlGfgN4) or curl.

## Next Steps

Once you’ve mastered these basics, move on
to [General Software Engineering Skills](General%20Software%20Engineering%20Skills.md).
135 changes: 22 additions & 113 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,124 +1,33 @@
# .NET & Basic Algorithms Roadmap 🚀
# .NET Backend Engineer Roadmap

## Introduction

Welcome to the Learning Roadmap for .NET and Basic Algorithms! 🌟 This roadmap is designed for individuals who are
beginning their journey in software development and are keen to gain a solid foundation in both .NET, a widely used
framework for building a variety of applications and basic algorithms, which are fundamental to effective
problem-solving in programming.

This roadmap will guide you through a structured path 🛣️, starting from the basics of .NET, covering essential
programming concepts, and then progressing to fundamental algorithms. Each stage will be equipped with resources 📚,
practical exercises, and projects to reinforce your learning and help you apply theoretical knowledge in real-world
scenarios.

Whether you're a student 👩‍🎓👨‍🎓, a budding software developer, or even an experienced programmer looking to refresh your
skills in .NET and algorithms, this roadmap aims to provide a comprehensive learning experience to boost your software
engineering prowess 💪.
Welcome to the **.NET Backend Engineer Roadmap**, a structured guide for aspiring and current backend developers to
master essential skills in .NET development. This roadmap is designed to help you progress from foundational concepts to
advanced topics, ensuring a solid understanding of backend development with a focus on the .NET ecosystem.

## Overview

This roadmap is structured to take you through a comprehensive learning journey in .NET and basic algorithms. It is
divided into several stages, each focusing on different aspects of .NET and foundational algorithmic concepts. The goal
is to build a strong foundation in both areas, enabling you to develop efficient and effective software solutions.

### Stage 1: Introduction to .NET

🌱 We start with the basics of .NET, understanding the framework, its components, and how it fits in the software
development ecosystem. You'll get familiar with the .NET runtime, libraries, and the C# programming language. Exploring
advanced topics like object-oriented programming, LINQ, and asynchronous programming. Parallelly, you'll learn about
.NET Core, the cross-platform, open-source version of .NET.

### Stage 2: Basic Algorithms and Data Structures

📊 This stage introduces you to the world of algorithms. Starting with basic data structures like arrays, lists, and
trees, you'll learn how to implement and apply fundamental algorithms, including sorting, searching, and basic graph
algorithms.

### Stage 3: Applying Algorithms in .NET

🛠 In this practical stage, you'll apply your algorithmic knowledge using C# and .NET. This will include building small
projects and solving problems that require algorithmic thinking, reinforcing your understanding of both .NET and
algorithms.

## Stage 0: Tools & IDEs

- **IDE:** [Rider](https://www.jetbrains.com/help/rider/First_Steps.html) fast & powerful cross-platform .NET IDE

## Stage 1: Introduction to .NET 🌱

- **Objective:** The goal of this stage is to introduce learners to the .NET and the C# programming language. It focuses
on building a strong foundation in the basics of .NET, understanding its architecture, and getting comfortable with C#
syntax and basic programming concepts.

- **Topics:**
- Introduction to .NET: Understand the architecture, components, and the ecosystem of the .NET.
- Getting Started with C#: Learn the basic syntax of C#, including variables, types, control structures, and basic
I/O operations.
- Introduction to Object-Oriented Programming: Get a brief introduction to object-oriented programming (OOP)
principles in the context of C#.
- .NET CLI and Project Structure: Familiarize yourself with the .NET Command Line Interface (CLI) and understand the
standard project structure in a .NET application.
- **Resources:**
- [CodeAcademy (FREE | ~20hrs)](https://www.codecademy.com/learn/learn-c-sharp): beginner-friendly course
focusing on basic programming concepts in C#.
- [Introduction to C# (Alternative to CodeAcademy)](https://learn.microsoft.com/en-us/dotnet/csharp/tour-of-csharp/tutorials/):
interactive tutorials for beginners to learn C# basics directly in their browser. It covers fundamental concepts
like data types, control flow, and the List collection type, with practical, hands-on coding examples.
- [C# Tutorial](https://www.w3schools.com/CS/index.php): W3Schools offers a comprehensive C# tutorial that covers
the language's basics to advanced concepts.
- [What is .NET](https://dotnet.microsoft.com/en-us/learn/dotnet/what-is-dotnet)
- [.NET CLI (video)](https://www.youtube.com/watch?v=RQLzp2Z8-BE)
- [.NET CLI Documentation](https://learn.microsoft.com/en-us/dotnet/core/tools/)
- [Refactoring](https://refactoring.guru/refactoring)
- [GoF patterns](https://refactoring.guru/design-patterns/csharp). DO NOT TRY TO REMEMBER ALL OF THEM. JUST READ
ACROSS TO KNOW WHERE TO SEARCH IN CASE OF NEED.
- [Scaler Blogs](https://www.scaler.com/blog/dot-net-developer-skills/). Navigate your tech career with expert-crafted roadmaps and insights.

## Practice and Projects

### Assignment 1: Tic-Tac-Toe with Leaderboard

- Objective: Develop a Tic-Tac-Toe. The game should feature a leaderboard to track wins, losses, and draws.

- Requirements:
- Gameplay: Implement the classic 3x3 grid gameplay.
- Player Input: Allow two players to input their moves.
- Win Logic: Include logic to determine the winner or a draw.
- Leaderboard:
- Store the results of each game (win/loss/draw) for each player in a file.
- Display the leaderboard at the beginning or end of each game session.
- File Operations:
- Use file handling to read and write leaderboard data.
- Ensure data persistence across game sessions.
- Additional Challenges:
- Implement an AI opponent.
- Add an option to reset the leaderboard.

### LINQ Practice

For a comprehensive list of [LINQ](./Practice/LINQ.md) practice tasks, refer to the LINQ Tasks File. This resource provides a variety of
scenarios to apply LINQ in practical, real-world examples.

## Assessment

TBA

## Additional Resources
This roadmap is organized into progressive stages, starting with the basics and building up to complex, real-world
scenarios. By following this roadmap, you will gain:

### Algorithms
- [Grokking Algorithms An Illustrated Guide For Programmers and Other Curious People](https://www.amazon.com/Grokking-Algorithms-illustrated-programmers-curious/dp/1617292230)
- A strong foundation in internet and software engineering fundamentals.
- Expertise in ASP.NET Core and its ecosystem.
- Proficiency in databases, logging, testing, and real-time communication.
- Hands-on experience with modern practices like CI/CD, microservices, and cloud computing.

## Community and Support 🌐
## Prerequisites

Join our vibrant and supportive .NET community! Whether you're a newbie or a seasoned developer, find camaraderie, insights, and help in our group. 🤝
### **C# Knowledge**

Telegram Group: Connect in real-time, share your .NET experiences, and get support. Everyone's welcome! Join us on Telegram 💬👥
Let's grow together in the world of .NET! Your questions, contributions, and enthusiasm drive our community forward. 🚀🌟
- Understand C# syntax, data types, and control structures.
- Object-oriented programming concepts: classes, inheritance, polymorphism, and interfaces.
- LINQ for querying collections.
- Exception handling and debugging in C#.
- TPL (Task, Thread, lock) in C#.

## Feedback 📝
## Roadmap Structure

Your thoughts and suggestions are invaluable to us! 🌟 If you have any feedback, ideas, or experiences you'd like to share about the .NET Roadmap, please let us know.
### [`01 Web Basics (Internet and Web Foundation)`](Backend%20Engineer/Learning%20Materials/General%20Basics.md)

Share Your Thoughts: Whether it's a suggestion for improvement, a success story, or a challenge you faced, your input helps us grow and improve. 🚀
We're committed to making this roadmap as effective and user-friendly as possible. Your feedback is a crucial part of this journey! 💬👍
- Understanding how the internet works.
- HTTP/HTTPS methods, headers, and status codes.
- Domain names, hosting, DNS, and web browsers.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Empty file added archived/README.md
Empty file.