rmoe I have considered that statement a lot, and you are certainly not the first one to tell me to learn other languages first. I have looked at and spent a great amount of time on Python, and I have looked at a few others, however, I found that I strongly dislike higher level languages, especially python. While I will agree C can be inefficient due to debug time and the possibility (or more accurately guarantee) of errors, however, I found that C has made a lot more sense to me and has proven far easier to learn than higher level languages. This is purely personal preference. I will agree, that ultimately I will need to have higher level languages as well.
One pseudo-analogy which might explain this (or might leave you permanently confused) is that I work better with more abstract and less symbolic representations of things. For example, I am the type of person who could easily find the roots of a polynomial equation, but I couldn't transform a shape to save my life. If this just confused you, I apologize.
On a side note, I did learn TI-Basic, a basic-like language for Texas Instruments calculators, which gave me an initial understanding of programming (conditionals, variables, loops, etc).
I actually have taught C programming and I would think that I know a thing or two about the problem field at hand. But, no doubt, feel free to do whatever you please.
If you don't like Python, well, there are lots of other more or less high level languages out there.
What's the difference between C and other imperative typed languages anyway? Seen from a certain perspective it's more or less syntax and a couple of specifics. In the end it's
always about implementing algorithms and data structures - et voilà, here you have your "more abstract representations of things"; even in Python (but maybe you meant "cryptic" or "cool"?).
So, evidently we have to look at more and other factors to find the right language for you or for a project.
Let me shine some light on C in some important regard. One point where lower level languages, in particular C, are strongly different from higher level languages is what many call "housekeeping" or, more abstract, the distance between an algorithm and it's implementation (in a low level language). In C, housekeeping cost is very high - and so is the power. Obviously the question is: "is the benefit/power (for a given project/situation) worth the cost/housekeeping?"
Generally, for any given problem there are many algorithms and approaches feasible. It's a mastery in itself to know sufficiently many of them, to decide which one is right for a given situation, to know the trade-offs, etc. And generally speaking every algorithm is implementable in every language.
Accordingly that mastery can be gained and trained in pretty much any language - and probably should be trained in two or three others less housekeeping and intense and error prone languages than C.
Keep in mind that the FreeBSD kernel developers aren't just (or even in the first place) glorious C programmers. First of all they are very experienced engineers. C is the tool they use because a kernel is one of the relatively few project types that actually are worth the cost of C (because the full power of C is needed).
That's my line. Pascal, to name one example, would be an excellent step towards your goal. Whatever language you chose, make sure there is a full set of good-quality tools available (like debuggers). Also, spend some time meeting and exercising completely different approaches like e.g. functional programming (you might actually like it). Once you have (maybe not a black but at least) a blue belt in algorithms, data structures, OS utilities, etc. you are ready for the final step toward C.
That's my opinion, based on quite some experience in both using and teaching C and having seen quite many people with quite diverse professional and experience backgrounds learning C.
If you feel like going right away toward C, there are plenty of books (pretending to) telling how to become a kernel hacker in two weeks and you have been given quite some suggestions here. I myself, however, can't do much more in that case than to wish you good luck (which I do).