Я работаю в IT, программирую, правда программирование это только часть моих обязанностей. В универе не училась на программиста, обучалась всему сама на разных курсах. Работу нашла.
Я не против курсов. Сам несколько прошел. Но курсы лучше проходить как дополнительное, а не как основное образование. Курсы обычно дают понимание как делать (часто поверхностно), но не дают понимание почему надо делать так.
Позвольте немного рассуждений и простите, если что, за оффтоп...
Языки и технологии меняются. А базовые принципы остаются. Поэтому если знаешь базу, сможешь легко выучить любой язык.
Простой пример. Известно, что поиск по индексу работает быстрее, чем прямой перебор (вспомните обычное оглавление в книге: название главы - номер страницы). На курсах учат, как строить индексы для той или иной базы данных. Отлично. Теперь реальная задача: построить индекс для текстового файла определенного формата и сделать быстрый поиск без использования базы данных. И все, кандидат споткнулся. Потому что не в курсе, как физически устроен индекс. А бывпет даже не в курсе, почему поиск по упорядоченному массиву работает быстрее, чем по неупорядоченному, хотя что такое массив и какой командой его сортировать прекрасно знает. А это основы оптимизации быстродействия.
Даже если просто знаешь, как работает что-то изнутри, это помогает эффективнее решать задачи.
На одной конференции слышал про химию: надо проводить уроки химии зрелищно. Раз смешали, два смешали - получили ого-го какую красоту. Все ученики в восторге. Ну да, думаю, в восторге. С одним но: все поняли что и как получилось, но не поняли главного: почему именно так получилось. А "почему" это уже совсем не зрелищно. Это уже уравнения реакций и законы, по которым одни вещества превращаются в другие. Плюс свойства этих веществ. Т.е. под зрелищностью должен лежать толстый слой базы.
Все, заканчиваю философию. После 9 лет работы в ВУЗе могу рассуждать на тему образования долго.