> I still struggle to understand basic concepts like:
+ Baluns + Why does the height of an antenna effect its effectiveness? + Gain + Circuit design + Transistors

That's a lot of topics. People spend a lot of time understanding each one. Keep working at it, you will traction eventually.

I'll try to make some helpful comments.

> Baluns

Well, a lot of the confusion comes from the fact that two fundamentally different widgets are called "balun". A form of transformer, and a form of choke. Bottom line: to feed a balanced antenna with an unbalanced feed line (coax) you want to keep common-mode currents off of the shield. The electric field should be entirely contained between the inside of the shield and the center conductor. The choke style balun (stack of ferrite beads) creates a high impedance on the outside of the shield, so the current flows inside. The transformer style accomplishes the same goal by different means. Usually a transmission line wound on a toroid.

> Gain

A finite amount of power is going into the antenna. Nothing you do in the antenna can increase the power, but you can direct it. It almost always works out to optimizing the phase difference among different radiating elements such that you get constructive interference in the desired direction, and destructive interference in undesired directions. To visualize, gin up some code that plots two sine waves of the same frequency and their sum. Alter the phase of the two source sine waves and observe the result. A 3 element Yagi-Uda works on this principal: The "reflector" is a bit longer than 1/2 wave, so the energy that it absorbs in the near field is reradiated with a phase lead w.r.t. the driven element. The "director" is a bit short, and reradiates with a phase lag. The radiated energy from the elements sums constructively going forward.

> height above ground

Some energy from the near field impinges on the ground, and is reflected with a phase reversal. It will sum constructively or destructively at various angles above the horizon as a simple trigonometric function of height. (N6BV's HFTA - HF Terrain Analysis program -- uses GTD - General Theory of Diffraction -- to model antennas above ground terrain. Good fun for optimizing antenna height.)

> Circuit design

Start with circuit analysis. Once you understand the building blocks, you will be able to synthesize something with them. This should feel a lot like programming eventually. Start by learning how to read simple schematics. The best advice in this regard that I ever got was from my first semester circuit analysis prof: "Keep redrawing the circuit until it makes sense." Which means: redraw simpler circuits representing each regime of operation. Start with DC: caps are open circuits, inductors are shorts. Draw that. Now you understand the DC bias, or can figure out the bias voltages pretty easily with Ohm's law. Then redraw at the operating frequency with freq-dependent impedances.

> Transistors

A bipolar transistor is a current-controlled current source, and FET is a voltage-controlled current source. So to analyze a transistor, you have a bunch of things to draw: the input side at DC to find the operating point (bias) the input side at AC to understand the controlling signal, the output side at DC to understand the operating point and output impedance, and the output at AC. Also identify the interstage coupling elements. Not sure if my comments on transistors are helpful yet until you are more confident at circuit analysis. Keep at it! It isn't so different from programming, just a different grammar.