I throw my gauntlet down, and challenge you to build the simplest graphical interactive project I can think of. Let's start with the concept:
Step 1 / Raw concept in ONE paragraph:
Let the user enter a list of tasks which are remembered. The tasks have a checkbox to indicate completion. The user can add/delete/edit tasks. The user can view the three possible sets: all tasks, not-yet-completed tasks, and completed tasks. The tasks are sorted in order of their time of addition, but the user can choose to display them in reverse order.
Step 2 / Raw Sketch done on paper:
Step 3 / Design primary persistent data structures:
Step 4 / Draw mockups in a painting program like Photoshop
Step 5 / Determine keyboard shortcuts and user interface logic
A click on the Add task icon switches to text entry mode, where header is the text input area
keyboard shortcut: INSERT key (command INSERT on Mac)
ENTER key terminates entry
entry is limited to 100 characters
sort order triangle icon pointing up (default value) is oldest task at top (FIFO).
clicking triangle toggles to opposite mode, with triangle pointing down.
add button is not visible when showing completed tasks, is replaced by clear button
EDIT button is only visible if a row is selected
when text entry field has no text in it yet, show a gray entry hint "Enter task"
auto save changes every 5 minutes, and save automatically when quitting task
scroll bar thumb disappears when no scrolling possible (all items visible)
text will shrink automatically, down to 6 points. After reaching the shrink limit,
then truncate text until it fits, and append three periods ... to indicate truncation
only one item can be selected at one time. when hilited, the delete icon (red circle with X) appears
Application icons for each platform
Step 6 / Calculate key measurements for different device sizes
Step 7 / Coding the project
Write the program in the language of your choice. A good order of implementation would be to 1) create a dummy document, 2) get the viewing to work, 3) implement actions like text entry, text edit, task delete, and sort order toggling. Start by building for the smallest display range first (cellphone, typically iPhone 4 which is 4 inches diagonal, about the smallest device that is popular). The larger the screen, the easier it is to fit things.
Step 8 / Testing
How many of the 5 main platforms can you deliver on?
1) Mac OSX,
5) Web browser.