Up until about a month ago (today is 9/22/13), the only programming language I'd ever really used was THUMB (Assembly, and the instruction set for ARM). I learned THUMB a couple of years back when I was involved in the GBA Pokémon ROM Hacking community - I learned it, and while I got pretty comfortable with it, I never did much of note.
Over this past year, I attempted to learn a high level language. I know it's weird that I learned an Assembly language before even attempting to learn a high level language, but whatever. I tried Visual Basic, C#, and Java.
I found good tutorials for them, but, I learned about a days worth of each - Java might have been two days worth.
I found working with more complex data types weird. Arbitrary variables were incredibly weird to me. However, my real problem was that I hated the way programming languages are taught.
It wasn't that I was struggling to understand or anything like that - it was more that I was struggling to care.
Teaching a particular syntax or function, and using it in some contrived program tailored to that function, followed by playing with it until you can reasonably predict how altering it will affect is quite effective at making people understand it.
However, it is also incredibly tedious.
This semester, I decided to take a beginning Python course. I figured a grade would be enough to maintain my attention long enough to get to the really fun parts of programming.
I was... sort of right, I guess. It held my attention better, but it was still rather boring, because I still had no goal to work to.
It's kind of weird, but when learning something, I prefer to have a particular goal, and jump in, completely in over my head, and try to work my way up to that goal.
This is how I got the idea of developing a compiler for a very Pythonic language. As I thought about it more and more, I knew that developing a language similar to Python in Python would be a great test and goal.
That was less than a week ago. In that time, I've arguably learned more about Python learning how to use PLY than I had in just under a month of my class. Plus, it also makes me laugh, because, really - Python is the first HLL I've ever made any attempt to learn. And, a month ago, I'd never looked at or written a single line of Python, and I'm already using it to develop a language?
For anyone that's interested, the language is Tungsten. I chose the name for several reasons: Tungsten is two-syllables, easy to remember, and even has a similar rhythm as Python; Tungsten (the element) has the highest melting point of any element, and Tungsten is a very HLL; it gives me a great excuse to use a file extension not in the name, as Tungsten's chemical system is "W", which makes me way happier than it should; another option I was considering is naming the language a number, and, with Tungsten, I can call the compiler 74 (Tungsten's atomic number).