Programming has low ROI(Return Of Investment) very often. Try to improve your ROI, i.e. code small, reusable parts, then assemble big projects from these small parts.
For example:
* you can write code generator instead of code;
* you can write (small) library first, then use it in your programs;
* you can prepare templates and wizard program, which automates creation of typical code;
* (for Linux) you can prepare package, which is easy to install.
General rule: try to save your future time, even when you need to sacrifice some today time for that.Just for example, every command line program needs option parsing. Write template for typical option parsing routine, keep it in separate directory, improve it over time, write generator, which will just substitute program name. Even if your project will fail, you will still have this small piece done, and it will save some of your time at every new project.
(Sorry for my English).