А по поводу оптимального по объему кода - пишите на ассемблере, будете приятно удивлены компактностью.
По поводу самообразования вы возможно не правы - написать код не так уж и сложно, а написать компактно, красиво, это уже требует дополнительных знаний, оптимизировать намного сложнее чем просто написать программу.


