Step1: Inspiration

The first part of creating a program is to get an idea and develop it. What is it you want the program to do? Is it a game, math program, or something else? Is it original (not a top priority, but sometimes is nice to have new ideas in circulation)?
To get some ideas, go here.

Example idea

Create a Hello World program.

Step2: Features

Once you get an idea, write it down. Then, expand on it. What features should it have? Make sure that you expand upon your ideas in great detail.

Example features

  • Repeat "Hello World" every time the user presses the enter key.
  • Allow the user to change the string displayed.
  • Allow the user to display the string as all caps ("HELLO WORLD"), all lower case ("hello world"), capitalize the 1st letter of each word ("Hello World"), or capitalize the 1st word in the sentence ("Hello world. How are you doing today?")

Step3: Interface

Although this section could go under features, it's important enough to have it's own step. In order for a program to be successful, it must interact with the user. This includes getting information from the user as well as giving information back to the user. Also be sure to make note of how the user will interact. There are a few general categories:

Command line

Not so simple to write or understand from the users point of view. The user is asked for an action to perform, and then does it.


Simple, or hard, depending on the menu you choose, to implement, but also very easy for the user to understand. A menu simply lists the choices available and asks the user to choose one of them.

Graphical User Interface (GUI)

Hard to implement, but has the best user interaction. This can greatly attract the user, or repel them. People want a game with a cool main menu, with settings, options, some storyline, and more. People don't want a game that just goes directly into play and exits back to the shell when you lose. A GUI consists of icons and buttons that do stuff when pressed. See your desktop for an example.

Example interface

  • Display text on the home screen, located on the top corner (row:0 col:0)
  • Wait for a key to clear and go to the menu
  • ask the user what it wants to do:
    1. Display string again
    2. Change string
    3. Change the way the string is displayed
    4. Quit

When the user selects "Display string again", display the string.
When the user selects "Change string", allow the user to input their own string.
When the user selects "Change the way the string is displayed" go to another menu that lists the possibilities, and change accordingly.
When the user selects "Quit", quit the program

Changing Plans

Remember, it's never too late to change your idea of what your program will do. This could be due to your idea being too difficult for you to solve, a feature that simply can not be implemented on your calculator, or a new feature you just thought of and think it would enhance the program. A good programmer knows that there will be a time that when they start coding they'll come up with/have a new idea thrust upon them and they must figure a way to implement it into the program. Remember, it's much easier to implement these changes early on instead of later.


Now that you have your basic ideas down, it's time to move onto the actual coding.

Make sure your game is worth playing. I (The Cow) wrote a guide here.

Unless otherwise stated, the content of this page is licensed under GNU Free Documentation License.