First thing to do is to go to www.palmsource.com
and download the SDK. You should probably register to become a developer while you're there, then apply to the seeding area (I'll get to why in a paragraph or two). The SDK is about 3000 pages of documentation, most of it in explained but non-tutorial form. It's enough for some people, but most people pick up a PalmOS programming book to back it up. If the SDK isn't enough, I'd recommend the PalmOS Programming Bible (second edition).
Next, you need to decide on a development environment. C and (limited) C++ are the primary languages for programming the Palm, so I'll go over those first.
CodeWarrior is the standard C/C++ programming environment, complete with an IDE and associated tools. It is rather expensive, especially if you don't qualify for a student discount.
Then there's the PRC-Tools, which is built on the GNU toolchain. These are free, but you get no IDE. Also note that static libraries compiled by one will not work with the other, and both use completely different methods to compile, set up resources, etc. It's what I use, but I'm used to the GNU toolchain, so it came easier to me.
Then there are at least two IDE wrappers around PRC-Tools. DeveloperStudio is the more complete one, and the more costly as well. I can't remembe the name of the other one, but it has a folowing to, so shouldn't be dismissed.
Before I go any further, I will say that in my opinion, you should use something that generates a68k instructions and uses the PalmOS system calls, rather than one of the rapid application development environments. The reason for the first is speed. Interpreted programs run slower and eat batteries faster than equivelent compiled programs in most cases. The second is because when the OS changes, RAD tools that bypass the OS tend to break, and then you're in the position of waiting for the RAD tool developer to update their runtime. They also tend to break on any system that isn't what the developers of the RAD tool were expecting. I've got a HandEra 330 that works for some of these, bombs out others, and leaves the rest acting quirky. You can generally forget about taking advantage of special features of any specific PDA with the RAD tools as well.
You might want to take a look at SuperWaba if you're experienced with Java. It's a JVM for PalmOS, though I don't think its kjava (?) compliant. It falls under the RAD issue mentioned above, as a version of SuperWaba that is OS5 compatible was finally released just a few days ago.