Hm, a few steps:
You first have to write your program. You could write it in C, C++, Python, Java, or anything. If you want the program to have a GUI, rather than just being command-line based, then you have to write code that paints windows, buttons, etc.
After doing that, you'll have an executable. In Linux, in contrast to Windows, executable files don't have a ".exe" suffix. Were you to open a terminal, you could just type in "pidgin" and the program would run.
Finally, to create the desktop/menu shortuct, that is specific to the GUI environment. In gnome, you can right-click on the desktop, select "Create Launcher", and follow the menu to select the executable file you have created - similarly to what you do in Windows.
Not sure if this is what you were asking about, but I hope that is helpful!