Three... 2 is dying (and should be!)
As for resources, you can already program, so ... Browse the manual (it is quite good), look at some pythonic* style videos* , browse the giant standard library and do some stuff with it... (the last part is key)
= yes, that is a genuine keyword, that can be googled and youtubed..
* * = this is good https://www.youtube.com/watch?v=wf-BqAjZb8M
As for "2 works as good as 3", yes, if you only care about English text.
Bytes are what is on the disk, byte value 229 could be "å" (in latin1) , "ĺ" in latin2, or different things in other encodings... Only the lower 127 are "standard" (unless you are in EBCDIC on a mainframe where code 78 is "+" instead of "N")..
If you know the encoding of the bytes (i.e. what language/text type are they), you can "decode" the bytes to a string type, which is unicode glyphs (not utf8, which is also a byte encoding)... When you want to get back to bytes, you just encode it again....
I don't get it, why people find it so hard...