Чувствую себя немного Доком из "Назад в будущее": "Наконец-то я изобрёл что-то, что работает!"
Дело в том, что с JavaRush я впилила в стену. Там хорошие упражнения, без вопросов, но теории практически нет. Теория есть в "Философии Java", и она отличная (кстати, перевод тоже отличный — редкое дело). Но я ненавижу скакать между главами как блоха, а multithreading описан в одной из последних глав (полагаю, не случайно). Что касается самой "Философии", то без конкретного применения (не на уровне задач "перепишите класс так-то и сяк-то", а именно "живого" применения в осмысленной программе) большая часть этой информации оказывается очень (очень-очень-очень) умозрительной. Мне трудно представить, где и как именно эти принципы будут работать. Про всяческие паттерны проектирования вообще молчу: я должна видеть это в живой программе, чтобы действительно понять смысл, а не тупо запоминать подходы.
И тут... та-дам, я подписываюсь на Android Basics (причем бесплатно, хочу заметить!). И, да, сейчас это очень простые вещи: сделаем одну страницу; изменим размер текста; выравняем блоки по горизонтали; добавим кнопочку. Но для меня-то эти простые вещи были магией. Моя техника взаимодействия с условным пользователем застряла на уровне командной строки! Всамделишное приложение - пусть и из одной кнопочки и одной формулы - совершенно меняет дело!
Когда ты начинаешь понимать, как соединить кнопочки с Java кодом и смотришь на "живую" программу, что-то щёлкает. Я пока ещё плохо понимаю, как перейти от решения конкретных задач в духе "обработайте массив данных так-то и сяк-то" к "вот вам приложение для поиска ресторанов, вот вам календарь, вот вам будильник с котиками", но это хотя бы перешло от вопроса веры ("я верю, что одно как-то связано с другим") к вопросу навыка.
А Python с Codeademy я "приклеила" к курсу Technical Interview на том же Udacity, и теперь у меня и с этим всё временно хорошо: это и хорошая подводка к алгоритмам, и обоснование для изучения второго языка.
Кажется, это моё новое жизненное правило. Даже два.
1. Ни один навык не должен висеть в воздухе - его нужно как можно скорее к чем-то присобачить (хотя бы к изучению другого навыка).
2. Если изучаемые темы сами-по-себе сферические-в-вакууме неприменимы, учить сначала вширь, только потом вглубь. Никогда не лезть вглубь без bigger picture in mind.