Eliezer Yudkowsky's sequences are good. They're not perfect, but in my opinion you'll have a hard time finding a better resource on good reasoning.
An important part of good reasoning is applying your ability to find flaws in your own reasoning. You need to ask "why do I believe what I believe?" and "if I was wrong, would I be able to notice?". Answer those questions honestly always.
Hold yourself to a higher standard than you hold others. The goal of good reasoning is to find truth, not dismiss others.
You need to be able to be able to keep a distinction between what's right and your own actions. Often you'll learn that you're doing something wrong, and decide to keep doing the wrong thing for now because doing the right thing is too hard. By knowing that you're doing the wrong thing and accepting it, it will be easier to correct your mistake later. This is better than doing mental contortions to try to justify why bad things are actually good.
It's not possible to reason without using at least some assumptions, and it can be hard to determine what good assumptions are. There are no foolproof assumptions, so we need to choose those that seem most solid.
I think the one basic assumption that has gotten me farthest is the idea that everything is reducible to physics. This assumption is well-supported by science, since we have found pretty much nothing which cannot be reduced to physics. There are some things we don't fully understand yet, such as the human brain, but even they seem to be reducible to physics, given that they are composed of cells which are composed of atoms. Anything which contradicts this has a very high bar of evidence to clear.
Thinking in terms of what's actually physically there is enormously fruitful. Don't be distracted by words, which are only meant to point to things out there and can be incoherent. Ask what is actually physically there. Doing this dissipates many, many, philosophical puzzles.
Learn classical formal logic. In principle, all knowledge can be modelled using classical logic, and knowing how you could model a bit of reasoning using logic is very productive. Beware that many things are very complicated to model using logic, requiring modelling things like probability and large parts of physical reality. "Everything can be modelled using logic" does not mean "everything can be easily described using short logical statements".
When logic seems to fail, it's pretty much always because you haven't modelled whatever you were talking about correctly. At that point go back to asking "what is actually physically there", and see how it differs from your model.
To the best of your ability, always make sure that your reasoning process is designed so that it says something is true if and only if it actually is true.