Всем добрый день.
Меня зовут Сергей Василенко.
При поступлении в любое высшее учебное заведение нужно понимать, зачем вы хотите сделать этот шаг. Ведь вы обмениваете пять-шесть лет своей и жизни (а это примерно 10% её сознательной части) на получаемые знания и опыт, а жизнь — это то, что нельзя вернуть назад. Соответственно, знания и полученный вами опыт должны того стоить.
Я закончил ПНИПУ (тогда ещё ПГТУ) в 2006 году и получил на кафедре ВТАУ (теперь — ИТАС) квалификацию инженера по специальности «Вычислительные машины, комплексы, системы и сети». С 2001 года я писал программный код и пишу его сейчас. И буду писать в будущем.
Разработка программного обеспечения — это самая большая, востребованная, динамичная и интересная отрасль современной инженерии. Интересна она не только из-за того, что (не будем таить греха) труд в ней неплохо оплачивается, но, в немалой степени и из-за того, что она ставит сложные и интересные задачи, зачастую требующие нетривиальных и красивых решений.
Именно поэтому образование любого программиста должно быть не столько профильным, сколько системным и инженерным.
Попытаюсь объяснить, почему это так.
Первое.
Программное обеспечение — это сложный комплекс решений, который позволяет решать какую-то прикладную задачу за указанное время с использованием ограниченных ресурсов. Некоторые программные продукты пишутся на один раз. Другие — для того, чтобы работать десятки лет без изменений и ошибок. Третьи — для того, чтобы можно было гибко менять логику их работы и связывать с ещё какими-то программными продуктами. Четвёртые призваны анализировать результаты работы тысяч каких-то пятых программных продуктов. Иногда цена ошибки в программном обеспечении может быть небольшой, а иногда от этой ошибки может зависеть жизнь человека. Некоторые ошибки можно игнорировать годами, а другие — недопустимы. Есть программные продукты, управляющие микроволновой печью на кухне как есть и такие, что обрабатывают сотни гигабайтов данных в секунду параллельно на десятках тысяч серверов. За каждым таким продуктом, за каждым экземпляром программного обеспечения стоит огромное количество людей, задействованных в жизненном цикле этого продукта. Эти люди пишут программный код, собирают его, тестируют, оформляют для установки, документируют, продают, устанавливают, конфигурируют, обслуживают, анализируют результаты работы. А ведь как взрослый человек всегда вырастает из ребёнка, так и большой коллектив всегда вырастает из одного человека. Поэтому все те люди, что стоят за программным продуктом, всегда вырастают из него — из программиста. Программист может видоизменяться — становиться системным архитектором, руководителем проектов, тьютором для тестировщиков, но при этом он не перестаёт быть программистом. Он понимает, что всё, что он делает, должно укладываться в стройную систему унификации, взаимодействия, соответствовать технологической и профессиональной культурам. Это становится возможным тогда и только тогда, когда программист владеет системным подходом. Системный подход позволяет человеку выстраивать свою деятельность так, чтобы её результат был целостным, системным, прогнозируемым, структурным и масштабируемым. А системное образование обучает системному подходу.
Второе.
Ни для кого не секрет, что в наше время компьютеры разнообразных размеров и форм проникли везде. Компьютеры могут быть большими и маленькими. Компьютеры могут быть обособленными или массивно-параллельными. Компьютеры могут быть как в виде микроскопических кристаллов с пониженным энергопотреблением для использования в банковских картах, так и в виде машинных залов, заполненных стойками с тысячами серверов, которые охлаждаются целыми прудами. В будущем компьютеры будут пронизывать всё, что нас окружает и от этого уже никуда не деться. Компьютеры облегчают нашу жизнь, заменяя человека там, где требуются повышенная точность, нечеловеческое терпение или не очень высокая квалификация труда. Но ведь сами-то по себе компьютеры бесполезны — их нужно научить что-то делать! Для этого между компьютером и предметной областью, в которой этому компьютеру придётся трудиться, встаёт программист. Программирование (как и вся высокотехнологическая человеческая деятельность) — это очень большая сумма технологий, знаний и умений. Инженерия — это умение применять технологии, знания и умения для решения конкретных проблем. «Заставить компьютер выполнять за человека работу» — та самая конкретная проблема, сопряжённая со своим набором технологий, знаний и умений. Программист должен уметь погрузиться в технологии, знания и умения прикладной области, сложить эти приобретения с уже известными ему технологиями, знаниями и умениями — и только после этого он сможет переложить решение поставленной перед ним проблемы на язык, понятный компьютеру в виде каких-то программных решений.
Третье.
Мир меняется. Каждый день появляются сотни новых программных решений. Появляются новые языки программирования, экосистемы, архитектуры, протоколы. Технологии появляются и исчезают. В конце концов, меняются задачи и люди вокруг. В таких условиях нет смысла связываться надолго с чем-то определённым: вся справочная информация всегда доступна в мировой сети; типовые решения диктуют типовые архитектуры; средства становятся такими, что их использование само становится документацией. Следовательно: программист должен иметь склад мышления, который позволяет абстрагироваться от конкретных технологий, языков программирования и решений в пользу общих принципов и подходов, используемых при решении каких-то задач; программист должен уметь быстро найти требуемую информацию и произвести её анализ; программист должен уметь принимать решения. В каком-то смысле современный программист — это больше натурфилософ, политик и математик, нежели прикладной специалист.
Эти три абзаца — то, к чему рано или поздно приходит любой программист. Кому-то для этого нужно 15 лет отработать, а кому-то — отучиться в очень хорошем ВУЗе.
Ценность ВУЗа определяется, в первую очередь, механизмами помощи вам для обучения. Из пермских ВУЗов ПНИПУ обладает самой мощной практической базой, самыми лучшими технологическими связями с предприятиями города. У ПГНИУ лучшая теоретическая база и, безусловно, лучшие научные традиции. Из профильных российских ВУЗов лишь несколько могут сравниться со среднемировыми профильными и расположены эти ВУЗы в Санкт-Петербурге и Москве (я имею в виду индустрию разработки программного обеспечения и computer science).
В любом случае, образование в высшем учебном заведении а) является необходимой формальностью; б) ориентирует студента на правильную последовательность изучения дисциплин; в) даёт студенту правильный механизм потребления информации; г) даёт время и возможности для профессионального становления. Думать, что ВУЗ сделает из вас специалиста — ошибка. Любой ВУЗ даёт вам возможность самим стать специалистом, помогая в этом образовательной программой, преподавателями, информацией и временем. Как вы распорядитесь всем этим — ваш выбор.
Могу посоветовать лишь трудиться, трудиться и ещё раз трудиться. Только стремление к повышению своей культуры и актуальности как специалиста, только постоянное сомнение в собственной компетентности, только упорный труд, только самообразование могут сделать из вас профессионала.
В добрый путь.
|