Ok let's start with your idea for program X that does something useful and let's break it down:
Use paper, mind-mapping, or diagramming software to layout the logical flow / flow(s) of the program.
Since you are just starting out pick ONE of those items (preferably near the beginning) and break it down even further.
Write your code for that first and use it to build upon
Does Program X need to open a file, manipulate it, and create an output file? See if you can open and echo the file as your first step. Do you want a nice user interface? Build one that can run your file echo program, etc. You'll not only be building code you can use in your complex program step by step, but you'll also be building your language knowledge as you have to search and lookup information.
As the saying goes - Gnome wasn't built in a day :-)