One of the critical things to really become better is to others have a look at your code. When others say 'WTF' to your code, you can improve it and learn from your mistakes.
Try to use code analysis tools, try to use C++ conventions (for example google's http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml), try to use valgrind for memory leak detection. Learn how to write Make scripts manually, try some cross platform compilations to see what parts are tricky.
You might also want to take a look at some popular libraries such as boost.
As of the project, make it opensource so people can look at it and give you suggestions. To really incorporate your lack of CS education, grab a scientific paper and try to implement it using c++. Check the results and compare them.