|Don't take this the wrong way, but I graduated before C++ was really being taught.
So I took a C++ Class from a local university. Now, I had well over 250,000 lines of C under my belt, and I remember once explaining the "Algebra" of pointer operators to the professor, and him taking some notes, saying "Wow, that makes sense now"... LOL...
But when I did my homework, I did not copy/paste any solutions. 1990s, admittedly...
When I did turn in my solutions, I had written Full-Board Test Harnesses that would test the software quite thoroughly, separate from the software itself. Because I was a BIT BORED with the simplistic assignments.
1) Stop copying other peoples solutions, create your own, debug them, and PROVE THEM correct
2) Solve tough problems without searching for the answer: Here's one:
Given a dictionary of words, and VERY LITTLE computer memory (an assumed constraint), output the dictionary in such a way that for EVERY Word on a line, on that same line, separated by a space is every word that can be created as an ANAGRAM (with the exact same letters) of the first word, and you have to find EVERY anagram.
Anagram: NAP/PAN, DIARY/DAIRY, PIT/TIP
3) Although it has been done, write a program that allows a user to visualize various sorting algorithms. Then TRULY identify the logic difference that separates a Bubble Sort from a Rock Sort.
(Most people actually write a Rock Sort, calling it a bubble Sort).
4) Volunteer. Go grab and rewrite an open source project (I did this at University rewriting a Grammar Tool from Fortran into C as an independent study and donated the source so many could use it).
5) Solve Real World Problems. Go find a company/business that needs your amazing skills and actually build their software. Learn to take specifications, determine needs from wants, learn to visualize a user interface that's appropriate to the CONSUMERS (not the programmers), etc.
You sound really smart. But you are MISSING the point.
All software is about COMMUNICATION:
-> The GUI Communicates TO the user
-> The Inputs Communicates TO the program
-> The program Communicates TO the database, and others through notifications
So, when I hear you complain about all of these cut/paste solutions. What I hear is:
I can't stand having conversations with people. They are all the same conversation, over and over.
It's truly because YOU are BORING, and you are trying to get the right answer. You have NO FOCUS on learning, experiencing, and truly listening.
Focus on those things, and you will NEVER be bored again.
Every day... Make SOMETHING better!