Close Menu

    Subscribe to Updates

    Get the latest creative news from FooBar about art, design and business.

    What's Hot

    Nothing Phone (3) smartphone review: Top-class hardware combined with unrivaled design and secondary display

    Gigabyte Gaming A16 GA63H

    Metroid Prime 4: Beyond release date leaked and it’s sooner than expected

    Facebook X (Twitter) Instagram
    • Artificial Intelligence
    • Business Technology
    • Cryptocurrency
    • Gadgets
    • Gaming
    • Health
    • Software and Apps
    • Technology
    Facebook X (Twitter) Instagram Pinterest Vimeo
    Tech AI Verse
    • Home
    • Artificial Intelligence

      Blue-collar jobs are gaining popularity as AI threatens office work

      August 17, 2025

      Man who asked ChatGPT about cutting out salt from his diet was hospitalized with hallucinations

      August 15, 2025

      What happens when chatbots shape your reality? Concerns are growing online

      August 14, 2025

      Scientists want to prevent AI from going rogue by teaching it to be bad first

      August 8, 2025

      AI models may be accidentally (and secretly) learning each other’s bad behaviors

      July 30, 2025
    • Business

      Why Certified VMware Pros Are Driving the Future of IT

      August 24, 2025

      Murky Panda hackers exploit cloud trust to hack downstream customers

      August 23, 2025

      The rise of sovereign clouds: no data portability, no party

      August 20, 2025

      Israel is reportedly storing millions of Palestinian phone calls on Microsoft servers

      August 6, 2025

      AI site Perplexity uses “stealth tactics” to flout no-crawl edicts, Cloudflare says

      August 5, 2025
    • Crypto

      Former Indian Politician Convicted in Bitcoin Extortion Case

      August 30, 2025

      Top 3 Real World Asset (RWA) Altcoins to Watch in September

      August 30, 2025

      Ethereum Dip May Be Temporary with $1 Billion Whale Buys and Slower Profit Taking

      August 30, 2025

      Everything We Know So Far About the Bitcoin Thriller “Killing Satoshi”

      August 30, 2025

      Why HBAR’s Bearish Sentiment Might Be Its Trigger for a Price Rebound

      August 30, 2025
    • Technology

      Nothing Phone (3) smartphone review: Top-class hardware combined with unrivaled design and secondary display

      August 30, 2025

      Gigabyte Gaming A16 GA63H

      August 30, 2025

      Metroid Prime 4: Beyond release date leaked and it’s sooner than expected

      August 30, 2025

      New Casio Edifice EFRS108DE stainless-steel watches with textured dials now purchasable in the US with limited stock

      August 30, 2025

      Seven new IKEA smart home products with Matter on the way

      August 30, 2025
    • Others
      • Gadgets
      • Gaming
      • Health
      • Software and Apps
    Check BMI
    Tech AI Verse
    You are at:Home»Technology»Ziglings: Learn Zig by fixing broken programs
    Technology

    Ziglings: Learn Zig by fixing broken programs

    TechAiVerseBy TechAiVerseJuly 7, 2025No Comments6 Mins Read0 Views
    Facebook Twitter Pinterest Telegram LinkedIn Tumblr Email Reddit
    Ziglings: Learn Zig by fixing broken programs
    Share
    Facebook Twitter LinkedIn Pinterest WhatsApp Email

    BMI Calculator – Check your Body Mass Index for free!

    Ziglings: Learn Zig by fixing broken programs

    Ziglings

    Welcome to Ziglings! This project contains a series of tiny
    broken programs (and one nasty surprise). By fixing them, you’ll
    learn how to read and write Zig code.

    Those broken programs need your help! (You’ll also save the
    planet from evil aliens and help some friendly elephants stick
    together, which is very sweet of you.)

    This project was initiated by Dave Gauer and is directly inspired
    by the brilliant and fun rustlings project.
    Indirect inspiration comes from Ruby Koans and the Little LISPer/Little
    Schemer series of books.

    Intended Audience

    This will probably be difficult if you’ve never programmed
    before. But no specific programming experience is required. And
    in particular, you are not expected to have any prior
    experience with “systems programming” or a “systems” level
    language such as C.

    Each exercise is self-contained and self-explained. However,
    you’re encouraged to also check out these Zig language resources
    for more detail:

    • https://ziglang.org/learn/
    • https://ziglearn.org/
    • https://ziglang.org/documentation/master/
    • Zig in Depth! (video series)

    Also, the Zig community
    is incredibly friendly and helpful!

    Getting Started

    Install a development build of
    the Zig compiler. (See the “master” section of the downloads
    page.)

    Verify the installation and build number of zig like so:

    $ zig version
    0.15.0-dev.xxxx+xxxxxxxxx
    

    Clone this repository with Git:

    git clone https://codeberg.org/ziglings/exercises.git ziglings
    cd ziglings
    

    Then run zig build and follow the instructions to begin!

    zig build
    

    Note: The output of Ziglings is the unaltered output from the Zig
    compiler. Part of the purpose of Ziglings is to acclimate you to
    reading these.

    A Note About Versions

    Hint: To check out Ziglings for a stable release of Zig, you can use
    the appropriate tag.

    The Zig language is under very active development. In order to be
    current, Ziglings tracks development builds of the Zig
    compiler rather than versioned release builds. The last
    stable release was 0.14.1, but Ziglings needs a dev build with
    pre-release version “0.15.0” and a build number at least as high
    as that shown in the example version check above.

    It is likely that you’ll download a build which is greater than
    the minimum.

    Once you have a build of the Zig compiler that works with
    Ziglings, they’ll continue to work together. But keep in mind
    that if you update one, you may need to also update the other.

    Version Changes

    Version-0.14.0-dev.1573

    • 2024-09-16 zig 0.14.0-dev.1573 – introduction of labeled switch, see #21257
    • 2024-09-02 zig 0.14.0-dev.1409 – several changes in std.builtin, see #21225
    • 2024-08-04 zig 0.14.0-dev.1224 – several changes in build system, see #21115
    • 2024-08-04 zig 0.14.0-dev.839 – several changes in build system, see #20580, #20600
    • 2024-06-17 zig 0.14.0-dev.42 – changes in std.mem.split and tokenize – see #15579
    • 2024-05-29 zig 0.13.0-dev.339 – rework std.Progress – see #20059
    • 2024-03-21 zig 0.12.0-dev.3518 – change to @fieldParentPtr – see #19470
    • 2024-03-21 zig 0.12.0-dev.3397 – rename std.os to std.posix – see #5019
    • 2024-03-14 zig 0.12.0-dev.3302 – changes in std.fmt – floating-point formatting implementation – see #19229
    • 2024-02-05 zig 0.12.0-dev.2618 – changes in build system – from Step.zig_exe to Step.graph.zig_exe – see #18778
    • 2024-01-05 zig 0.12.0-dev.2043 – rename of std.Build.FileSource to std.Build.LazyPath – see #16353
    • 2023-10-24 zig 0.12.0-dev.1243 – changes in std.ChildProcess: renamed exec to run – see #5853
    • 2023-06-26 zig 0.11.0-dev.4246 – changes in compile step (now it can be null)
    • 2023-06-26 zig 0.11.0-dev.3853 – removal of destination type from all cast builtins
    • 2023-06-20 zig 0.11.0-dev.3747 – @enumToInt is now @intFromEnum and @intToFloat is now @floatFromInt
    • 2023-05-25 zig 0.11.0-dev.3295 – std.debug.TTY is now std.io.tty
    • 2023-04-30 zig 0.11.0-dev.2704 – use of the new std.Build.ExecutableOptions.link_libc field
    • 2023-04-12 zig 0.11.0-dev.2560 – changes in std.Build – remove run() and install()
    • 2023-04-07 zig 0.11.0-dev.2401 – fixes of the new build system – see #212
    • 2023-02-21 zig 0.11.0-dev.2157 – changes in build system – new: parallel processing of the build steps
    • 2023-02-21 zig 0.11.0-dev.1711 – changes in for loops – new: Multi-Object For-Loops + Struct-of-Arrays
    • 2023-02-12 zig 0.11.0-dev.1638 – changes in std.Build cache_root now returns a directory struct
    • 2023-02-04 zig 0.11.0-dev.1568 – changes in std.Build (combine std.build and std.build.Builder into std.Build)
    • 2023-01-14 zig 0.11.0-dev.1302 – changes in @addWithOverflow (now returns a tuple) and @typeInfo; temporary disabled async functionality
    • 2022-09-09 zig 0.10.0-dev.3978 – change in NativeTargetInfo.detect in build
    • 2022-09-06 zig 0.10.0-dev.3880 – Ex 074 correctly fails again: comptime array len
    • 2022-08-29 zig 0.10.0-dev.3685 – @typeName() output change, stage1 req. for async
    • 2022-07-31 zig 0.10.0-dev.3385 – std lib string fmt() option changes
    • 2022-03-19 zig 0.10.0-dev.1427 – method for getting sentinel of type changed
    • 2021-12-20 zig 0.9.0-dev.2025 – c_void is now anyopaque
    • 2021-06-14 zig 0.9.0-dev.137 – std.build.Id .Custom is now .custom
    • 2021-04-21 zig 0.8.0-dev.1983 – std.fmt.format() any format string required
    • 2021-02-12 zig 0.8.0-dev.1065 – std.fmt.format() s (string) format string required

    Advanced Usage

    It can be handy to check just a single exercise:

    zig build -Dn=19
    

    Or run all exercises, starting from a specific one:

    zig build -Ds=27
    

    Or let Ziglings pick an exercise for you:

    zig build -Drandom
    

    You can also run without checking for correctness:

    zig build -Dn=19 test
    

    Or skip the build system entirely and interact directly with the
    compiler if you’re into that sort of thing:

    zig run exercises/001_hello.zig
    

    Calling all wizards: To prepare an executable for debugging,
    install it to zig-cache/bin with:

    zig build -Dn=19 install
    

    To get a list of all possible options, run:

    zig build -Dn=19 -l
    
      install          Install 019_functions2.zig to prefix path
      uninstall        Uninstall 019_functions2.zig from prefix path
      test             Run 019_functions2.zig without checking output
      ...
    

    To reset the progress (have it run all the exercises that have already been completed):

    zig build -Dreset
    

    What’s Covered

    The primary goal for Ziglings is to cover the core Zig language.

    It would be nice to cover the Standard Library as well, but this
    is currently challenging because the stdlib is evolving even
    faster than the core language (and that’s saying something!).
    Not only would stdlib coverage change very rapidly, some
    exercises might even cease to be relevant entirely.

    Having said that, there are some stdlib features that are
    probably here to stay or are so important to understand that they
    are worth the extra effort to keep current.

    Conspicuously absent from Ziglings are a lot of string
    manipulation exercises. This is because Zig itself largely avoids
    dealing with strings. Hopefully there will be an obvious way to
    address this in the future. The Ziglings crew loves strings!

    Zig Core Language

    • Hello world (main needs to be public)
    • Importing standard library
    • Assignment
    • Arrays
    • Strings
    • If
    • While
    • For
    • Functions
    • Errors (error/try/catch/if-else-err)
    • Defer (and errdefer)
    • Switch
    • Unreachable
    • Enums
    • Structs
    • Pointers
    • Optionals
    • Struct methods
    • Slices
    • Many-item pointers
    • Unions
    • Numeric types (integers, floats)
    • Labelled blocks and loops
    • Loops as expressions
    • Builtins
    • Inline loops
    • Comptime
    • Sentinel termination
    • Quoted identifiers @””
    • Anonymous structs/tuples/lists
    • Async <--- ironically awaiting upstream Zig updates
    • Interfaces
    • Bit manipulation
    • Working with C
    • Opaque types (anyopaque)
    • Threading
    • Labeled switch
    • Vector operations (SIMD)

    Zig Standard Library

    • String formatting
    • Testing
    • Tokenization
    • File handling

    Contributing

    Contributions are very welcome! I’m writing this to teach myself
    and to create the learning resource I wished for. There will be
    tons of room for improvement:

    • Wording of explanations
    • Idiomatic usage of Zig
    • Additional exercises

    Please see CONTRIBUTING
    in this repo for the full details.

    BMI Calculator – Check your Body Mass Index for free!

    Share. Facebook Twitter Pinterest LinkedIn Reddit WhatsApp Telegram Email
    Previous ArticleHigh Performance Image Sensor Processing Using FPGAs [pdf]
    Next Article Forget the hype — real AI agents solve bounded problems, not open-world fantasies
    TechAiVerse
    • Website

    Jonathan is a tech enthusiast and the mind behind Tech AI Verse. With a passion for artificial intelligence, consumer tech, and emerging innovations, he deliver clear, insightful content to keep readers informed. From cutting-edge gadgets to AI advancements and cryptocurrency trends, Jonathan breaks down complex topics to make technology accessible to all.

    Related Posts

    Nothing Phone (3) smartphone review: Top-class hardware combined with unrivaled design and secondary display

    August 30, 2025

    Gigabyte Gaming A16 GA63H

    August 30, 2025

    Metroid Prime 4: Beyond release date leaked and it’s sooner than expected

    August 30, 2025
    Leave A Reply Cancel Reply

    Top Posts

    Ping, You’ve Got Whale: AI detection system alerts ships of whales in their path

    April 22, 2025167 Views

    6.7 Cummins Lifter Failure: What Years Are Affected (And Possible Fixes)

    April 14, 202548 Views

    New Akira ransomware decryptor cracks encryptions keys using GPUs

    March 16, 202530 Views

    Is Libby Compatible With Kobo E-Readers?

    March 31, 202528 Views
    Don't Miss
    Technology August 30, 2025

    Nothing Phone (3) smartphone review: Top-class hardware combined with unrivaled design and secondary display

    Nothing Phone (3) smartphone review: Top-class hardware combined with unrivaled design and secondary display -…

    Gigabyte Gaming A16 GA63H

    Metroid Prime 4: Beyond release date leaked and it’s sooner than expected

    New Casio Edifice EFRS108DE stainless-steel watches with textured dials now purchasable in the US with limited stock

    Stay In Touch
    • Facebook
    • Twitter
    • Pinterest
    • Instagram
    • YouTube
    • Vimeo

    Subscribe to Updates

    Get the latest creative news from SmartMag about art & design.

    About Us
    About Us

    Welcome to Tech AI Verse, your go-to destination for everything technology! We bring you the latest news, trends, and insights from the ever-evolving world of tech. Our coverage spans across global technology industry updates, artificial intelligence advancements, machine learning ethics, and automation innovations. Stay connected with us as we explore the limitless possibilities of technology!

    Facebook X (Twitter) Pinterest YouTube WhatsApp
    Our Picks

    Nothing Phone (3) smartphone review: Top-class hardware combined with unrivaled design and secondary display

    August 30, 20250 Views

    Gigabyte Gaming A16 GA63H

    August 30, 20252 Views

    Metroid Prime 4: Beyond release date leaked and it’s sooner than expected

    August 30, 20252 Views
    Most Popular

    Xiaomi 15 Ultra Officially Launched in China, Malaysia launch to follow after global event

    March 12, 20250 Views

    Apple thinks people won’t use MagSafe on iPhone 16e

    March 12, 20250 Views

    French Apex Legends voice cast refuses contracts over “unacceptable” AI clause

    March 12, 20250 Views
    © 2025 TechAiVerse. Designed by Divya Tech.
    • Home
    • About Us
    • Contact Us
    • Privacy Policy
    • Terms & Conditions

    Type above and press Enter to search. Press Esc to cancel.