Before coming to Epitech Barcelona I had some meetings. In these meetings the staff told me that the first 2 months of my exchange were going to be very difficult. Now that i have done it i can say for sure that they were not exaggerating. We were at school from 09:00 until 20:00 every day except on sundays. But even after school or on sundays you had to work on your code because you had to finish everything. You had daily tasks, weekly assignments and a so called: Rush on saturdays.
Luckily part 1 only lasted for 3 weeks. In these three weeks we learned the fundamentals of C and Unix, in addition to that we also learned to make shell scripts, Makefiles and had learned to build our own library.

Setup of Course
During this course we could not use internet. We could only use man and other provided material.
From the first day we started getting tasks: Daily tasks. These could be simple or very hard. Before the start of each day you would have to clone an empty repository from github. In this repository you had to push all your work. And if you had pushed it Epitechs own robot called: moulinet would check your work. Moulinet was and still is my biggest arch-enemy (btw). Because it checks for codestyle, the output of your program, your library, headerfiles and all else that was specified by the task. But only 1 little coding style mistake would not validate your whole day. If your codestyle was okay than it would check your output, and mulinet tests all possibilities so you should have tested your code thoroughly in order for it to pass all tests. Lets just say me and moulinet have some unfinished business.
Unix
We started the pool by learning some of the basic commands in order to use the GNU/Linux terminal. For me some commands were different because i use Arch (btw) and Epitech uses Ubuntu as their default distribution. This was luckily not that big of a challenge because of my other project this summer: switching from Windows to GNU/Linux. After learning the basic commands we learned how shell scripting works. Giving us the power to link multiple commands and maybe even automate some things. After this we moved on to learning C.
Fundamentals of C
We started off with the simple stuff. Variables functions etc. After this we learned how to make our functions recursive and after that learned about structs in C. After a while we had finished a lot of tasks. And in these tasks we would sometimes create functions that would be useful to us in the future. And with that said we learned how to create our own library that we would have to use for the rest of the semester. In this same day we also learned about headers and had to write a build.sh script that would build this library. After making the build.sh we learned how to create a Makefile to build our library. With this new knowledge we got to the topic of tests, more specifically unit tests and had to be able to run these tests with our Makefile. Then we learned how to use linked lists which we will use extensively throughout the semester and throughout our careers.
After these difficult days we finally got to the end. We got some time off from campus but were advised to still work on our library. Because this is something that we will have to use a lot.
Thoughts
The Cpool part 1 was a very ‘interesting’ experience. I did not expect it to be so much work but in the end i think it is a good way to learn a new language. I’ve noticed with my other experiences in learning new programming languages that it always feels like we stay at the basics too long. Here we learned a completely new programming language and can now actually work on projects in 3 weeks.
Thank you Epitech!
https://github.com/tobisphere/epitech_lib

