Главная / разное / Я переучиваю людей на Java-программистов

Я переучиваю людей на Java-программистов

Когда я вижу друзей, которые вкалывают в два раза больше, а зарабатывают в четыре раза меньше, каждый раз начинается разговор:
— А ты бы не хотел поработать программистом? Ты же реально умный. Может ты просто не на своем месте?

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

Немного о себе: десять лет программирования. Половину которого программировал на Java. Всего я переучил на программистов восемь человек. Еще троих учу прямо сейчас. Переучиваю, только если вижу, что человеку такая работа подойдет.
Об учениках: 3 парня и 8 девушек. У половины техническое образование. Также есть юрист, экономист, бухгалтер и историк. Некоторые уже где-то работали, некоторые только закончили универ. Программированием никто не занимался со школы. Частая история: закончил (а) универ, а кем и где работать — хз.

Почему программирование?

Прежде чем учить человека программированию, лучше объяснить, что это дает и зачем оно ему нужно.
1. Несложная интересная работа.

Программирование — это несложная и интересная работа. Была возможность сравнить с тем, чем в банке экономисты занимаются. Это небо и земля. В банке все гораздо скучнее. Да и соблюдать дресс-код в 30-ти градусную жару не очень приятное дело.
2. Хорошо оплачивается.
Мне просто приятно видеть, как мои друзья через 5 лет работы начали покупать себе машины или квартиры.
3. Гибкий график.
Жесткий график — это неприятно. Это вам подтвердит каждый, кто стоял в пробке в час пик, или кого штрафовали за опоздание в 5 минут. А как насчет возможности приходить на работу в 11 утра, а уходить в 5? Скажете мечта? Для большинства программистов это реальность. Справляйтесь со своей работой, и вам слова никто не скажет. Во многих конторах вы можете не приходить на работу, а работать из дома.
4. Профессиональный рост.
Почти в любой организации, чтобы получить престижную должность и хорошо зарабатывать, нужно делать карьеру. Программисту достаточно просто оставаться программистом. Вам не нужно переучиваться с программиста на администратора или бороться за должность начальника. Можно просто расти профессионально. Программисты с пятью-десятью годами опыта работы получают шикарные зарплаты.
5. Высокая международная мобильность.
Три самых высокооплачиваемых специальности на западе: юрист, хирург/врач и программист. Но наш юрист за границей будет бесполезен: другие законы, прецедентное право и т.д. Врачу нужно учить язык, заново сдавать экзамены. Программисту ничего учить не придется. Тот же язык. Те же стандарты. Часто даже заказчики те же.

Почему именно Java?

Совокупность трех следующих факторов и заставила меня переучивать людей на джавистов.
1. Java — один из самых легких языков для изучения
У меня получается научить человека за три месяца.
2. Большой спрос на рынке труда.
Можно устроиться на работу без опыта. Фирмы охотно берут на работу толковых новичков и занимаются их дальнейшим обучением.
3. Самые высокие зарплаты по отрасли.
Одни из самых высоких. Особенно актуально для начинающих программистов.

Ключевой принцип

Есть такое хорошее правило, чтобы собрать рюкзак в поход:
1. составьте список всего необходимого
2. вычеркните все, без чего можно обойтись.

Примерно представляю, чем придется заниматься java junior в первый год работы. Знания, без которых можно обойтись в первый год работы — исключаем!

Я выкинул из обучения много интересных и хороших вещей. Чтобы стать хорошими программистами их придется учить. Но я даю достаточный минимум, чтобы устроиться на работу. Одна теория без практики часто оказывается неэффективна.

Вот чем я советую заниматься java junior в первый год обучения:
1. Радоваться, что есть хорошая работа.
2. Изучать проект.
3. Читать умные книжки.

Формат занятий

Одновременно учу 2-3 человек. Оптимальный размер группы для меня – три человека. Три месяца. Два занятия в неделю по четыре часа. Всего 25 уроков.
Все объясняю исключительно на примерах. Наглядность наше все. Например, чтобы понять коллекции, мы написали на занятии свои ArrayList & LinkedList. Даю домашние задания для закрепления материала.

С чего лучше начать?

С паскаля. Как показывает практика и мой субъективный опыт, все в школе изучали паскаль. В зависимости от ситуации выделяю 2-4 занятия на вспоминание паскаля.
1 Переменные и ReadLn/WriteLn.
2 if, for, while, массивы.
3 Функции и процедуры.
4 Закрепление изученного.

Формат уроков

Обычно рассказываю новую тему 10-20 минут.
Сажусь за компьютер (остальные сидят рядом) и пишу работающие примеры рассказанного. Потом, всем по очереди даю задания по текущей теме. Каждый человек за такой урок успевает сделать по 3-5 небольших заданий.
Поощряю подсказывать друг другу (учит работе в команде).
Подсматривать старые примеры можно. Копипастить ничего нельзя.

Краткое содержание первого урока по Java

(может не быть первым из всех, если были предварительные уроки по паскалю)
1 Рассказываю, что такое Java, JVM, JDK, J2SE, J2EE
2 Устанавливаем JDK, IDE (мой выбор — Intellij IDEA)
3 Создание первой программы. Показываю один раз, затем народ повторяет.
4 Ввод/Вывод, работа с переменными. Провожу аналогии с паскалем — очень помогает. Гораздо легче понять материал, когда есть аналогия с тем, что знаешь.

Альтернативные методики

Участие в свободных проектах — идеальный инструмент для саморазвития. Человеку, который может хорошо работать, но не фанатеет от программирования, подходит плохо.

Чему учу

Чему не учу

1 Алгоритмам, графам и т.д.
Сам призер кучи олимпиад. За 10 лет реальной работы ничего не понадобилось.
2 UI, аплеты и т.д.
Скорее всего, будущие проекты в жизни моих учеников будут связаны с Tomcat, JBoss, WebLogic
3 HTML/JavaScript
Непрофильные навыки. Рекомендую заниматься самообучением.

Работа

Я не могу научить всему, да и не стараюсь.
Моя цель в том, чтобы человек получил работу, фирма — перспективного сотрудника, и обе стороны были заинтересованы в его дальнейшем обучении.

Как устроиться на работу. Ключевые моменты.

1. Правильно составить резюме.
Представьте, какой договор может составить профессиональный юрист, а какой — обычный неподготовленный человек. В важных вещах не нужно стесняться обращаться к профессионалам. Так и тут: резюме нужно не составлять самому, а попросить знающего человека.
2. Собеседование
Я провожу несколько тестовых собеседований. И отправляю «выпускников» походить на собеседования в несколько контор — для опыта.
3. Опыт
В резюме должно быть от 3 до 6 месяцев опыта работы. Это добавляет уверенности человеку, который решил взять вас на работу.

Идти работать только в айтишные конторы.

А еще лучше в большие айтишные конторы. Только они занимаются обучением новичков. Цель первого года работы — получить как можно больше опыта, а не денег. Уже на позиции middle developer спрос превышает предложение, и зарплаты начинают резко расти.

Истории из жизни учеников

Как правильно просить повышения.
История одной моей ученицы.
— Получала я как-то зарплату в $2400. Подошел очередной срок пересмотра зарплаты. Хочу 2800, но как договориться?

Решила попросить $3000, с таким расчетом, чтобы сторговаться на 2800. Однако когда дошло до обсуждения новой суммы, выяснилось, что выше 2600 поднимать не хотят. Неужели я не стою больше? — подумала я, и записалась на собеседование в стороннюю фирму.

Через пару дней сходила на собеседование, там предложили $3000.
Прихожу на следующий день на работу, распечатала job offer, и к менеджеру на разговор. Подумал он, позвонил куда-то. Через полчаса подошел и предложил $3200.

Довольная звоню в фирму, где проходила собеседование и говорю, что не могу у вас работать, так как на текущем месте работы предложили 3200. Там предлагают 3400. Совсем выбили из колеи. Я же уже настроилась продолжать работать, а тут такие новости. Но т.к. боевой настрой еще был, опять пошла к шефу. В итоге получила $3600.

Гораздо больше шансов получить прибавку к зарплате, если оба (я и шеф) уверены, что я стою большего.

Самая быстрая карьера в истории.

История номер два. Рассказываю от первого лица.
Решил я устроиться на свою первую работу. Составил резюме на позицию java junior, приписал 4 месяца опыта в несуществующей форме и пошел на собеседование.

Взяли. Поработал три месяца. Учил java и разбирался в проекте. Но фирма не понравилась. Через три месяца уволился. Посидел дома месяц, позанимался, и пошел на собеседования снова. В этот раз я уже искал позицию java middle и, по резюме, имел год опыта работы. Поработал два месяца. Проекту с десяток лет, профессионалы справляются, но новичку на таком проекте очень скучно. Уволился.

Нашел новую работу. Теперь в моем в резюме было полтора года стажа. В этот раз проект полностью устраивал, но хотелось развиваться и другую зарплату. Должна же быть где-то фирма, которую я ищу — думал я. Поработал три месяца.

На свою последнюю работу, устроился на позицию senjor java developer. Три года работы в резюме внушали уважение. Уже три года работаю в понравившейся фирме. Именно то, что я искал. Я доволен, заказчик тоже.

Тут главное не останавливаться. Не нужно молча терпеть, если видите, что не ваше. Не бойтесь увольняться. Возможно идеальная работа от вас в одном собеседовании. Ну, или в двух, трех, четырех.

Тонкие моменты

Чтобы быть хорошим программистом надо изучить очень много. Невозможно это сделать без желания учиться и любви к программированию.

Я вплетаю желание учиться/развиваться в сам процесс обучения. Это же не чужие мне люди: вкладываю душу, даю интересные задачи. Они занимаются не потому что надо, а потому что им интересно. Как забытое с детства удовольствие, когда делаешь что-то новое, и у тебя получается.

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

Мои ученики убеждены, что программирование — это легко, интересно и креативно. И оно становиться для них таким!

О собеседованиях

Человека можно оценить только по результатам его работы, а не по резюме, куда каждый что хочет, то и пишет. Зарплата часто назначается по результатам собеседования, которое проходит до того, как человека увидели в работе. Как результат — часто возникает ошибка оценки квалификации и вклада специалиста в работу, особенно если работодатель небрежно относится к собеседованию. При справедливой оценке ЗП в $700, можно ведь год работать на $1000 в месяц, а можно и на $500. Я делаю все, чтобы эта ошибка, если она возникнет, была в сторону кандидата — моего ученика.

P.S.
Сегодня у моей первой ученицы первый день работы тимлидом. Горжусь ей.[via habrahabr]