Начать лучше всего с определения требований к вашему GUI-enabled продукту. Не секрет, что наладонные устройства обладают ограниченными ресурсами, что особенно сильно влияет на выбор технологии — здесь меньшая производительность управляемой среды может быть особенно заметна. С другой стороны, существует большое количество достаточно крупных приложений, даже из разряда Enterprise, написанных на управляемых средах J2ME, C#. Так что тут двояко.
Если ваше приложение достаточно простое, то С# — лучший выбор — разница между десктопной и мобильной версиями там небольшая, как в идеологии, так и в инструментах, так что результат вы получите быстро, а быстродействие будет вполне сносным. C# очень легко освоить, если вы знаете С++.
Как начать: установить студию с поддержкой разработки на Handheld-девайсах (т.н. Compact Framework), эмулятор устройства, открыть простой GUI-семпл, попытаться скомпилировать и развернуть на устройстве. Дальше начать отсюда, например:
— Compact Framework Developer Guide:
msdn.microsoft.com/ru-ru/netframework/aa497273
— хорошая книга для разработчика .net CF:
rutracker.org/forum/viewtopic.php?t=914236