Как изучить компьютерные науки?
1. CS50
2. SICP
Классика зарубежного образования в сфере компьютерных наук. Первый - это азы. Второй это посложнее. Скорей всего в любой из прочитанных статей так или иначе будут упоминаться этих два курса, либо они зачастую за рубежом адаптированы под конкретный университет.  Если вбить эти две аббревиатуры в гугл, вам откроются тайны аббревиатур Если прочитать и изучить эти две аббревиатуры, то из вас точно получится что-то толковое.
По первому есть даже переведенные видео-лекции от Javarush,
По второму есть книга на русском языке. Лично я такую храню у себя в рабочей библиотеке в бумажном виде.
Вдобавок к перечисленному - идём на ютуб и ищем каналы "Computer Science Center", "Академия Яндекса" и "Технострим Mail.Ru Group" - в них нам интересно "Алгоритмы и структуры данных" и прочие "Основы" (умышленно не привожу здесь прямые ссылки).
Внимательно смотрим, конспектируем. Непонятно - пересматриваем. С возникающими вопросами идём не на форум, а в книжки. Можно залезть на "ИНТУИТ" или там "Курсеру" - пройти курс, сдать экзамен и получить подобие сертификата.
Это может занять не один месяц, а гораздо больше. Успешность затеи зависит лишь от вашего упорства. Материала в интернете - уйма: книжки, лекции, квизы и прочее. Всё для вас!