It is widely acknowledged that mobile commerce is a field of enormous potential. However, it is also commonly admitted that the development in this field is constrained. There are still considerable barriers waiting to be overcome. One of the barriers is most software engineers are not familiar with handheld programming, which is the programming for handheld devices such as smart cellular phones and PDAs (personal digital assistants). This article gives a study of handheld computing to help software engineers better understand this subject. It includes three major topics: • Mobile commerce systems: The system structure includes six components: (1) mobile commerce applications, (2) mobile handheld devices, (3) mobile middleware, (4) wireless networks, (5) wired networks, and (6) host computers. • Handheld computing: It includes two kinds of computing: client- and server-side handheld computing. • Palm OS programming: The Palm OS Developer Suite is used to develop applications for palm devices by handheld programmers. This article focuses on Palm OS programming by giving a step-by-step procedure of a palm application development. Other client-side handheld computing is also discussed.