прислать материал
AIN.UA » СообществоИстория про плохого программиста, или Как не надо идти в IT

История про плохого программиста, или Как не надо идти в IT

11554 13

Быть айтишником стало настолько круто, что сегодня каждый первый подумывает записаться на курсы и сменить профессию. Но стать конкурентным кандидатом на пост джуниора, закончив коротенький буткемп, нельзя. Для людей, которые не хотят трудиться и вникать, но жаждут получить оффер, есть только один путь — обман. С одним из таких удальцов однажды столкнулся разработчик Джеймс Джелинек. Недоумение, разочарование и злость, испытанные в процессе общения с этим человеком, Джеймс обратил в поучительную историю о том, как не надо входить в IT.

Прежде чем я начну, позвольте мне акцентировать вот на чем…

Программирование — это, черт побери, сложно!

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

Эта статья про кодера-обманщика и о том, как я пытался направить его на путь истинный.

Несколько лет назад я встретил смышленого 30-ти с чем-то летнего джентльмена, из соображений анонимности назовем его Брайан. Брайан очень интересовался веб-разработкой и уже около года флиртовал с Ruby on Rails. Он даже ходил на один из этих сумасшедше дорогих кодинговых буткемпов (фу!), которые обещают с нуля обучить любого желающего программированию за 12 недель. Он работал торговым представителем и у него было 12 лет опыта в бизнесе, при этом он отчаянного хотел ворваться в мир софтверной разработки.

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

Мы собирались работать над совершенствованием его приложений (преимущественно блог и to-do приложения) и медленно но верно изучать с ним основы. С самого начала я был шокирован, насколько слабо он на самом деле знает Ruby on Rails после 12-недельного буткемпа. Я призвал его изучить язык Ruby глубже, поскольку он — ядро Rails, и без этого Брайан далеко не уйдет, полагаясь исключительно на магию, которую нам дарует Rails. Он пообещал работать над чистым Ruby в свободное время, а я, чтобы его подстегнуть, присылал ему копии любимых книг по Ruby, которые в свое время действительно помогли мне.

Мне казалось, я хороший ментор. О, как я ошибался!

Первый тревожный звоночек

Я зафоловил Брайана на GitHub и частенько просматривал его репы, давал рекомендации, что можно улучшить, комментировал дизайн. Однажды я проснулся и заглянул в его аккаунт, а там уже с утра было пять новых репозиториев, практически готовых. В каждом 2-3 коммита, довольно крупный репо. Выглядело так, будто он скопировал приложение и закоммитил его на Git большими кусками.

Когда я спросил его про эти новые пять приложений, которые возникли из ниоткуда за один день, он ответил: «Я работал с пятью разными туториалами и хотел заполнить свой репозиторий за 24 часа». Я спросил: «Ты копипастил код приложения или на самом деле писал его постепенно своими руками, чтобы лучше вникнуть?». Он ответил: «Там все очень просто, так что я просто скопировал и вставил код в свои репы и сделал много коммитов. Для работодателей это будет выглядеть круто!».

Он говорил с энтузиазмом, но я должен был его приструнить.

Конечно, многие программисты копипастят готовые решения, которые находят в интернете, но разница между новичком и ветераном в том, что новичок понятия не имеет, как работает код, который он копирует — он знает лишь, что кто-то другой сделал так, чтобы он работал. Вопрос «как» начинает интересовать его гораздо позже. В свою очередь ветеран копирует решение, прочитывает его, чтобы понять, что оно делает, и переписывает под свой конкретный юзкейс.

Копипастить код не круто, но это не конец света до тех пор, пока ты заимствуешь чужой код достаточно ответственно.

Я объяснил Брайану, что работодатели спросят его про этот код, и когда он не сможет ответить, как что работает и почему, его сочтут некомпетентным. Мы какое-то время спорили на эту тему, пока он не заявил: «Я оставлю эти репы сверху и разберусь, что я построил, чтобы понять».

Мы несколько раз посидели вместе — я пытался заставить его вникнуть, но Брайан почему-то упорно верил в то, что ему не обязательно ничего понимать, потому что у него есть некая расплывчатая идея того, как все работает, а если припечет, всегда можно почитать справочные материалы.

Но ведь это была даже не его работа! Меня очень разочаровывало его поведение. Если он планировал получить работу на позиции джуниора, это был в корне неправильный подход. Работодатели хотят видеть именно твой авторский код, а не какое-то дерьмо, скопированное из туториалов, чтобы закосить под компетентного разработчика.

Второй тревожный звоночек

Однажды Брайан написал мне в Slack и попросил помочь с упражнением по Ruby. Это была типичная задачка, которую большинство работодателей задают, чтобы понять, насколько ты вообще в теме. Все закончилось тем, что я просто выполнил задание за него и объяснил, как там все работает. Он ответил: «Здорово, я вышлю это сегодня же вечером!».

Я возмутился: «Эй, погоди. Так это было тестовое задание на работу, и ты заставил меня выполнить его вместо тебя?». После чего Брайан быстро вышел из Slack.

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

Третий тревожный звоночек

Вскоре я увидел новый репо на его GitHub-аккаунте под названием «capstone_test». Это было полномасштабное CMS-приложение 18-ти часов от роду. Не существовало ни малейшей вероятности того, что он мог построить это за 18 часов без посторонней помощи. Напоминаю, что я оцениваю временные возможности, исходя из его навыков читать и писать код. Поскольку это был общедоступный репо, я сделал несколько комментариев о том, как он мог бы улучшить приложение. Конечно, в качестве ментора. На том я его и оставил.

Спустя пару дней он написал мне в Slack и поблагодарил за рекомендации, а также заверил, что внес все изменения и показал результат потенциальному работодателю с просьбой сделать ревью. Когда я спросил, как он построил такую сложную CMS всего за 18 часов, он ответил, что воспользовался AirPair или каким-то другим сервисом, где ему помогли.

Я был в бешенстве. Сначала он сделал так, что я выполнил за него тестовое задание, теперь заплатил ($100 в час) кому-то на AirPair или где там еще, чтобы ему помогли написать его финальное задание, которое он тут же отправил работодателю.

Четвертый… пожарная тревога

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

Позже тем вечером я заглянул в аккаунт Брайана и увидел в нем свои репы. Они были не «форкнутыми», но выложены так, будто он сам их написал. А еще там было несколько дерьмовых коммитов и все в одной куче. Ну не мог он написать три приложения за день. И хотя мой код открыт и мне всегда было все равно, кто его использует, я хотел, чтобы он использовался в хороших целях, а не для того, чтобы кого-то обмануть.

Брайан получает работу

LinkedIn уведомил меня, что отныне Брайан — «Разработчик в компании Acme», и я поздравил его на новом месте, пожелав удачи.

Две недели Брайан хранил молчание, аж пока не настал его первый день на работе. И тут он начал задавать мне все возможные вопросы, которые были намного сложнее его собственного уровня (например, про веб-сокеты и как работает дата стриминг, и лучшие реализации на Rails).

Я послал ему несколько ссылок и спросил, над чем он сейчас работает. Оказалось, это была система уведомлений в реальном времени, которую ему задали разработать на новой работе. И он признал, что понятия не имеет, что делает.

Я был в ярости. Этот человек занял хорошую позицию для джуниора, будучи обманщиком. А что расстраивало меня еще больше, его зарплата была на $20 000 в год больше, чем моя.

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

Надо было что-то решать с Брайаном и быстро. Я решил игнорировать его в Slack и предоставить возможность самому решать свои проблемы. Если бы мой ментор поймал меня на подобном дерьме, он бы забанил меня в ту же секунду.

Брайан теряет работу

Прошел месяц, и я ничего не слышал от Брайана. Я поглядывал в его блог, где он еженедельно публиковал туториалы. Я надеялся, что он учится, но все эти статьи были по сути про копипаст-решениями из Stack Overflow, а объяснения также были сплагиачены. Это все был обман.

Однажды Брайан появился в Slack и спросил, знает ли кто-нибудь что-нибудь о компании, которая ищет программиста. Я спросил, что стало с его предыдущей работой. Он ответил, что она ему не подошла и он ищет новое место. Едва ли он знал, что у меня в этой компании есть знакомые и я докопаюсь до истины.

Этот знакомый рассказал мне, что в компании заподозрили, что Брайан никакой ни джуниор, а его решения — все из StackOverflow. По всей видимости они дали ему три недели на то, чтобы выполнить задачу, в противном случае пригрозив уволить. Я же, в свою очередь, рассказал своему источнику о том, каким образом выполнялись тестовые задания, которые они давали Брайану. Он пришел в бешенство и без промедлений позвонил руководителю по разработке.

Через два дня уволенный Брайан вернулся в торговлю.

Чему учит эта история

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

После всего, что произошло, Брайан несколько раз пытался достучаться до меня и попросить помощи в поиске новой работы. Я ответил, что не могу работать с человеком, которому не могу доверять, и что теперь он сам по себе. После этого он больше не пытался со мной говорить, но по сей день он копипастит решения и ищет работу программистом.

Мораль такая: не будь как Брайан.

Заметили ошибку? Выделите ее и нажмите Ctrl+Enter, чтобы сообщить нам.

Также подобрали для вас

загрузить еще

Добавить комментарий

Такой e-mail уже зарегистрирован. Воспользуйтесь формой входа или введите другой.

Вы ввели некорректные логин или пароль

13 комментариев

по хронологии
по рейтингу сначала новые по хронологии
Grisha Kolodyazhniy

бедняга, продержался бы полгода, пошел бы в pm-ы))

О чем пост, то? Жалобы слюни и т.д. У каждого свой путь, и у каждого, из нас, таких историй с горой и маленькой тележкой будет.

Ниочем

Viktor Ležnev

Какой завистливый "наставник".
Если бы не имя Брайан, подумал бы что человек из бывшего СНГ 🙂

greenredbrandstudio

Жир ))) Отличный материал! Поднял настроение под кофеек =)

Vladimir Tkachenko

Вам редакторы не нужны?)

"30-ти с чем-то летнего джентльмена" -- нельзя же так жестоко.

читай оригиналы 🙂
Статьи, которые переводит аин, обычно облетают весь интернет неделю до публикации. Так что, читайте медиум, топовые зарубежные рассылки, реддит 🙂

В оригинале качественнее, интереснее и полезно для изучения языка.

Vladimir Tkachenko

Спасибо за совет, но это профессиональная боль)

С "прохфесиональностью" тут уже нечего не поделаешь 🙂
Если есть читатель на такой контент, то будут и такие же журналисты.

Vladimir Tkachenko

"...с удовольствием читают более полутора миллионов человек."

Вы же тоже как-то здесь оказались)

да, я просматриваю аин раз в неделю и комментирую. Большую часть статей уже читала в оригинале ( я занимаюсь контентом для tech, iOS, mobile, startup). Читаю тут колонки друзей: Руслана Назаренка, статьи про стартап своего парня (Ecoisme) и бомбящие пуканы 🙂

Vladimir Tkachenko

Стартап у вас действительно классный и полезный. Успехов!

id406907273

Новости Гуся - http://goosetoday.com/

Eugene Chernenko

друг Брайана (автор) еще больший мудак, чем сам Брайан

Поиск

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: