В теории
Постулат о том, что нельзя научиться программировать без практики нынче можно слышать из каждого утюга. Звучит этот догмат каждый раз немного по разному, но суть всегда одна - теория без практики - время на ветер. Что ж, cложно с этим не согласиться, тем более имея на руках очевидные результаты. Те кто совмещал теорию с практикой действительно легче и лучше усваивают материал и этому есть совершенно не программистское объяснение. Человек вообще так устроен. Да и вообще все животные обладающие высшей деятельностью центральной нервной системы приобретают опыт так или иначе через практику. Так устроен мозг.
Однако, позвольте отчасти не согласиться с некоторыми далеко идущими из этого выводами. В последнее время происходит явный перекос в сторону того, что теория вообще не нужна или даже мешает. Особенно рьяно похожие тезисы высказывают разнообразные школы, частные институты и лица непосредственно зарабатывающие на обучении будущих программистов. Что, впрочем, и понятно. Главным "оружием" в руках обозначенных товарищей является экономия времени, как своего, так и страждущего и некое "гарантированное" трудоустройство. "Вот же!" - мол, - "Наши выпускники зарабатывают уже через Х месяцев. И никакая эта ваша теория тут не нужна".
Начну с того, что так было не всегда. На заре развития компьютеров в отрасль шли лучшие умы планеты уже с огромным теоретическим запасом и практически без никакого практического опыта (откуда бы он у них взялся?). Тем не менее именно в период с начала 50-х до конца 70-х были разработаны практически все главные концепции новой отрасли. Справедливости ради, надо отметить, что и нужно было тогда не так много программистов. Тем не менее гигантский скачок совершили именно эти граждане. Затем, с конца 70-х, людей стало катастрофически не хватать - в отрасль пошла зеленая молодежь, которая может быть не имела ученых степеней, но все еще являлась достаточно теоретически подкованной. Доверяли работу с дорогой техникой не абы кому.
Здесь надо четко себе представлять, чем являлись тогда компьютеры и как с ними надо было работать. Это был штучный товар, для крупных корпораций, которые могли вложиться в некий долгосрочный профит. И кого попало, а главное с чем попало к этому оборудованию не подпускали. Никаких тебе тестовых контуров, песочниц, эмуляторов. Какая же тут практика? Сразу приходилось писать правильно и зачастую основываясь исключительно на теоретических измышлениях. Никто тогда не позволил бы вам прогнать десять вариантов корявых алгоритмов с расчетом посмотреть что получится. И ничего, люди работали, и уже чуть медленнее, но все же двигали технологии вперед. Вплоть до появления массового продукта в виде персональных компьютеров и относительно дешевых серверов.
На практике
Поползновение в сторону того, что ИТ индустрия не нуждается в теоретиках начались примерно с этого момента. Где когда, но в среднем это конец 80-х начало 90-х. И, казалось бы, вполне законно - теперь ведь можно попрактиковаться где-нибудь в школе или институте в специально оборудованном для этого классе или даже дома. И что, казалось бы, в этом плохого? Отвечу - ничего плохого в этом нет. Но есть один нюанс.
Понимаете какая штука? Где-то в этот момент люди перепутали причину и следствие. Индустрия была вынуждена набирать все менее и менее квалифицированный персонал. И не из каких-нибудь корыстных и коварных целей, а банально из-за отсутствия предложения. Об этом много и хорошо говорит, например, небезызвестный Дядюшка Боб в последнее время. Индустрии с появлением дешевых компьютеров стало нужно и больше программ, и на все потребности индустрии, ребят с дипломом математика-прикладника просто стало не хватать. Снижение планки по отрасли - это вынужденная мера. Никто тогда еще не заикался о том, что теория не нужна. Она была нужна, но за не имением таковой, приходилось как-то выкручиваться.
Сейчас же, стараниями упомянутых в начале товарищей, все вывернуто задом наперед. Как будто это наоборот люди поняли, что можно забить на теорию и выучиться на дому по книжкам (хорошо еще если по ним), а индустрия их только и ждет с распростертыми руками, послав предварительно лесом всяких никому не нужных "академиков".
Золотая середина
Возвращаясь к устройству мозга, человеческого в частности. Глупо спорить, что будь тогда, в золотые 50-70-е, у тогдашних ученых возможность неограниченно экспериментировать, то получилось бы всё еще лучше. Действительно, закрепление теории практикой это неотъемлемая часть мыслительного процесса. Можно ли научиться плавать чисто по книжкам? Черт его знает. Понятно одно - это сложно и не оправдано.
С другой стороны мы и отличаемся от прочих животных, что можем ловко манипулировать абстрактными, ни к чему не привязанными, сущностями. Буквы, слова, числа, духи, боги - ничего из этого не имеет материальной основы. Вся математика построена на том, чего на самом деле не существует. Нужна ли практика математику? Своеобразная тоже нужна - тренировка оперирования абстракциями это практика или не практика? Нужно ли программисту каждый раз оперировать какими-то реальными объектами, участвовать в разработке промышленных проектов? Или может быть книжек Кнута достаточно? Да, лучше, конечно работать с чем-то осязаемым. Сложно научиться работать с деревом на примере пластилина, но формируем мы табурет сперва все-равно в голове. Можно ли собрать табурет без теоретических основ работы с древесиной?
Можно ли было в 60-е прийти откуда-то слева в НАСА и запрограммировать посадочный модуль Аполлона, какому-нибудь энтузиасту практику? Наверное все-же нет. Я веду к тому, что теория без практики, конечно вещь спорная и мало полезная, но возможная и на определенном уровне необходимая. А практика без теории, казалось бы эффективная и доказавшая право на существование, но мало применимая когда речь идет о раздвигании границ. Когда вам надо собирать десять одинаковых табуретов в день, то наверное можно справиться и путем тренировки. Но если речь идет о дизайнерском кресле, то без определенных теоретических знаний вряд ли вы сделаете что-то красивое, нужное, продаваемое, удобное, годное.
Таким образом, я бы очень осторожно относился к заявлениям, когда говорится о том, что нынче теория это напрасная трата времени и денег. Еще подозрительнее я бы относился к тем, кто не имеет прямого дохода от платного образования, но тем менее повторяет похожие мантры. Особенно к вашим работодателям и старшим коллегам.
*/
End;