I just finished the C Piscine at a 42 school, so I have gotten a good grasp of the basics of C (about 300 hours worth). The school won’t start until October, and I’d like to practice my C skills in the meantime so I can be better prepared when it does start.

Any suggestions for curriculum / projects that don’t start at the very beginning? I already have a good grasp of pointers, control structures, structs, string manipulation, etc.

  • smpl
    link
    fedilink
    English
    311 months ago

    I’d suggest starting a project and make a git repository for it, then start a thread here where you post your changes and questions. I’m sure you’ll get a lot of feedback on your code and have your questions answered. This group need some acitivity anyway.

  • @[email protected]
    link
    fedilink
    211 months ago

    Complete all the CodeStepByStep problems: https://www.codestepbystep.com/problem/list/c

    Read a Data Structures and Algorithms book.

    If you’ve done university Calculus then read Sedgewick: https://www.amazon.com/Algorithms-Parts-1-5-Bundle-Fundamentals/dp/0201756080/

    If you haven’t then read Loudon: https://www.amazon.com/Mastering-Algorithms-C-Kyle-Loudon/dp/1565924533

    Write a basic game, like a text strategy game in ncurses or a roguelike. Add ability to save and load games, design it so the computer can play the game itself and the player can drop in or out at any time.

    Read good code like musl libc. Redis and modern BSD are also said to be good.

  • @[email protected]
    link
    fedilink
    111 months ago

    Reading lots of code is the most important, at this point, so you see how the code is actually written in the industry.

    An other good way to get started is to try to change some software you use, to add a feature you want in it. It’s challenging to get your head around someone else’s codebase, and yet it’s a very important skill, since you’ll need that in most jobs you’ll find. Education tends to assume you’re the one starting the codebase, but it’s rarely the case in real life.

    And when you feel confident enough making those small changes, you can try to submit the most useful ones to the project. :) This will teach you collaboration, which is an other very difficult and very important part of the job. Plus, it will get you contacts and contributions to show off.