From 0b7a3a698a534d3ab39015dc0d4aa17492ddaaf9 Mon Sep 17 00:00:00 2001 From: mrsh Date: Wed, 21 Jan 2026 10:34:07 +0100 Subject: [PATCH] first commit day 1 week 1 --- README.md | 207 +++++++++++++++++++++++++++++++++++++++++ week 1/day 1/a.out | Bin 0 -> 16136 bytes week 1/day 1/hello.c | 35 +++++++ week 1/day 1/readme.md | 20 ++++ 4 files changed, 262 insertions(+) create mode 100644 README.md create mode 100755 week 1/day 1/a.out create mode 100644 week 1/day 1/hello.c create mode 100644 week 1/day 1/readme.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..9d06f41 --- /dev/null +++ b/README.md @@ -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. diff --git a/week 1/day 1/a.out b/week 1/day 1/a.out new file mode 100755 index 0000000000000000000000000000000000000000..38bcddf39b1bc73d0b7d60a3261f2fa9e745acb9 GIT binary patch literal 16136 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 AssI20 literal 0 HcmV?d00001 diff --git a/week 1/day 1/hello.c b/week 1/day 1/hello.c new file mode 100644 index 0000000..f253379 --- /dev/null +++ b/week 1/day 1/hello.c @@ -0,0 +1,35 @@ +#include + +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; +} diff --git a/week 1/day 1/readme.md b/week 1/day 1/readme.md new file mode 100644 index 0000000..52dd848 --- /dev/null +++ b/week 1/day 1/readme.md @@ -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 \ No newline at end of file