I've been thinking about how one should teach Abstract Algebra and it seems to me that John B. Fraleigh's book "A First Course in Abstract Algebra" is exactly what I would write if I confidently knew the subject and if the book were not written yet.
Of course, there is room for improvement (and I think that I may have alternative proofs; in fact, I'm fond of multiple different proofs for a given fact, as they shed a different light on the matter being discussed) and I would change some demonstrations or condense some of them, but the general outline of the book is superb.
On the contrary, I think that, to foster the abstract thinking of students that may not yet have the so-called "mathematical maturity", one should give them "poor" algebraic structures (satisfying just a few axioms) and then deducing things almost "mechanically". This "mechanic thinking" and "dealing with the unknown" is quite important to dissociate the meaning that students are used to assign to objects that they already know.
For instance, what is the "fun" (or even the motivation) of proving that 1 is greater than 0 on the integers? The students, quite correctly, assert that this is "obviously true", for they can "draw", say, a ball on a sheet of paper and no ball on another an say that indeed, given their intuitive knowledge of what an order relation is, that there is no need to prove anything!
Only when presented with structures where this is not true is that one would appreciate the fact that there exists an example of an infinite integral domain (with unique factorization, which is also not to take for granted!) is that the proof of such a fact is perceived to be important.
Otherwise, if "everything is normal", one could think that "intuitive" facts are indeed true and even disregard the necessity of proofs.
Beginning an abstract algebra book for freshmen or sophomores that had only "computational" courses on Calculus up to that point (what an unfortunate fact!) with a discussion of groups and spending a good amount of time with proofs on elementary facts, leads the students to develop the frequently cited prerequisite "mathematical maturity" needed for understanding anything non-trivial that needs a good amount of abstraction (and this includes the proper programming of computers, of course).
This should not be interpreted as an attack on texts that cover rings before groups (or weaker structures). It just means that I think that, as a pedagogical tool, using rings first may not be as "eye-opening" (for the abstract world, and, therefore, for Real Mathematics) as other approaches.
It is completely understadable for a graduate (or even advanced undergraduate) text to provide a "fresh" view on Rings (and the pathological cases should be included), say, by giving, as motivation, the problem of writing primes as sums of two squares (which can be viewed as a problem of factorization on the Gaussian Integers integral domain).
I hope that other instructors actually read this and stop to think about the possibilities, even if they don't agree with my views (just causing thought is enough for me).