I am currently searching the free music sites for some boss, menu and level music for the game. May add music and sound effects for the next release if time allows.
They don't teach you this in school. Allot of this is learned through hours of sitting in front of the computer trying millions of different combination's. Doing stuff like this is however good for your professional portfolio if you are looking for a programming job.
However the concept is simple if you understand arrays, for loops and timers. There are 4 arrays. the stuff[500], explosions[30], power ups[10], and the bullets[80]. Each of those arrays contain structs with fields such as color, x, y, and z. Technically keeping certain things in different arrays offers various benefits, such as reducing the amount of looping that I have to do and allowing me to freely keep track of the things I can recycle.
You may want to watch these videos;