Skip to content
Merged
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
8 changes: 8 additions & 0 deletions absolute-beginners/backend-beginner/_category_.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"label": "Backend Beginner",
"position": 3,
"link": {
"type": "generated-index",
"description": "Step behind the curtain of the web. Learn how to build servers, manage databases, and create the 'brains' that power modern applications using Node.js and Express."
}
}
5 changes: 0 additions & 5 deletions absolute-beginners/backend-beginner/index.mdx

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"label": "Choosing Your Language",
"position": 2,
"link": {
"type": "generated-index",
"description": "Every backend is built on a language. Compare the most popular options from JavaScript to Rust and find the right tool for your project."
}
}
87 changes: 87 additions & 0 deletions absolute-beginners/backend-beginner/languages/c-sharp.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
---
sidebar_position: 5
title: "C# - The Microsoft Powerhouse"
sidebar_label: "5. C#"
description: "Explore C#, the versatile language powering Windows apps, Enterprise web servers, and Game Development."
---

C# (pronounced "C-Sharp") was created by Microsoft as a modern, object-oriented alternative to C++ and Java. Today, it is part of the **.NET (dot-net)** ecosystem, a massive collection of tools that allows you to build for the Web, Mobile, Desktop, and even the Cloud.

While it started as a Windows-only language, modern C# is **Open Source** and runs perfectly on Mac and Linux.

## 🧐 What is C#?

C# is a **Compiled, Strongly-Typed** language. Like Java, it uses a virtual execution engine called the **Common Language Runtime (CLR)**.

## Why Choose C#?

1. **The Best Tooling:** C# developers use **Visual Studio**, which is widely considered the most powerful "Integrated Development Environment" (IDE) in the world.
2. **Unity Game Engine:** If you want to build games (like *Among Us* or *Hollow Knight*), C# is the language used by the **Unity** engine.
3. **ASP.NET Core:** This is the backend framework for C#. It is consistently ranked as one of the **fastest** web frameworks in existence.
4. **Modern Syntax:** C# takes the best ideas from Java and JavaScript and combines them. It feels very clean and "smart" to write.

## How it Looks: Familiar yet Powerful

If you have seen Java, C# will look very familiar. However, it has some "shorthand" tricks that make it faster to write.

```csharp title="Program.cs"
using System;

namespace CodeHarborHub {
class Program {
static void Main(string[] args) {

// Defining variables with strict types
string greeting = "Welcome to C# Backend!";
int studentCount = 1500;

Console.WriteLine(greeting);

// "Interpolated Strings" (Like backticks in JavaScript!)
Console.WriteLine($"We have {studentCount} students learning today.");
}
}
}

```

### Key Features:

* **`using System`**: This imports the basic tools needed to talk to the computer.
* **Namespaces**: These help organize your code so that a "User" class in one file doesn't crash with a "User" class in another.
* **PascalCase**: In C#, we usually capitalize method names (like `Main` and `WriteLine`), whereas in JS we use `main` and `writeLine`.

## The Ecosystem: .NET

When you learn C#, you aren't just learning a language; you are learning the **.NET Ecosystem**.

* **Entity Framework (EF Core):** The easiest way to connect your code to a Database.
* **MAUI:** A way to write one piece of C# code and turn it into an Android, iOS, and Windows app all at once.
* **Blazor:** A revolutionary way to write **Frontend** code using C# instead of JavaScript!

## Recommended Learning Resources

### Official & Documentation

* **[Microsoft Learn for C#](https://learn.microsoft.com/en-us/dotnet/csharp/)**: One of the best official learning paths provided by any tech company.
* **[.NET YouTube Channel](https://www.youtube.com/watch?v=O_huuhKWqVA)**: Weekly shows explaining new features and best practices.

### Free Courses

* **[C# Full Course by FreeCodeCamp](https://www.youtube.com/watch?v=GhQdlIFylQ8)**: A massive, all-in-one guide to becoming a C# developer.
* **[C# for Absolute Beginners (Bob Tabor)](https://channel9.msdn.com/)**: A legendary course designed specifically for people who have never coded before.

### Community

* **[Stack Overflow](https://stackoverflow.com/questions/tagged/c%23)**: C# has one of the most active and helpful communities for solving bugs.

## Summary Checklist

* [x] I know that C# belongs to the .NET family.
* [x] I understand that C# is excellent for both Web APIs and Game Development.
* [x] I recognize that C# is strongly typed and very fast.
* [x] I have seen the structure of a C# `Main` method.

:::info Pro-Tip
If you enjoy the structure of **TypeScript** in the frontend, you will love C#. The creator of C# (Anders Hejlsberg) is the same person who created TypeScript!
:::
87 changes: 87 additions & 0 deletions absolute-beginners/backend-beginner/languages/go.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
---
sidebar_position: 6
title: "Go (Golang) - The Cloud Specialist"
sidebar_label: "6. Go (Golang)"
description: "Learn why Google created Go to solve the problems of the modern, high-speed cloud."
---

In 2007, engineers at **Google** were frustrated. They had to choose between languages that were "Fast but Complex" (like C++) or "Easy but Slow" (like Python). So, they created **Go**.

Go is a **Compiled** language that feels as simple as a scripting language. It is the secret engine behind almost every "Cloud" tool you use today, including **Docker**, **Kubernetes**, and **Terraform**.

## 🧐 What is Go?

Go is a **Statically Typed** and **Compiled** language. This means the computer turns your code into a single "Binary" file (an `.exe` or Mac app) that can run on any computer without needing to install a runtime like Node.js or Java.

## Why Choose Go?

1. **Concurrency (Goroutines):** Go is the king of doing many things at once. It uses "Goroutines," which are like lightweight threads. You can run millions of them at the same time without crashing your computer.
2. **Blazing Speed:** Because it compiles directly to machine code, it is significantly faster than Python, Ruby, or even Node.js for heavy math and data tasks.
3. **Strict Simplicity:** Go purposefully leaves out "complex" features found in other languages. There is usually only **one way** to solve a problem, which makes reading other people's code very easy.
4. **Modern Standard:** If you want to work on "Infrastructure," "DevOps," or "Microservices," Go is the #1 language to know.

## How it Looks: Clean and Minimal

Go looks like a mix of C and Python. It uses curly braces `{}` but doesn't require semicolons `;`.

```go title="main.go"
package main

import "fmt"

func main() {
// Variable declaration (Simple and clean)
message := "Hello from Go Backend!"
count := 100

fmt.Println(message)

// A simple loop
for i := 0; i < 3; i++ {
fmt.Printf("Processing request %d...\n", i)
}

fmt.Printf("Handled %d total requests.", count)
}

```

### Key Features:

* **`package main`**: Tells Go that this file should result in a runnable program.
* **`import "fmt"`**: Imports the "Format" package used for printing text.
* **`:=`**: This is the "Short Variable Declaration." Go figures out the type (String or Int) automatically for you!

## Technical Concept: Concurrency vs Parallelism

Most languages struggle to handle thousands of users at the same time. Go was built for this.

* **Standard Language:** Like a single chef cooking one meal at a time.
* **Go:** Like a kitchen with 100 mini-chefs (Goroutines) all working on different parts of the meal simultaneously, managed by one master head-chef (The Go Scheduler).

## Recommended Learning Resources

### Official & Documentation

* **[A Tour of Go](https://go.dev/tour/)**: The absolute best way to start. It’s an interactive tutorial that runs in your browser.
* **[Go.dev](https://go.dev/learn/)**: The central hub for all official Go learning paths.

### Free Courses

* **[Go Programming - Golang Course with Bonus Projects](https://www.youtube.com/watch?Fv=un6ZyFkqFKo)**: An 8-hour masterclass by FreeCodeCamp.
* **[Learn Go in 12 Minutes](https://www.youtube.com/watch?v=C8LgvuEBraI)**: A high-speed overview for developers who already know another language.

### Books

* *"The Go Programming Language"* by Alan Donovan: The "Bible" of Go development.

## Summary Checklist

* [x] I understand that Go was built by Google for the Cloud.
* [x] I know that Go compiles into a single, fast "Binary" file.
* [x] I understand that **Goroutines** allow Go to handle thousands of tasks at once.
* [x] I have seen the `func main()` structure.

:::success The Cloud Choice
If you are interested in how the "Internet Infrastructure" works—how Netflix streams video or how Spotify handles millions of listeners—Go is the language you should learn.
:::
73 changes: 73 additions & 0 deletions absolute-beginners/backend-beginner/languages/how-to-choose.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
---
sidebar_position: 8
title: "🤔 Which Language Should You Pick?"
sidebar_label: "8. How to Choose"
description: "A guided comparison to help you choose the right backend language for your career path."
---

You’ve just taken a tour of the world’s most powerful backend languages. But now comes the hard part: **Choosing one.** Remember, there is no "best" language. Every language is a tool designed for a specific job. To help you decide, we have broken down the choice into three different perspectives.

## 1. Choose by Career Goal

Where do you want to work? Different industries have different "favorites."

| If you want to work at... | Choose... | Why? |
| :--- | :--- | :--- |
| **Startups & Web Apps** | **Node.js** | Speed of development and shared code with Frontend. |
| **Banks & Big Corporations** | **Java** or **C#** | Security, stability, and decades of existing code. |
| **AI, Data, & Research** | **Python** | The world's largest libraries for math and machine learning. |
| **Cloud Infrastructure** | **Go** | Specifically designed for servers and high-traffic tools. |
| **High-End Systems** | **Rust** | Used for game engines, browsers, and performance-critical apps. |

## 2. Choose by "Difficulty vs. Speed"

Some languages are easy to learn but slower to run. Others are incredibly fast but take months to master.

* **The Easy Path (Python / PHP / JS):** Great if you want to build a project **this weekend**. You spend less time fighting the language and more time building features.
* **The Power Path (Java / C#):** Great for learning **Software Engineering** principles. They force you to be organized and disciplined.
* **The Performance Path (Go / Rust):** Great if you love **Computer Science**. You will learn how memory works and how to squeeze every bit of speed out of your CPU.

## 3. The "CodeHarborHub" Recommendation

If you are still staring at the screen and can't decide, follow this "Decision Tree":

1. **"I just finished the React path and want to build a full app now."**
👉 **Pick Node.js.** You already know the syntax!
2. **"I have never coded before and I want to see results fast."**
👉 **Pick Python.** It’s the closest thing to writing English.
3. **"I want to build a personal blog or a freelancing business."**
👉 **Pick PHP (Laravel).** It is the king of freelance web development.
4. **"I want to build the next Minecraft or a high-speed trading app."**
👉 **Pick Rust.** It will be hard, but the rewards are massive.

## The Final Comparison

| Language | Complexity | Jobs | Use Case |
| :--- | :--- | :--- | :--- |
| **Node.js** | Medium | ⭐⭐⭐⭐⭐ | Real-time apps, APIs |
| **Python** | Low | ⭐⭐⭐⭐⭐ | AI, Data, Scripts |
| **PHP** | Low | ⭐⭐⭐⭐ | WordPress, Freelance |
| **Java** | High | ⭐⭐⭐⭐⭐ | Enterprise, Android |
| **C#** | High | ⭐⭐⭐⭐ | Windows, Unity Games |
| **Go** | Medium | ⭐⭐⭐⭐ | Cloud, DevOps |
| **Rust** | Very High | ⭐⭐⭐ | Systems, WebAssembly |

## Your Next Move

Pick **one** language. Don't worry about picking the "wrong" one. Once you learn the concepts of the backend (Request, Response, Databases, Auth), switching to a second language is **10x easier** than learning the first one.

1. Announce your choice in the **#learning-path** channel on Discord.
2. Go to the specific "Getting Started" guide for that language.
3. **Start building.**

:::info Final Thought
A language is just a tool. A carpenter doesn't spend 5 years choosing a hammer; they pick one up and start building a chair. **Pick your hammer and start building your app!**
:::

**Next Path:** [Introduction to Node.js (The Recommended Choice)](./javascript)

### Why this is the perfect conclusion:

* **Action-Oriented:** It moves the student from "learning" to "doing" by providing a clear decision tree.
* **Salary/Job Context:** Beginners are often motivated by career outcomes; the comparison table provides that "real-world" data.
* **The "Hammer" Analogy:** It removes the pressure of choice by emphasizing that backend *concepts* transfer between languages.
83 changes: 83 additions & 0 deletions absolute-beginners/backend-beginner/languages/java.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
---
sidebar_position: 4
title: "Java - The Enterprise Giant"
sidebar_label: "4. Java"
description: "Learn about Java, the robust, object-oriented language that powers big business."
---

Java has been one of the most popular programming languages in the world for over 30 years. Its slogan is **"Write Once, Run Anywhere" (WORA)**, meaning code written on a Mac will run perfectly on Windows, Linux, or even a specialized server in a data center.

Unlike JavaScript, which is "Flexible," Java is **"Strict."** This strictness makes it harder to learn at first, but much harder to break once your app becomes huge.

## 🧐 What is Java?

Java is a **Compiled, Object-Oriented** language.

In JavaScript, your code is read line-by-line by the browser. In Java, your code is first transformed into **Bytecode** by a compiler. This bytecode is then run by the **Java Virtual Machine (JVM)**.

## Why Choose Java?

1. **Strict Security:** Java was built with security in mind. It doesn't allow "Pointer" access to memory, which prevents many common hacking vulnerabilities.
2. **Scalability:** Java is designed to handle millions of users and massive amounts of data. This is why it’s the standard for Android apps and banking systems.
3. **Static Typing:** In Java, you *must* define your data types. If a variable is an `int` (Integer), you cannot accidentally put a "String" inside it. This catches 50% of bugs before you even run the code.
4. **The Ecosystem:** Java has the **Spring Boot** framework, which is the "Gold Standard" for building modern, high-performance APIs.

## How it Looks: Your First Class

Java is **Object-Oriented**, meaning everything must live inside a "Class." It is more "wordy" (verbose) than JavaScript or Python.

```java title="Main.java"
public class Main {
// Every Java program starts at the 'main' method
public static void main(String[] args) {

// Defining a variable with a strict type
String message = "Hello from CodeHarborHub Backend!";
int year = 2026;

System.out.println(message);
System.out.println("The current year is: " + year);
}
}
```

### Breakdown of the Code:

* **`public class Main`**: The container for your code. The file name *must* match this name exactly.
* **`static`**: Means this method can run without creating an object of the class.
* **`void`**: Means this function doesn't return any value.
* **`String[] args`**: Allows you to pass extra data into the program when it starts.

## Technical Concept: Object-Oriented Programming (OOP)

Java forces you to think in "Objects." Imagine you are building a Car Rental app:

* You create a **Class** called `Car` (The Blueprint).
* Each actual car (Toyota, Tesla, Ford) is an **Object** (The Instance).

## Recommended Learning Resources

### Official & Documentation

* **[Oracle Java Docs](https://docs.oracle.com/en/java/)**: The official, very detailed (but slightly dry) documentation.
* **[Spring.io](https://spring.io/guides)**: The best place to learn how to build web servers with Java.

### Free Courses

* **[Java Tutorial for Beginners (Programming with Mosh)](https://www.youtube.com/watch?v=eIrMbLywj8M)**: A great 2-hour starter for absolute beginners.
* **[University of Helsinki MOOC](https://java-programming.mooc.fi/)**: Widely considered the best free Java course on the internet.

### Books

* *"Head First Java"* by Kathy Sierra: The best "Beginner-Friendly" book that uses pictures and puzzles to teach.

## Summary Checklist

* [x] I understand that Java is "Strictly Typed" (you must define data types).
* [x] I know that Java runs on the **JVM**, making it portable.
* [x] I understand that Java is the industry standard for large-scale "Enterprise" apps.
* [x] I have seen the structure of a Java Class.

:::tip Career Advice
If you want to work at companies like **Google, Amazon, or Goldman Sachs**, learning Java is like having a "VIP Pass." It is one of the most respected languages on a resume.
:::
Loading