I'm a physicist and currently a student at the 42 Heilbronn coding school. 42 Heilbronn is a programming school with a peer learning based educational model, where I've been learning to code by working on different projects, mainly in C and C++. The project-based approach employed by 42 Heilbronn fosteres a high level of self-organization, while the peer-to-peer learning model requires critical social skills. After completing a 6 month internship, in addition to the core curriculum, I am looking for an opportunity to put my skills into practice.
My fellow 42 student tjensen42 and I built a ray traced 3D renderer in C. Using a path tracing algorithm, we implemented fundamental physical and mathematical concepts to generate beautiful images. I was immediately fascinated by this direct link between physics and code.
Together with my peers tjensen42 and khirsig, I created a HTTP web server in C++. We used Nginx as a reference, and our server implements the HTTP/1.1 standard. This project taught me a lot about the HTTP protocol, but also about how the Internet works in general.
To familiarise myself with the C++ STL and template programming, I implemented the C++ containers vector, map, stack, and set from scratch. This includes creating a red-black tree as an underlying data structure for map and set, as well as iterator systems and utilities like std::pair or std::enable_if.
As our first major project at 42, tjensen42 and I coded a small bash-like shell in C. Its features include several builtins, redirections, pipes, subshells, variables, and other standard functionality.