Rank 00: Foundations 1 - kevshouse/exam_quest GitHub Wiki
-
C Syntax: Primitive types (
int
,char
), operators (+
,%
), control flow (if
/else
) -
Compilation:
gcc -Wall -Wextra -Werror
, basic Makefiles -
Shell:
cd
/ls
/mkdir
/chmod
, Git workflow (add
/commit
/push
) -
Norms: Variables at scope top, function length limits, forbidden
for
loops
// Pattern 1: Simple I/O (e.g., ft_putchar)
void ft_putchar(char c) {
write(1, &c, 1);
}
// Pattern 2: Value modification (e.g., ft_ft)
void ft_ft(int *nbr) {
*nbr = 42; // Direct pointer assignment
}
// Pattern 3: Multi-param operations (e.g., ft_div_mod)
void ft_div_mod(int a, int b, int *div, int *mod) {
*div = a / b;
*mod = a % b; // Multiple results via pointers
}
Exercise Core Concept Norm Constraints ft_putstr String iteration No standard libraries ft_swap Pointer dereference No temporary variables ft_ultimate_div_mod Nested pointers Single assignment
graph TD
A[Shell Basics] -->|Environment Setup| B[Compilation]
B -->|Debugging Foundation| C[C Syntax]
C -->|Control Flow| D[Pointer Basics]
D -->|Core Mechanism| E[Functional Patterns]
E -->|Applied Practice| F[libft Exercises]
subgraph Rank 00 Competencies
A[Shell Basics<br><i>cd/ls/git</i>]
B[Compilation<br><i>gcc flags</i>]
C[C Syntax<br><i>Data types/if/else</i>]
D[Pointer Basics<br><i>Address operators</i>]
E[Functional Patterns<br><i>ft_ft/ft_swap</i>]
F[libft Exercises<br><i>ft_putstr</i>]
end
style A fill:#6fa8dc,stroke:#1c5ca7
style B fill:#8e7cc3,stroke:#4a2d9e
style C fill:#93c47d,stroke:#38761d
style D fill:#ffd966,stroke:#bf9000
style E fill:#f6b26b,stroke:#e06666
style F fill:#e06666,stroke:#990000
⚠️ Critical Path: Failure in pointer mastery blocks 80% of Rank 00 exercises. Prioritize ft_swap-style drills before complex tasks.
graph TD
A[Shell Basics] -->|Environment Setup| B[Compilation]
B -->|Enforces Correctness| C[C Syntax]
C -->|Variable Foundation| D[Pointer Basics]
D -->|Core Mechanism| E[Functional Patterns]
E -->|Applied Practice| F[libft Exercises]
D -->|Critical Path| G[Blocks 80% of Exercises]
F -->|Requires| D
F -->|Requires| C
subgraph Key_Concepts
A[Shell Basics<br><i>cd/ls/git</i>]
B[Compilation<br><i>gcc -Wall -Wextra -Werror</i>]
C[C Syntax<br><i>Data types/if/else</i>]
D[Pointer Basics<br><i>& operator/* dereference</i>]
E[Functional Patterns<br><i>ft_swap/ft_div_mod</i>]
F[libft Exercises<br><i>ft_putstr/ft_ultimate_div_mod</i>]
G[Critical Path<br><i>Master pointers first!</i>]
end
style A fill:#6fa8dc,stroke:#1c5ca7
style B fill:#8e7cc3,stroke:#4a2d9e
style C fill:#93c47d,stroke:#38761d
style D fill:#ffd966,stroke:#bf9000
style E fill:#f6b26b,stroke:#e06666
style F fill:#e06666,stroke:#990000
style G fill:#ff0000,stroke:#000000,color:#ffffff
- Master shell navigation before writing code
- Validate all compilations with -Wall -Wextra -Werror
- Implement ft_putchar → ft_putstr → ft_swap in sequence
- Test with edge cases: NULL inputs, max/min integers