CS50 отлично дополняет JavaRush. В нем изучается масса общеобразовательных моментов, которые помогут в становлении мышления программиста (или любого айтишника). Например, основы Linux и работы с памятью компьютера, алгоритмы сортировки и поиска, алгоритмическая сложность, простые криптографические шифры, структуры данных, работу в вебе и искусственный интеллект.

Для эффективной работы можно чередовать JavaRush и CS50. Алгоритм изучения может быть примерно таким:

  • Изучаем две первых недели CS50.
  • Проходим первые 5 уровней JavaRush.
  • Далее параллельное обучение: на прохождение 2-3 уровней JavaRush можно «отдыхать», смотря 1-2 лекции CS50.
  • Для закрепления материала можно также выполнять задания CS50. Их в курсе не очень много, но они очень интересные.
  • Дополнительное и очень полезное упражнение для тех, кто хочет получить даже больше практики, чем дает JavaRush: для углубления понимания можно проделывать некоторые задачи JavaRush на Си, а задания CS50 (которые на Си) «переводить» на Java.

Смена деятельности с одной на другую очень эффективна, особенно если они обе про программирование и интересные=).