I am programmer who studies electronics for hobby (but a serious one, not just for fun). I consider myself to have a reasonable knowledge on digital electronics. For instance, I already described processors, simple GPUs, network cards, RAM controllers etc in VHDL and then to a FPGA. Regarding digital electronics, this is the kind of knowledge that I have so far.
Now, I want to improve my knowledge in analog electronics. So far, I have studied: transistors, bjt amplifiers, opamps, RLC circuits, passive and active filters, simple linear fonts and some classical ICs such as 555 for instance.
But what I still missing is the ability to read and understand an anolog circuit schematic in the following sense: when I see a digital circuit schematic, it is easy to identify where are the inputs and the outputs, how data flow through the circuit and how each stage transforms the input signal. For instance, the following image is easy to reason in terms of inputs and output.
But when reading an analog circuitry schematic, I can't, yet, divide the schematic in blocks/parts by myself even with careful studying. For instance, the following schematic (a SPMS):
Because of so many in series and parallel conections and because current can flow in both ways in some parts of circuits it is hard to me reason in terms of input and output.
So here is my question: is there a way to read and interpret analog circuit schematics in terms of input/output in the same way that is possible to digital schematics (logic gates, for instance)? Or for analog circuitry there is another way of reasoning about the circuit? In other words: is there a systematic way, an algorithmic way, to read and interpret analog schematics or each circuit requires an ad-hoc analysis? Is there an abstraction that electrical engineers use?
What I have tried so far: to reason about a circuit using the abstraction of signals; try to split a circuit in terms of buffers (because of the input/output impedance) but this hasn't worked well so far because: not all circuits have buffers or work with signals. I've also tried to split a circuit by first looking at the IC's and then the discrete components around it. Then I would go on the IC's datasheet and read for instructions there. But this also didn't work for all cases because not all circuits have ICs.
My goals are: given a schematic, try to identify functional blocks: filters, amplifiers etc and; to be able to design (for me this is the most important goal) schematics of such complexity as the SPMS above. So for both cases I need to understand how one stage is connected to another.
I beg your pardon if my question is a little vague. As I said, I am a programmer, not an electrical engineer and I still lack keywords and concepts. If possible, please help me to improve my question.