начни писать то, что уже реализовано. например, функция-конструктор классов, или набор функций для манипуляции с элементами \ набором элементов (привет, JQ!). так можно будет подсмотреть в исходники и понять, как они это делают - я пересмотрел jquery, mootools, move.js, emile.js, Animator.js, чтобы понять квинтэссенцию анимации (учебник, само собой, тоже смотрел), но они все совершают лишнюю работу. эту работу я откидываю, и добавляю пару удобных плюшек в свою огромную функцию анимирования.
потом перебирайся на более сложное - пиши реализацию того, чего нет в интернете, или нет простой реализации. к примеру, transform:scale для IE через VML, для обычных старых браузеров - на канвасе, а для обычных современных браузеров - через нативное CSS свойство. вот там будет
ооочень интересно - я сейчас это рассматриваю
или же попробуй пореализовывать
пару-тройку алгоритмов, и потом их расфасовать по категориям и использованию. будет полезно в будущем их знать.
(к слову, мне понравился
бинарный поиск. простой и быстрый.)
ну и конечно, самое главное, не забывай про
стиль кода (подсмотри где-нибудь в интернете... к примеру, когда я начал делать так :
if (condition) {
..
// а не так
if(condition){
, читать свой код стало яснее).
и про разбиение на подзадачи тоже.