I started working with C/C++ around 96. At first I was self-teaching with a Visual C++ book, and later it became the basis of all projects throughout college and graduate school. They probably are the most important languages to learn since they are the basis of most systems and libraries. It also helps you understand certain low-level aspects of a computer that later make your programming more efficient.
I continued working on C/C++ projects throughout my work experience. I do believe that, since software has become more and more complex, programmers need tools and languages that reduce that complexity, and consequently I now prefer Java, C# or Python for personal projects. With higher-level languages, the development and debugging time can be greatly improved.
Personal & school projects
- Re-implementation of parts of the libc library
- Re-implementation of numerous network utilities in C: FTP server, IRC peer, News Reader client
- Unix Kernel: new system calls, new custom filesystem, modified IP stack
- Parts of a Tiger language compiler in C++
- A 3D application to visualize a computer network structure, using C++, OpenGL and GTK
- Unix Shell program mimicking Bash, written in C
- 3D engine for video-game using C++ and DirectX. It handles graphics, collisions and physics.