first commit day 1 week 1
This commit is contained in:
207
README.md
Normal file
207
README.md
Normal file
@@ -0,0 +1,207 @@
|
||||
# 7 Modern Languages in 7 Weeks — Systems, Security & Algorithms Track
|
||||
|
||||
A **project-driven, low-level–aware programming course** designed for developers transitioning into **system administration, security, and networking**, with a strong emphasis on **algorithms, memory, and real-world validation logic**.
|
||||
|
||||
This is not a "learn syntax" course.
|
||||
This is a **learn how computers actually work** course.
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Who This Course Is For
|
||||
|
||||
* Developers with some programming experience (web, scripting, or general-purpose)
|
||||
* Aspiring **SysAdmins**, **Security Engineers**, or **Network Engineers**
|
||||
* Learners preparing for **CompTIA A+ → CCNA → Security+**
|
||||
* Anyone who wants to understand:
|
||||
|
||||
* why bugs happen
|
||||
* how exploits are possible
|
||||
* how performance and correctness really work
|
||||
|
||||
---
|
||||
|
||||
## 🧠 Teaching Philosophy
|
||||
|
||||
* **Algorithms first**, math explained clearly and intuitively
|
||||
* **Low-level understanding**, even when using high-level languages
|
||||
* **Project-based learning**, no toy examples
|
||||
* **Security mindset** from Day 1
|
||||
* Compare languages to understand tradeoffs, not preferences
|
||||
|
||||
Every concept is taught with:
|
||||
|
||||
* step-by-step reasoning
|
||||
* real constraints
|
||||
* boundary conditions
|
||||
* performance implications
|
||||
|
||||
---
|
||||
|
||||
## 🛠 Language Stack (Customized)
|
||||
|
||||
This track focuses on languages used in **systems, security, and administration**:
|
||||
|
||||
1. **C** — memory, buffers, OS-level thinking
|
||||
2. **C++** — performance, algorithms, data structures
|
||||
3. **Python** — automation, scripting, security tooling
|
||||
4. **Bash** — Linux/macOS administration
|
||||
5. **PowerShell** — Windows administration & automation
|
||||
6. **C# (.NET)** — Windows internals, enterprise tooling
|
||||
7. **SQL (PostgreSQL)** — data querying, filtering, security-relevant logic
|
||||
|
||||
Languages are compared continuously to show:
|
||||
|
||||
* what is hidden
|
||||
* what is enforced
|
||||
* what can go wrong
|
||||
|
||||
---
|
||||
|
||||
## 🗺 Course Structure
|
||||
|
||||
### Week 1 — Core Execution & Algorithm Foundations
|
||||
|
||||
* Variables & types (memory-aware)
|
||||
* Conditionals & loops
|
||||
* Input handling & validation
|
||||
* Algorithmic thinking (counting, bounds, linear growth)
|
||||
|
||||
**Projects:**
|
||||
|
||||
* Input validation CLI
|
||||
* Username/password sanitizers
|
||||
* System information tools
|
||||
|
||||
---
|
||||
|
||||
### Week 2 — Data Structures
|
||||
|
||||
* Arrays, lists, maps, sets
|
||||
* Memory layout & mutability
|
||||
* Algorithmic tradeoffs
|
||||
|
||||
**Projects:**
|
||||
|
||||
* Log parsers
|
||||
* Configuration validators
|
||||
* Scan result analyzers
|
||||
|
||||
---
|
||||
|
||||
### Week 3 — Files, I/O & Networking Basics
|
||||
|
||||
* File handling
|
||||
* STDIN / STDOUT
|
||||
* Simple web server
|
||||
* JSON & XML parsing
|
||||
|
||||
**Projects:**
|
||||
|
||||
* Log monitoring tools
|
||||
* Simple REST services
|
||||
* Data extraction utilities
|
||||
|
||||
---
|
||||
|
||||
### Week 4 — Errors, Debugging & Testing
|
||||
|
||||
* Error handling models
|
||||
* Logging
|
||||
* Debugging tools
|
||||
* Unit testing
|
||||
|
||||
**Projects:**
|
||||
|
||||
* Fault-tolerant scripts
|
||||
* Troubleshooting utilities
|
||||
|
||||
---
|
||||
|
||||
### Week 5 — OOP & Functional Concepts
|
||||
|
||||
* When OOP helps
|
||||
* When it hurts
|
||||
* Functional patterns for safety
|
||||
|
||||
**Projects:**
|
||||
|
||||
* Modular system utilities
|
||||
* Reusable validation libraries
|
||||
|
||||
---
|
||||
|
||||
### Week 6 — Concurrency & Performance
|
||||
|
||||
* Threads vs async
|
||||
* Race conditions
|
||||
* Performance bottlenecks
|
||||
|
||||
**Projects:**
|
||||
|
||||
* Concurrent scanners
|
||||
* Parallel log analyzers
|
||||
|
||||
---
|
||||
|
||||
### Week 7 — Industry-Standard Tooling
|
||||
|
||||
* Popular web servers
|
||||
* Real-world scraping libraries
|
||||
* Testing frameworks
|
||||
* Modern concurrency models
|
||||
|
||||
**Projects:**
|
||||
|
||||
* Hardened web services
|
||||
* Attack surface analysis tools
|
||||
|
||||
---
|
||||
|
||||
### Week 8+ — Bonus: Interview & Certification Prep
|
||||
|
||||
* Algorithms & data structures
|
||||
* Sysadmin troubleshooting
|
||||
* Security scenarios
|
||||
* Cert-style questions mapped to A+, CCNA, Security+
|
||||
|
||||
---
|
||||
|
||||
## 📈 Daily Lesson Format
|
||||
|
||||
Each day includes:
|
||||
|
||||
* Concept explanation (clear + low-level)
|
||||
* Language-specific implementation
|
||||
* 5 graded exercises (increasing difficulty)
|
||||
* Go-Further edge cases
|
||||
* Submission & feedback
|
||||
* Progress tracking in Markdown
|
||||
|
||||
---
|
||||
|
||||
## 💻 Environment
|
||||
|
||||
* **OS:** Linux (primary) + Windows VM
|
||||
* **Editor:** VS Code
|
||||
* **Compilers/SDKs:** gcc/clang, .NET SDK, Python 3.x
|
||||
* **Database:** PostgreSQL
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Outcome
|
||||
|
||||
By the end of this course, you will:
|
||||
|
||||
* Think algorithmically, not syntactically
|
||||
* Understand memory, boundaries, and performance
|
||||
* Write safer, more predictable code
|
||||
* Move comfortably between low-level and high-level languages
|
||||
* Be prepared for real sysadmin and security work
|
||||
|
||||
---
|
||||
|
||||
## 🧠 Core Principle
|
||||
|
||||
> **Syntax changes. Logic does not.**
|
||||
|
||||
This course teaches you the logic.
|
||||
BIN
week 1/day 1/a.out
Executable file
BIN
week 1/day 1/a.out
Executable file
Binary file not shown.
35
week 1/day 1/hello.c
Normal file
35
week 1/day 1/hello.c
Normal file
@@ -0,0 +1,35 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
char firstName[30];
|
||||
int characters = 0;
|
||||
int badChar = 0;
|
||||
|
||||
|
||||
printf("Please enter your name: ");
|
||||
fgets(firstName, sizeof(firstName), stdin);
|
||||
|
||||
|
||||
for (int i = 0; firstName[i] != '\0'; i++) {
|
||||
|
||||
if (firstName[i] != '\n') {
|
||||
characters++;
|
||||
if(firstName[i] == ' ' || ((int)firstName[i] >= 48 && (int)firstName[i] <= 57)){
|
||||
badChar = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int first = firstName[0];
|
||||
int isLetter = (first >= 'A' && first <= 'Z') ||
|
||||
(first >= 'a' && first <= 'z');
|
||||
|
||||
|
||||
if (characters <= 20 && isLetter && badChar == 0) {
|
||||
printf("Accepted\n");
|
||||
}else{
|
||||
printf("Refused\n");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
20
week 1/day 1/readme.md
Normal file
20
week 1/day 1/readme.md
Normal file
@@ -0,0 +1,20 @@
|
||||
Quick Exercise — Variables
|
||||
|
||||
Try writing a small script (your language of choice) that:
|
||||
|
||||
Asks the user for their name.
|
||||
|
||||
Accept the name only if:
|
||||
1. Length ≤ 20
|
||||
2.First character is a letter
|
||||
3.Contains no digits
|
||||
4.Contains no spaces
|
||||
|
||||
This tests:
|
||||
✔ Reading input
|
||||
✔ Using variables
|
||||
✔ Printing output
|
||||
|
||||
Reply here with your solution — I’ll give feedback.
|
||||
|
||||
I will use c for this exercises
|
||||
Reference in New Issue
Block a user