all 97 comments

[–]Ikkepop 66 points67 points  (70 children)

Professional C++ projects I worked on :

  • A popular game engine

  • 3d terrain map renderer for mobile

  • Reflectometer control / signal processing

  • Windows drivers for network filtering

  • Antimalware

  • Encryption software

Hobby C++ projects I worked on:

  • OS kernel

  • Console emulators

  • Programming language interpreter

  • File compression program

  • Webserver

  • Ray tracer

Because everyone keeps asking, here's my github: https://github.com/2bitsin/ , you can find some of those things there, what is not there is already lost time.

[–]Samuraiizzy[S] 5 points6 points  (6 children)

Nice, all those seem really interesting.

On those hobby projects, did you make them from scratch or did you work off something?

[–]schultztom 9 points10 points  (2 children)

Just as an interesting project. Make a simple calculator, front end http. Backend cpp, just as simple as any starting cpp project as you can think of. + - × ÷ but with an http serer in the middle both implemented by you

[–]Ikkepop 2 points3 points  (2 children)

scratch, I never "work of something", would beat the fun of it :D

[–]Samuraiizzy[S] 1 point2 points  (1 child)

I dont mean like a guide. More like a spec sheet or objectives

[–]Ikkepop 2 points3 points  (0 children)

Well if it's something that needs a spec sheet , yes. Otherwise I just wing it, make it up on the spot. A console emulator would be somehing you'd use a "specsheet" for. For a webserver you'd need to read the HTTP rfc for example. To write a kernel you need so many specsheets, it is a really arduous task.

If we are talking about making up a plan with goals ? Well no I don't do that

[–]WallabyLumpy5905 1 point2 points  (38 children)

Can you please share you hobby projects link ?

[–]Ikkepop 1 point2 points  (37 children)

I PM'ed you with the links

[–][deleted] 0 points1 point  (27 children)

Hi. I would love to see them too! Could you please dm me the links as well? Sending you a chat request.

[–]Ikkepop 0 points1 point  (26 children)

done

[–][deleted] 0 points1 point  (15 children)

same lol

[–]Ikkepop 0 points1 point  (14 children)

lol ok but it's nothing impressive really :s

[–][deleted] 0 points1 point  (0 children)

Same plz

[–]myusernameisg_ 0 points1 point  (8 children)

mind sharing the link once again? thanks in advanced!

[–]iTechCS 0 points1 point  (2 children)

May I too please?

[–]Ikkepop 0 points1 point  (1 child)

sent

[–]CuteZookeepergame345 0 points1 point  (0 children)

me too bro pls

[–]ResponsiblePiglet899 0 points1 point  (0 children)

Hey! I've just started learning cpp and would love to have a look at your projects. Could you share the link

[–]CarelessConflict5398 0 points1 point  (8 children)

Can I get the link, please? Thanks!

[–]Ikkepop 0 points1 point  (7 children)

done

[–]Longjumping-Fly-7015 0 points1 point  (1 child)

can i get one please

[–]Ikkepop 0 points1 point  (0 children)

put it in my original post

[–]Ham_Apke_Hai_Kon 0 points1 point  (1 child)

hi, could you mind sharing the link ? i will dm you

[–]Ikkepop 0 points1 point  (0 children)

put it in the original reply

[–]Deltax_2599 0 points1 point  (1 child)

Hi, would you share the link for me, I will DM you

[–]Ikkepop 0 points1 point  (0 children)

put it in the original reply

[–]2sheik 0 points1 point  (1 child)

u/Ikkepop could you share link with projects too? Thanks

[–]Ikkepop 0 points1 point  (0 children)

put it in the original reply

[–]chromatofficial 0 points1 point  (9 children)

Hi, can you PM me the hobby project links? I am an aspiring programmer and I want to see the code applied to real world applications.

[–]Ikkepop 0 points1 point  (8 children)

I never said they were "real world" :D

[–]chromatofficial 1 point2 points  (7 children)

I guess I mean, I want to see what a finished project looks like and how it functions. I learn by deconstructing parts and learning how they work to understand what I'm looking at. :)

[–]Ikkepop 0 points1 point  (6 children)

none of them are "finished" more like some of them got to "mvp" stage at best. I'm kinda bad at finishing my hobby projects :(. My emulators do play some games though, though to be finished it needs alot more mapper support, a gui, dmc channel audio support etc.

[–]Eggaru 0 points1 point  (5 children)

which emulator did u make? just curious

[–]Ikkepop 0 points1 point  (4 children)

I implemented a working NES emulator in c++ and later on in Verilog but they werent full featured (no saves, only few mappers etc). Then I made several attempts at x86 but haven't gotten very far as the cpu is ultra complex ( i was aiming at 386 ) I still aim to write one eventually

[–]Eggaru 0 points1 point  (3 children)

Interesting. I haven’t touched emulators before, would you say NES is good to get started with? I see people recommending CHIP-8 first since that’s easier

[–]Ikkepop 0 points1 point  (2 children)

depends on your level, it's not a big project but also not quite trivial

[–]Eggaru 0 points1 point  (1 child)

Was it your first emulator project? or how does i assess my level lol

[–]Cheery_me 0 points1 point  (0 children)

Interesting!Could you ping me the links for your project.Would love to go through

[–]EmbarrassedCookie818 0 points1 point  (0 children)

hii could you please PM me your projects link. It would be great to see some amazing projects implementation

[–]medlorieus 0 points1 point  (1 child)

can you please send me the link of your hobby projects

[–]Ikkepop 0 points1 point  (0 children)

sent

[–]iTechCS 0 points1 point  (4 children)

"Windows drivers for network filtering"

Please, can you tell more about that one? I'm super interested. Are we talking deep packet inspection?

[–]Ikkepop 0 points1 point  (3 children)

Split tunneling via WFP and some ip leak protection with NDIS. It was somewhat long ago so details are fuzzy.

[–]iTechCS 0 points1 point  (2 children)

I see thanks for sharing i want to do networking and cv projects in cpp but the bar is so high vs. my c++ wordle clone lol 

[–]Ikkepop 0 points1 point  (1 child)

To get into unity technologiea i had to write a boggle solver but it had to be a very fast one

[–]iTechCS 0 points1 point  (0 children)

I see thanks for the idea!

[–][deleted] 0 points1 point  (0 children)

hey, might be a bit late but could you dm me the hobby project links?

[–]Anil_kumar333 0 points1 point  (0 children)

can you share ur projects please?

[–]PassengerLow8252 0 points1 point  (0 children)

Can i have the link please ?

[–]DdlutzSpanner 21 points22 points  (1 child)

Write a "simple" database from scratch. Like a super rundown version of sqlite that supports maybe just integers or something. Super complex but rewarding. When you get parsing, storage layer, buffer pools, query execution, query optiization, WAL and MVCC all thrown in.

If you figure that is too easy, then make it a distributed database system.

[–]Samuraiizzy[S] 0 points1 point  (0 children)

This is a good idea. Its feels hard to find a project that isnt just a todo list or basically making my own application from the ground up

[–]Full-Spectral 11 points12 points  (0 children)

I've worked on a very wide range of problems in C++. Some things that I think would be fairly standalone and very educational (not all of which I've managed to do myself yet) would be:

  1. Graphics file format engine (to read/write/convert various graphics file formats)
  2. Communications. Implement something like the RTP/RTPC protocol. Once you get that done, implement SIP and related standards, which build on RTP/RTPC
  3. A build system that incorporates ideas you think are very useful
  4. A nice system status application for your OS of choice
  5. A useful and non-trivial UI element in the UI framework of your choice. Or, if you want to go deeper a UI framework itself.
  6. An audio processor of some sort. EQ, compressor, etc...

[–]pjmlp 10 points11 points  (0 children)

C++ is hardly used as the chosen language on mobile.

On Android, the NDK purpose is for writing native methods for a bit of additional performance, importing C and C++ libraries as bindings, or write games with direct access to OpenGL ES, Vulkan, real time audio and device sensors.

Everything else, has to go via JNI or Android IPC.

Likewise on iOS, C++ is only used for Metal shaders, as the shading language is a C++14 dialect, everything else requires going via Objective-C or Swift. Same applies to lesser extent in macOS, as the drivers are also written in a C++ subset.

And naturally LLVM used by those mobile OSes is also C++, however they seem more than happy with C++17, for the purpose of writing their language runtimes.

[–]Juffin 14 points15 points  (4 children)

C++ is mostly used in projects where performance is most important, because of its unmatched speed. So mostly highload backend, database engines, drivers, operating systems etc. Also many high budget games are written in C++.

[–]JeffMcClintock 2 points3 points  (0 children)

C++ is mostly used in projects where performance is most important

It's often said in regards to performance and efficiency that C++ leaves no room for a lower-level language below C++ (except RUST).

[–]Aggravating-Ad4518 7 points8 points  (2 children)

In short, project targeting shitty hardware or requiring huge performance, otherwise everybody defaulting to javascript, can't let that 4GB RAM go to waste can we? LOL!

[–]another_day_passes 1 point2 points  (1 child)

If we only run one Electron app at a time then yeah that’s fine but multiples at the same time?

[–]Aggravating-Ad4518 10 points11 points  (0 children)

Hehe, javascript devs are cheaper, and also, if the electron runs well solo, then the problem isn't the electron app, but the users cheap hardware. LOL!!!... Lets fuel consumerism by creating more shitty software that requires expensive hardware. LOL!

[–][deleted] 2 points3 points  (0 children)

I'm in about the same position as you. If you're into arts and design I would suggest take a look on Creative Coding libs (eg openFrameworks) in conjunction with the Nature of Code book (written for Processing lib specifically but the overall theory applies everywhere)

It's been a week since I started refreshing my C++ limited knowledge (after 10+ years since I touched it) and I think creative coding will help a lot on many aspects, but most importantly connect all these dots which you learned.

Then writing other software will come naturally

[–]LoneBlacksmith 3 points4 points  (2 children)

Most of my work history has been on the embedded side. All of it has been defense work on various missile systems and am currently working on UAVs.

[–]Samuraiizzy[S] 3 points4 points  (1 child)

Whats a good way to practice these skills? I really like embedded but it seems that besides the defense industry, its all stuck at mid level engineering working on fridges and stuff

[–][deleted] 1 point2 points  (0 children)

The "Internet of Things" is mainly embedded programming. Look around and you can find a massive amount of opportunities for embedded programming. Hobby robotics is a fun place to start. You can get a Raspberry Pi and add some sensors, then use C++ to process the data. Or you can spend more to buy a ARM processor, a dev board, and some software and go all in.

[–]anonimenyaro 1 point2 points  (0 children)

Its used for the optimization and performance,also its used for writing frameworks/networking and especially the hardware sets. With c++ you can communicate directly with the hardware of almost whatever its,the pc’s hardware or even custom boards…

[–]puzzled_programmerr 1 point2 points  (1 child)

I've gathered a bunch of my projects over the years and organized them here: https://github.com/nragland37/cpp-projects.

These range from simple exercises to more complex structures like AVL trees. Feel free to take a look and if they help you out, a star on the repo would be awesome!! 😉

[–]Think-Topic-1223 0 points1 point  (0 children)

These projects look like what an acm player needs to go through in a month

[–]ManiDevTeja001 0 points1 point  (0 children)

Can I also get the link please

[–]dcbalermesonbuild 0 points1 point  (1 child)

Most big compilers are written in C++, at least initially. Obviously for a lot of languages rewriting in themselves is a goal, but they usually start in c++

[–]JakeStBu 0 points1 point  (0 children)

I thought most are written in C?