commit 0b7a3a698a534d3ab39015dc0d4aa17492ddaaf9 Author: mrsh Date: Wed Jan 21 10:34:07 2026 +0100 first commit day 1 week 1 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 0000000..38bcddf Binary files /dev/null and b/week 1/day 1/a.out differ 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