Readit News logoReadit News
Posted by u/jean_lannes 2 years ago
C++ Project Ideas for CS Student
I'm a CS student who's struggling to find internships, and I think this may be due to the underwhelming state of personal projects on my resumé. At the moment, the main C++ project on my resumé is an implementation of Josh Cates' DHash protocol using Boost ASIO. Can anyone recommend some projects that would help me stand out as a candidate? Right now, I'm considering building a chess engine or a basic SMT solver, though I don't know if employers would find these particularly interesting.
dauertewigkeit · 2 years ago
Head to your local physics/engineering/geophysics/climate physics department and offer your help. They will have tons of C++ code requiring work. They will even pay you while you gain experience.
jean_lannes · 2 years ago
That's a decent idea, thanks
LabMechanic · 2 years ago
My personal suggestion:

Make sure you are able to set pixels and create audio samples (sine function sampled over a discrete time steps). Also make sure to store the results as PPM P3 (very simple text-based image format) and WAV. Some inspiration form Wellons: https://nullprogram.com/blog/2017/11/03/

Then you can implement a ray tracer, a rasterizer or audio generator.

Other ideas:

  - implement your simple neural network learning XOR
  - implement your hash table or your version of std::unordered_map (array + 
    hash function + tombstones)
  - arena allocator
  - dynamic array or your version of std::vector
  - a circular/ring buffer (that you can also use as a queue/stack)

__d · 2 years ago
If you're wanting an internship, demonstrating an interest in a specific field might help attract people's attention.

I'd suggest looking for a project with a little more specific relevance to a target field (unless you want to work for eg. chess.com, I guess)?

jean_lannes · 2 years ago
What sorts of target fields do you think would be worth looking at? I'm very interested in compilers, but my sense is that there isn't much entry-level work there.
__d · 2 years ago
Compilers is a pretty small field, yes. Perhaps developer tooling in general might be a bigger pond? You could try some experiments: writing a language server or a debug server, look into some static analysis, something regarding software manifests?

Otherwise, looking at C++, there's work in finance, gaming, embedded, scientific computing, (and others) ... all quite different areas, with different skills and experiences that would be relevant. You might also think about which companies (or even countries) you'd like to work in, and consider where you'd fit.

Do some research on presentations for C++ conferences: where do the presenters work? Look at open source libraries -- who sponsors the projects? Where do the people work for their day jobs?

If nothing else, doing a bit of thinking and research will give you a good story for why you did a particular project, or tried for a particular internship. Almost anything is a better answer than "it fell in my lap and I had no other ideas" (or "some rando on HN suggested it", for that matter).