Как студент программисткого вуза советую выучить по курсам только основы языка, остальное только пустая трата времени. Лучше всего начать делать какой-то проект, типа калькулятора и тд, но только доведя его до ума! Пока вы его реализуете, изучите кучу инфы в процессе, наткнетесь на типичные ошибки начинающих, столкнетесь с оптимизацией кода и тп, короче идти только путем проб и ошибок, но профит будет огромный (знания, опыт, стрессоустойчивость, и самое главное умение реализовывать задачу до конца).