Но опять же. Не устану это повторять. Изучение программирования происходит путем проб и ошибок. Для того, чтобы понять что надо делать или не надо, надо ЭТО самое попробовать. Напороться на грабли, побиться о них головой. После этого поплакать, поспать. Проснуться с утра и подумать "зачем я придумал себе идеальный мир, идеальный код, надо взять и решить эту задачу минимальными трудозатратами".