You're on the right track when you say you will start out small. All too many people jump straight into coding some next Google-[appName]-clone and then get quickly get lost because they haven't understood basic principles.
A simple word processor would be a good idea to start with. Look up any existing code which kind of does what you want, and then try to adapt it before writing your own code from scratch. This will be much easier if you have previous experience from another programming language (preferably an object-oriented one as it's similar, but nowhere near exactly, how JavaScript is laid out as it's prototype-based).
If you don't have any programming experience however, there's no escape from reading as many tutorials and in-use code as you can find. That is IMHO the best way to learn. Example code usually only get you as far as understanding the syntax. To understand the meaning and purpose of the code, nothing beats experience in looking at code which actually serve a real purpose.
I've been coding JavaScript for over 10 years, but there is no way I could claim knowing everything about the language, or the environment it interacts with (DOM in browsers). Like any other programming language, JS has evolved, and in small steps it moves into areas where it hasn't been used much before. In the same way the people using it must evolve and learn as they go.
I often encounter new things when I look at other people's JS code. Little bits and pieces which collaborate in a way which at first seems very odd or maybe automagic. Then it's good to remember to always go back to the basics and recall what each operator and statement does, and try to keep the overall state of the application in your head as you read the code. Otherwise you might fail to understand even simple code examples.
Experience in reading code will be extremely useful when debugging code. And experience in debugging code will later teach you how to structure it for efficiency, readability and debugability.
Always keep references at hand. I need them almost every time I write any larger script, and you will most likely need them too. Everybody does now and then.
There's no point keeping every property and method of every available object in your head at all times. It will only clutter things up and draw fous from the purpose and flow of your code. Figure out how you want to structure your code, then look up the means to do it in references and previous code you've looked at , then alter your original idea to match the available options. Once you start writing, keep reevaluating the overall structure of your application to see if you can still add the features you need on the base foundation you have at the moment. If not, stop and redesign your foundation or your end result might be spaghetti code. It will probably do what you want, but under the surface it will be inconsistent with your original idea and the possibilities to extend it will be limited.
JavaScript certainly has a future, nothing comes close to doing what it does, not to mention it's a standard already used all over the place. It would be fatal for any browser to drop JS support.
There are some good links in my signature which I can recommend which cover these things in more detail. Also, remember that many general programming tips apply regardless of the language, so investigating other resources might be a good idea.
Hmm, this post got a bit longer than I intended... Oh well, enough ramblings on my part. Happy coding
