JSF applications need a JSF implementation to run. There seem to be a few of these about, most noticeably the Sun JSF Implementation and the Apache MyFaces JSF implementation.
The Sun implementation supports JSF 1.2 which is the latest version of JSF and part of the Java EE 5 specification. The Apache MyFacesimplementation supports JSF 1.1.
I'm interested in Java EE 5, so I'm going to start learning with the Sun implementation using the GlassFish application server using NetBeans 5.5 as my IDE.
I know NetBeans has a lot of wizards and helpers to allow experienced developers to write applications quicker, but since I'm learning I'm going to try and minimize the use of these wizards. I'm a firm believer of learning a topic first before I start to use IDE generated code. When I'm more proficient in JSF, I imagine the tools provided by IDEs will be invaluable.