/zig

Primary LanguageZig

My Zig Learning Journey

Welcome to my documentation of learning Zig! This journey is inspired by the exercises provided by Ziglings and the guidance from chrboesch on Codeberg.

Introduction

Zig is a general-purpose programming language and toolchain for maintaining robust, optimal, and reusable software. My goal is to dive deep into Zig, understanding its syntax, semantics, and the philosophy behind its design.

Resources

  • Ziglings Exercises: A series of small exercises to get acquainted with Zig's syntax and features. View Exercises
  • Mentorship by chrboesch: Personal guidance and insights from an experienced Zig developer. chrboesch's Profile
  • My writings: In addition to the Markdown files that guide learners through various Zig concepts, this repository also includes Zig code files corresponding to each Markdown file. These code files are intended for learning purposes only; they may contain intentional errors or incomplete code snippets that will not compile or run. This approach is designed to encourage learners to engage more deeply with the material by identifying and understanding these errors as part of the learning process.

Learning Path

Below is the structured path I plan to follow, leveraging the above resources:

  1. Getting Started with Zig: Setting up the environment and writing my first "Hello, World!" program.
  2. Basic Syntax and Types: Understanding variables, types, and control structures in Zig.
  3. Functions and Error Handling: Learning how to define functions, handle errors, and understand Zig's comptime features.
  4. Data Structures: Exploring arrays, structs, and other data structures in Zig.
  5. Memory Management: Understanding how Zig handles memory allocation and deallocation.
  6. Concurrency: Learning about Zig's approach to concurrency and async programming.
  7. Advanced Topics: Diving into more complex topics as I progress, including generics, metaprogramming, and using Zig's standard library.

Progress Log

I will be documenting my progress, challenges, and insights as I advance through my learning journey. Stay tuned for updates!

Conclusion

This journey is not just about learning a new programming language but also about understanding the principles of software development that Zig emphasizes. I'm excited to see where this path takes me and to share my experiences along the way.

Thank you for joining me on this journey. Let's explore the world of Zig together!