{"id":18877277,"url":"https://github.com/pedrozappa/42_examprep","last_synced_at":"2026-02-18T21:30:14.607Z","repository":{"id":219481125,"uuid":"735580580","full_name":"PedroZappa/42_ExamPrep","owner":"PedroZappa","description":"Tips and resources for Exam Preparation","archived":false,"fork":false,"pushed_at":"2024-10-29T14:19:55.000Z","size":234,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-29T17:28:59.186Z","etag":null,"topics":["42","42born2code","42cursus","42exams","42school","gdb","git","vim","zshrc"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PedroZappa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-25T12:34:05.000Z","updated_at":"2024-10-29T14:19:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"d29461ea-3595-49a4-b6e9-13b409248dfa","html_url":"https://github.com/PedroZappa/42_ExamPrep","commit_stats":null,"previous_names":["pedrozappa/42examprep","pedrozappa/42_examprep"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PedroZappa%2F42_ExamPrep","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PedroZappa%2F42_ExamPrep/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PedroZappa%2F42_ExamPrep/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PedroZappa%2F42_ExamPrep/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PedroZappa","download_url":"https://codeload.github.com/PedroZappa/42_ExamPrep/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239833540,"owners_count":19704628,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["42","42born2code","42cursus","42exams","42school","gdb","git","vim","zshrc"],"created_at":"2024-11-08T06:17:59.708Z","updated_at":"2026-02-18T21:30:14.538Z","avatar_url":"https://github.com/PedroZappa.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\u003cdiv align=\"center\"\u003e\n\n# 42-ExamPrep\n\n\u003e Tips and resources for Exam Preparation\n\n\u003cp\u003e\n    \u003cimg src=\"https://img.shields.io/github/languages/top/PedroZappa/42ExamPrep?style=for-the-badge\" /\u003e\n    \u003cimg src=\"https://img.shields.io/github/last-commit/PedroZappa/42ExamPrep?style=for-the-badge\" /\u003e\n\u003c/p\u003e\n\n\n___\n## Table o'Contents\n\n\u003c!-- mtoc-start --\u003e\n\n* [Exam Tips ](#exam-tips-)\n  * [Setting up the Exam Dev Environment 💻](#setting-up-the-exam-dev-environment-)\n  * [Logging into `Examshell` 🐚](#logging-into-examshell-)\n  * [Submitting to the `Vogsphere` 🌐](#submitting-to-the-vogsphere-)\n  * [Exam Exercises 🧪](#exam-exercises-)\n    * [Exam Rank 2](#exam-rank-2)\n    * [Exam Rank 3](#exam-rank-3)\n    * [License :copyright:](#license-copyright)\n\n\u003c!-- mtoc-end --\u003e\n___\n\n\u003c/div\u003e\n\n# Exam Tips \n\n- Arrive early to the cluster for exams (15/20 minutes) to have time to setup your exam dev environment.\n\nFrom the moment you are assigned a computer you can login right away with the credentials provided. Expect something like:\n\n\u003e \u003ckbd\u003elogin\u003c/kbd\u003e : exam\n\u003e\n\u003e \u003ckbd\u003epassword\u003c/kbd\u003e : exam\n\n\n## Setting up the Exam Dev Environment 💻\n\nPoint a terminal to your `~/` directory and add the following lines to your `.zshrc`, `.gdbinit` and `.vimrc` files.\n\nIf any of these files does not exist, create it. This should be the case for both `.vimrc` and `.gdbinit`.\n\n- `.zshrc`\n\nAdd convenient aliases:\n```bash\n# Compile with warnings \u0026 debug symbols\nalias ccw='cc -Wall -Wextra -Werror -g'\n\n# Git\nalias ga='git add'\nalias gst='git status'\nalias gc='git commit -m'\n```\n___\n\n- `.gdbinit`\n\nThis line allows GDB to load a `.gdbinit` file from any working directory in the system.\n\n\u003e [!Note]\n\u003e\n\u003e Check out my [get_next_line](https://github.com/PedroZappa/get_next_line) repo for more info on using `.gdbinit`.\n\n```bash\nset auto-load safe-path /\n```\n___\n\n- `.vimrc`\n\nA basic vim configuration, edit this to your liking.\n```vim\nruntime! defaults.vim\n\nsyntax on\nset mouse=a\t\" Enable mouse\nset noswapfile\t\" Disable swap files\n\nset ruler\nset number\nset relativenumber\n\nset tabstop=4\nset shiftwidth=4\n\nset autoindent\nset smartindent\n\nruntime! ftplugin/man.vim \" Open man pages in Vim\n```\n___\n\n## Logging into `Examshell` 🐚\n\n- You can only log into \u003ckbd\u003eexamshell\u003c/kbd\u003e right on the starting time of the exam. \n\n- Use your 42 student `login` and `password` credentials to get access to \u003ckbd\u003eexamshell\u003c/kbd\u003e.\n\n- You will be assigned an exercise randomly at each level.\n\n- You can only progress to Level 2 after you have completed Level 1, and so on.\n\n\u003e [!Note]\n\u003e\n\u003e You do NOT need to conform to `Norminette`'s syntax rules while solving the exam.\n\n___\n## Submitting to the `Vogsphere` 🌐\n\n- This is where the git aliases we defined in `.zshrc` come in. To validate each exercise, first you need to upload it to the \u003ckbd\u003evogsphere\u003c/kbd\u003e using git commands.\n\n\u003e \u003ckbd\u003eTip\u003c/kbd\u003e \n\u003e\n\u003e - Never use `git add .` (or the alias `ga .`) to avoid staging files that are not required by the subject. Always specify the name of the file/files you want to stage.\n\u003e\n\u003e - Use and abuse `git status` (or the alias `gst`) to make sure you only commit files required by the subject.\n\u003e\n\u003e - If you want to be extra cautious, setup a `.gitignore` at the root of the exam's submission directory, with contents similar to the following:\n\u003e\n\u003e ```gitignore\n\u003e .gitignore\n\u003e */a.out\n\u003e */main.c\n\u003e */gdb.txt\n\u003e */.gdbinit\n\u003e ```\n\n___\n\n## Exam Exercises 🧪\n\n### Exam Rank 2\n\nThe Rank 2 Exam has four levels, comprised of several exercises each. \n\n\u003e \u003ckbd\u003eTip\u003c/kbd\u003e \n\u003e\n\u003e `ft_isspace` is a particularly helpful function when solving a lot of the exercises through every level of the exam.\n\nHere follow the solutions to all exam exercises (as of January 2024), including all test code and `.gdbinit` files developed to test and study each exercise. \n___\n| Level 1       | Level 2 | Level 3 | Level 4 |\n| -------       | ------- | ------- | ------- |\n| [first_word](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_1/first_word) | [alpha_mirror](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_2/alpha_mirror) | [add_prime_sum](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_3/add_prime_sum) | [flood_fill](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_4/flood_fill) |\n| [fizzbuzz](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_1/fizzbuzz) | [camel_to_snake](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_2/camel_to_snake) | [epur_str](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_3/epur_str) | [fprime](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_4/fprime) |\n| [ft_putstr](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_1/ft_putstr) | [do_op](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_2/do_op) | [expand_str](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_3/expand_str) | [ft_itoa](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_4/ft_itoa) |\n| [ft_strcpy](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_1/ft_strcpy) | [ft_atoi](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_2/ft_atoi) | [ft_atoi_base](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_3/ft_atoi_base) | [ft_list_foreach](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_4/ft_list_foreach) |\n| [ft_strlen](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_1/ft_strlen) | [ft_strcmp](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_2/ft_strcmp) | [ft_list_size](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_3/ft_list_size) | [ft_list_remove_if](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_4/ft_list_remove_if) |\n| [ft_swap](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_1/ft_swap) | [ft_strcspn](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_2/ft_strcspn) | [ft_range](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_3/ft_range) | [ft_split](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_4/ft_split) |\n| [repeat_alpha](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_1/repeat_alpha) | [ft_strdup](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_2/ft_strdup) |  [ft_rrange](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_3/ft_rrange) | [rev_wstr](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_4/rev_wstr) |\n| [rev_print](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_1/rev_print) | [ft_strpbrk](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_2/ft_strpbrk) | [hidenp](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_3/hidenp) | [rostring](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_4/rostring) |\n| [rot_13](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_1/rot_13) | [ft_strrev](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_2/ft_strrev) | [lcm](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_3/lcm) | [sort_int_tab](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_4/sort_int_tab) |\n| [rotone](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_1/rotone) | [ft_strspn](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_2/ft_strspn) | [paramsum](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_3/paramsum) | [sort_list](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_4/sort_list) |\n| [search_and_replace](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_1/search_and_replace) | [inter](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_2/inter) | [pgdc](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_3/pgdc) |\n| [ulstr](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_1/ulstr) | [is_power_of_2](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_2/is_power_of_2) | [print_hex](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_3/print_hex) |\n|          | [last_word](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_2/last_word) | [rstr_capitalizer](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_3/rstr_capitalizer) |\n|          | [max](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_2/max) | [str_capitalizer](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_3/str_capitalizer) |\n|          | [print_bits](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_2/print_bits) | [tab_mult](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_3/tab_mult) |\n|          | [reverse_bits](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_2/reverse_bits) |\n|          | [snake_to_camel](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_2/snake_to_camel) |\n|          | [swap_bits](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_2/swap_bits) |\n|          | [union](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Level_2/union) |\n|          | [wdmatch](https://github.com/PedroZappa/42ExamPrep/tree/main/Rank_2/Rank_2/Level_2/wdmatch) |\n___\n\n### Exam Rank 3\n\nFor Rank 3 Exam you will have to solve a \"mini\" `ft_printf` or `get_next_line` exercise. \n\n___\n| `ft_print`       | `get_next_line` |\n| -------       | ------- |\n| [ft_printf](https://github.com/PedroZappa/42_ExamPrep/tree/main/Rank_3/ft_printf) | [get_next_line](https://github.com/PedroZappa/get_next_line) |\n\n\u003e [!Warning]\n\u003e\n\u003e I'll be updating this repo with more tips and resources as I progress through the Common Core.\n\nGood luck with the exams!\n\n\u003cdiv align=\"center\"\u003e\n\n### License :copyright:\n\nThis work is published under the terms of \u003ca href=\"https://github.com/PedroZappa/ft_printf/blob/master/LICENSE\"\u003e42 Unlicense\u003c/a\u003e.\n\n\u003c/div\u003e\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eget to top\u003c/a\u003e)\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpedrozappa%2F42_examprep","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpedrozappa%2F42_examprep","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpedrozappa%2F42_examprep/lists"}