hokudJolsbsy,
На каком проекте/задаче вы реально освоили, отработали такую-то технологию/фреймворк/патетрн/инструмент
Для того чтобы понять какой-либо паттерн, подойдет любой достаточно убогий в выразительных средствах язык программирования, который не поддерживает соответствующую семантику встроенными в язык средствами. Лучше всего взять ассемблер. Ассемблер не поддерживает никакие высокоуровневые семантики, поэтому это самый лучший язык для изучения паттернов. В нем вам придется реализовать паттерн Подпрограмма, паттерн Цикл, паттерн Сложение Больших Чисел, паттерн Массив, и много-много других паттернов.
Сама задача "изучение паттернов" это в некотором смысле извращение. Это равносильно тому, что вы сперва отпиливаете себе ногу, а потом изучаете набор костылей, которые позволят вам нормально передвигаться, компенсируя свою неполноценность.
Если есть задача изучить паттерн - берете язык в котором семантика этого паттерна реализована без паттернов, т.е. языковыми средствами, изучаете реализацию этой семантики, затем возвращаетесь в свой более убогий язык, и пытаетесь придумать реализацию этой семантики в виде костыля (паттерна) - таков естественный путь изучения паттернов.
Design Patterns in Dynamic Languages