Курсы по программированию с позиции работодателя. Часть 2.

Опубликовано Nov 30, 2012 в Собеседование: Советы | Нет комментариев

, ,

Курсы по программированию с позиции работодателя. Часть 2.

Продолжая тему предыдущего поста, попробую сформулировать ряд соображений и советов по поводу возможностей эффективного СОТРУДНИЧЕСТВА С КУРСАМИ ПО ПРОГРАММИРОВАНИЮ для получения первой работы на позиции разработчика в ИТ-компании, успешного прохождения испытательного срока и эффективного построения дальнейшей карьеры в этой сфере.

Терминология. Термин “Курсы по программированю” понимается как любой способ обучения за деньги, отличный от государственного аккредитованного вуза (бакалавр/специалист/магистр).  То есть в это понятие входят: КА ШАГ, разнообразные очные и заочные курсы с более коротким сроком обучения, платные тренинги, семинары, вебинары, репетиторы и т. п.

Преамбула. Не рассматривается ситуация для выпускника школы, так как для него самый нормальный путь освения профессии – это идти в профильный вуз. Также не рассматривается ситуация для выпускника профильного вуза, которого четыре года учили, например, Net-технологиям, а в процессе трудоустройства (уже имея уже на руках диплом) он сделал для себя открытие, что приобретенные знания, мягко говоря, не соответствуют обстановке.

Исходная посылка.  Задумана переквалификация в программисты из другой специальности, а на получение обычного высшего образования нет ни времени, ни возможности. В арсенале – базовый вузовский курс информатики, прослушанный, благополучно сданный и невостребованный несколько лет, а потому полностью забытый да и, наверняка, полностью устаревший. И нужно быстро решать проблему трудоустройства, а для этого есть ГОТОВНОСТЬ В СЖАТЫЕ СРОКИ САМОСТОЯТЕЛЬНО ОСВОИТЬ большое количество нового сложного материала. Материал этот сам по себе в изобилии имеется в сети, а на разнообразных форумах энтузиасты готовы давать ответы на любые технические вопросы. С чего же начинать?

Разумно начинать с того, чтобы как-то проверить: выйдет ли вообще из этого толк. Для этого стоит определиться с одним основным языком программирования (C++, Java, C# или какой понравился). Найти по нему книгу, которая нормально вами читается. Изучить базовый синтаксис и основные общие для любого языка управляющие конструкции (присваивание, условный оператор, оператор цикла). Если выбран C++, то придется еще разобраться с указателями. Дальше стоит изучить простейшие структуры данных: статические массивы и строки.

После этого нужно начинать писать код. И если через месяц-другой вы сможете самостоятельно, работая только в IDE, минут за 30 свободно решать примерно такие задачки, получая от этого удовлетворение, – то продолжать явно стоит.

Итак, продолжать обучение стоит и нужно серьезно подумать, как это сделать наиболее оптимальным образом. Вот тут и могут пригодиться КУРСЫ ПО ПРОГРАММИРОВАНИЮ, если брать от них то, что они могут реально дать и не ожидать невозможного.

1) Никакие курсы не гарантируют 100% трудоустройство, да еще на ту зарплату, на которую вы ориентировались, выбирая новую профессию.

2) Ни на каких курсах вам не расскажут ничего принципиально такого, чего нельзя было бы найти в сети бесплатно, а все лекции, котрые вы прослушаете, например, по C# никогда не покроют все содержание, например, вот этой книги.

3) Никаким курсам не удастся организовать процесс так, чтобы вам абсолютно все нравилось по принципу любой каприз за ваши деньги. Следует иметь в виду, что образовательные услуги – это одна из немногих сфер услуг, где принцип “клиент всегда прав” не работает в полную силу.

Вопрос. ЗАЧЕМ МОГУТ ПОНАДОБИТЬСЯ КУРСЫ?

Ответ. Для существенной ЭКОНОМИИ ВРЕМЕНИ ДО НАСТУПЛЕНИЯ МОМЕНТА ТРУДОУСТРОЙСТВА  и успешного прохождения испытательного срока, как желаемого финала.

Достигнуто это может быть за счет следующих необходимых для обучения факторов, которые наиболее сложно организовать полностью самостоятельно.

1) Систематизация учебного материала.

Этот пункт очевиден и так или иначе выполняется всеми. На старте стоит посмотреть на то, что выбранные вами курсы имеют программу с понятной вам расчасовкой и эта  программа не отличается радикальным образом от подобных программ других продавцов аналогичных образовательных услуг.

2)  Периодическое получение квалифицированной оценки достигнутого  уровня.

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

Описанным способом  работать для целой группы обучаемых постоянно практически невозможно, так как для преподавателя проверка кода – это адская работа и огромные трудозатраты, которые начальники, стоящие над преподавателем,  почти никогда не учитывает, и соответственно, не оплачивают и не выделяют на них времени. Но все же вы должны быть уверены, что хотя бы один, как правило, финальный учебный проект пройдет полноценное квалифицированное ревью кода, а замечания не ограничатся формальными фразами в стиле “Мало комментариев”, “Плохие идентификаторы” или “Мне не нравится интерфейс…”, без объяснений, почему не нравится. Этот момент очень важен, его стоит обсудить заранее и, возможно, о проведении ревью вашего кода стоит договариваться отдельно и отдельно оплатить его.

3) Оперативная помощь в разрешении проблем с выбором и настройкой среды разработки.

Мой собственный опыт здесь такой. Инсталляция с нуля той же микрософтовской среды разработки для полного новичка – дело крайне неблагодарное.  Например, каждый сентябрь я начинаю читать студентам четвертого курса предмет, который требует  всего-то среды разработки клиент-серверного Win Forms приложения на C#. И примерно месяц мы развлекаемся тем, что устанавливаем и переустанавливаем MS SQL Server и его компоненты на студенческих ноутбуках. Безусловно, многие делают это сами, но они – старшекурсники компьютерной специальности и у них силен групповой разум. И все равно, неизбежно несколько компьютеров приходится инсталлировать и настраивать прямо на парах совместными (и моими в том числе) усилиями.

Поэтому этот пункт должен безоговорочно присутствовать. То есть вы должны понимать на каком компьютере будет происходить обучение. Если это компьютер, предоставляемый курсами, то абсолютно необходимо, чтобы  на вашем личном ноутбуке присутствовала аналогичная среда разработки, а сотрудники курсов могли бы дать четкие и правильные советы по ее настройке и понимали, что вам делать, решая вопросы лицензирования софта  на вашем компьютере. Если же на выбранных вами курсах этот вопрос не хотят решать или технически недостаточно квалифицированы для его решения, то вывод о таких курсах очевиден.

4) Оперативная помощь в разрешении конкретных технических проблем.

Проблемы эти неизбежно возникнут при работе над учебными проектами. Вроде бы это требование абсолютно очевидное, но очень трудно реализуемое на практике. Потому что я не имею в виду проблему уровня “у меня ошибка компиляции”, хотя иногда исправление и такой ошибки преподавателем за несколько минут экономит часы обучаемому. А речь идет о ситуациях, когда для того, чтобы дать дельный совет, преподавателю нужно вникать в ваши идеи построения программы, дополнительно разбираться в каких-то примененных вами средствах, осознавать ваш алгоритм (а в его голове, возможно, совсем другой).

Поэтому очень частые ответы в подобной ситуации: “А зачем вам это нужно?”, “Посмотрите в интернете”, “Делайте по прототипу”.  Не то, чтобы таких ответов быть не должно совсем (это невозможно), но наряду с ними вы должны иногда получать и ответы “Мне нужен день-два, чтобы разобраться с вашим вопросом и тогда я смогу дать ответ. А если вы решите эту проблему самостоятельно раньше, – дайте мне, пожалуйста, об этом знать”.

Выполнение (или невыполнение) описанных выше требований может быть осуществлено только на уровне обучающий-обучаемый. Никакие формальные структуры, стоящие над этими людьми (подписанные договора, деканаты, директора курсов…) практически не имеют рычагов, кроме как попрощаться с кем-то из них, чтобы вмешаться в процесс обучения.

Поэтому мораль из всего вышеизложенного простая. Если вы решили использовать в освоении профессии программиста дополнительное средство под названием “КУРСЫ ПО ПРОГРАММИРОВАНИЮ“, то его эффективность зависит практически полностью от того, с каким конкретно преподавателем вы будете работать по той технологии, по которой вы собираетесь трудоустраиваться. Это и нужно выяснять в первую очередь, потратив  на сбор информации определенные усилия.


Автор публикации:

Оставить комментарий

Ваш адрес email не будет опубликован.


*