Learning the Basics of Circuit Design
Sounds to me like you have no knowledge of the fundamentals of electrical engineering. This is fine as you have to start somewhere. However, it is no easy task and you won't be able to just create something in a few days like how you can pick up the basics of a new language, or use a new library in software development.


  How do you know when you need a capacitor, transistor, resistor, diode, or any other component. I need the basics, but not the very basics. I know what the components do, just not how they dance together.


This is a very software paradigm of thinking, i.e. you have a function you'd like to call for a specific reason and you take it like a blackbox and just connect all your modules together. In hardware, this is not the case, if you understand the basic fundamentals, like knowing exactly how a capacitor charges/discharges will allow you to know how to balance larger modules together. A good starting project to do is to just build a 555 timer (or basic any astable multivibrator with a capacitor), which will teach you how a capacitor charges and how you can use that to compare it to other voltages.

When you know how the individual parts work and any parasitic issues that can occur in each one, you can then understand the numbers in a datasheet, which will allow you to figure out what will prevent things from "releasing the blue smoke".

I'll give you an example: the inductor. You charge it up, it acts like a straight, but the moment you cut off current abruptly i.e. if you're using a squarewave oscillator, it can cause a large spike in voltage, which will fry your other components. While this maybe not produce "blue smoke", you can still fry components if the voltage spikes larger than the rated values.


  Parts. Where do I get cheap parts en-mass, what would be a good selection to start out with, and does anyone sell a kit like that (hundreds to start, not dozens). I know ebay is a good source, but what should I pick up as a good starting selection?


Depends on what you want to learn. To put it simply, there are two large fields in EE: digital design and analog design. They both have very different patterns of thinking. Since you have a CS background, I suggest going to digital route first and start adding analog components as you go. You grab an arduino, program things, and sort of understand how signals affect digital components. This is opposite to traditional EE knowledge as usually they teach analog first.

To get parts, I'm in North America, so I usually just ebay everything. It usually comes out to the best bang for the buck. The key words you usually want to go for are "assorted [component]", "[component] pcs", "[component] set/kit". Usually for common parts like caps, resistors, or even BJT transistors, you'll find them in the hundreds for a few dollars (varies from $4-$20) spanning across many values. Things like ICs (like the 7400 series or 4000 series ICs) are a lot more expensive due to the fact that they're all quite specialized and you usually figure out what you need for a project before you buy. Usually you can get a large volume of a single chip for cheaper than an assorted pack. But if you do want a large number of different types, you might want to look for something like this

Anyway, just want to end off with saying people spend their entire lives studying a small field in electrical engineering, and there's a reason people go to school for it. There might be reasons why you don't want to attend some type of formal education, but there really isn't anything else that's structured well enough for you to understand what I feel like you're trying to learn. People who can actually teach you well don't have time to make videos on youtube, and it's pretty much up to you to piece all varying bits of information together that may require more work than it's worth.

But the best thing I can tell you to do to learn on your own: pick a project, find the parts needed, buy parts, and just put it together. If you break something, you'll find out why, because you'll have a specific question that Stack Exchange can actually objectively help you with.