You may find it useful to challenge yourself by working under self-imposed constraints. These constraints can be, for example, the maximum number of lines of code, the units that you use (e.g. Crt), the time you allow yourself and/or the characters that you output. Follow the links below for examples.
Programming - a skill for life!

Some great challenges for you to try!