A Beginner's Guide to Noir: Building Zero-Knowledge Proofs from Scratch