I found the trick was to get a job in software development. That solved the problem of trying to find things to do, other people do that hard work and bring me requirements. They even pay me for it too! I don't know what you're after, but if your aim is to go into software development as a profession then read on. Otherwise skip the rest. Honestly, if you have the fundamentals down you can probably find an entry leve…
Taking cheap shots at your coworkers is the true way to get outpaced in career development. If OP is looking for career advice, this kind of attitude is not good advice. Humility is the right path.
The 20% is not accurate, at least in the U.S. in my personal experience. Requirements-gathering, software design and implementation is maybe around 60% of your job at most companies in the U.S. At the end of the day, you get paid to connect the business domain to the technical details of software that will solve the problem; the other 40% of the time you are not doing technical things, you are responsible to communicate, attend meetings, give updates, ask questions, and manage projects.
At least, after you've gained some experience. Being a good programmer is how you get the job in the first place. You have to build up the rest of the package, which is very doable if you are humble and join the right company.