As an amateur I always default to CircuitJS, it's a great learning resource
Circuitjs is superb for exploring electronic concepts. The quality of the simulation itself is subpar, though mostly good enough. The ability to save a circuit to a url is another thing that sets it apart, and is invaluable for communicating concepts.