The starting point for developing applications for Symbian OS is to obtain a software development kit (SDK). SDKs for Symbian OS support development in both C++ and Java. They provide:
SDKs are in practice built based on a particular UI platform for Symbian OS. A UI platform provides a distinct UI and an associated set of system applications for such tasks as messaging, browsing, telephony, multimedia and contact/calendar management. These applications typically make use of generic application engines provided by Symbian OS. UI platforms intended to support the installation of third-party applications written in native C++ have to be supported by an SDK which defines that UI platform, or at least a particular version of it.
For the independent software developer, the most important thing to know in targeting a particular phone is the associated UI platform. Next you need to know the Symbian OS version the phone was based on. This combined knowledge defines the target phone as a platform for independent software development. You can then decide which SDK you need to obtain. In most cases you will be able to develop a single version of your application that targets all phones based on the same UI platform and Symbian OS version.