I have a personal pet project I'd like to start on, targeted at windows mobile 6. I've never done win mobile dev and would like to know what resources are out there, good tools to use, perhaps a jump start tutorial, as well as any gotchas I might want to keep in mind when developing for the platform?
Depending on the scale of the project, look at .NET compact framework. If you're familiar at all Visual Studio then it's pretty easy to get started. Of course MSDN is the place for resources.
Running managed code on a mobile device does take a big performance hit, but for a small personal project it's pretty good.
Also, most devices have all sorts of odd and weird quirks as well as strange hardware configurations. Look for any sort of developer program from the maker of your device.
For Visual Studio you can download the Windows Mobile SDK which comes with starter kits and emulators. You can program either native C++ or .Net applications quite easily and quickly. Take a look at the samples provided with the SDK for a good entry point. This is likely going to be the best resource out there for getting started. I suggest installing the SDK then running some of the samples to get your feet wet.
Start at the Windows Mobile Developer Center. There you will find a great getting start section with lots of links to the software you need and tutorials. Windows Mobile development is a lot of fun. :)
Windows Mobile 6 devices come with .NET Compact Framework 2.0 in ROM and also expose .NET APIs for a lot of things (camera, system notifications, email, contacts, ...).
I'd recommend using Visual Studio 2008 and the refresh version of the Windows Mobile 6 SDK, which includes emulators, documentation, tools and samples.
Besides MSDN, a good resource for Windows Mobile samples is Chris Craft's Blog, who recently built 30 mobile applications in 30 days. There are samples for a lot of different techniques which you can use for a jumpstart.
A good reference book to check out is "Microsoft Mobile Development Handbook" by Wigley, Moth, and Foot. It covers a lot of topics in mobile development with the .NET compact framework, and also the Windows Mobile platform.
You also might want to learn about Windows CE, which Windows Mobile is a flavor of. A good place to start learning about Windows CE is windowsembedded.com. From there you can download an evaluation version of "Platform Builder" which is the tool to create a Windows CE image to test with.
Another good source of Windows Mobile Development code samples and example apps can be found at Chris Fairbairn's blog.
If you have C# background jumping to the windows mobile development is quite easy. Of course there are lot of differences but you will get hang of it.
Some gotchas:
Get familiar with .NET CF memory management and how garbage collector works on mobile devices. Steven Pratschner's .Net CF WebLog. Steve also have's nice tutorials how to use RPM (Remote Performance Manager) tool to get rid of memory leaks etc.
Also some things are done through pinvoking librarys like core.dll so browse to P/Invoke.net and take a look for methods under Smart Device Functions.
And finally few blogs
Rob Tiffany's Windows Mobile Accelerator
Mobile Development by Raffaele Limosani
Edit: Oh there seems to be similar question with great answers @ http://stackoverflow.com/questions/377604/windows-mobile-development-where-to-begin
Apart from the standard controls in Visual Studio I suggest to look for 3rd parties controls providers. A good choice is Resco MobileForms Toolkit and OpenNETCF. Personally, I would go for the one from Resco. Even though it is not for free unlike the OpenNETCF, it abounds in much wider functionality and graphic attractiveness. Besides, the support is unlimited, the toolkit has regular updates and new controls are added on a regular basis.