Просто начинаешь делать шаблоны, чем сложнее, тем лучше. В процессе будут возникать сложности, которые в 95% случаях на форуме уже разбирали и есть решения.
Ну и C# конечно. С его помощью можно уменьшить количество кубиков на порядок, а некоторые моменты без него не решаемы в принципе.