Так вы хотите стать Ruby разработчиком?

от автора

В каком-то времени, меня попросили создать команду Ruby для отдельного подразделения Codequest’s, что означало, что я стану Тимлидом (черт возьми, да!!!) и — что более важно, по сути стать стал человеком, к которому обращаются все HR, пытающиеся набрать новых разработчиков (хм…). Совершенно очевидно, большинство из этих разработчиков, были новичками со средними знаниями. Подходя к каждому интервью, я не забываю, что не так давно я сам был начинающим студентом, сидящим по другую сторону стола, поэтому я делаю все возможное, чтобы быть терпеливым, добрым и дать каждому кандидату честную и полезную обратную связь, даже если мы решим, что им нужно еще немного опыта, чтобы быть принятыми. Как бы там не было, я выявил некоторые закономерности – многие разработчики, особенно новички, делают ошибки, которые не только затрудняют их старт, но и которые можно легко избежать, если бы им только кто-то сказал об этом ранее. Я сам совершил большинство из этих ошибок в свое время, и, если бы меня кто-то об этом предупредил, хотя может так и было, просто я не слушал их, вероятно, это бы спасло меня от многих разочарований – поэтому, чтобы облегчить чью-то жизнь, я постараюсь указать, на то, что новичок (или даже middle) может сделать лучше, если он хочет эффективно развиваться, как разработчик в престижном направлении разработки программного обеспечение.

GitHub

Все в сообществе знают, что ваш репозиторий GitHub — это то, что действительно важно для будущего работодателя. Или нет? Если вы написали библиотеку с открытым исходным кодом, которую используют люди, или внесли в нее свой вклад, да, это может быть довольно ценным козырем. Если вы написали приложение, даже если это учебное приложение, которое решает некоторые повседневные проблемы, которые у вас есть — это также может показать ваши навыки. Однако если все репозитории, которые вы должны показать, — это наполовину законченные задачи других компаний, не затронутые ни разу за последние девять месяцев, или супер-базовые Rails, с момента написания вашего первого «rails new», действительно ли вы хотите, чтобы мы это увидели(O_O)? Возможно ты сейчас намного лучше, чем 9 месяцев назад, черт возьми, наверное, так и есть, но мы этого не знаем, и когда ты посылаешь нам ссылку, на кладбище кода -ну, как говорится, у вас есть только один шанс произвести первое впечатление, верно?

И это относится не только к новичкам (junior) — если бы вы заглянули в мои репозитории GitHub, вы бы нашли точно такие же вещи повсюду — задания по набору персонала из прошлых лет, некоторые заброшенные эксперименты на ЯП, которые я изучал по пути и т. д. Я делаю коммиты(commit) на GitHub каждый день – но эти коммиты относятся к приватным репозиториям, здесь нечего показывать. Так что я пытаюсь сказать, это: нормально, если в вашем GitHub ничего не плодится и не размножается, но в таком случае не показываете его нам.

Ruby

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

Возможно, вы подумаете, что это ускорит ваш прогресс —в конце концов, настройка базового приложения Rails очень проста — но очень скоро вы обнаружите, что на самом деле не понимаете, почему это работает, вы будете знать только, что это работает, когда настроен определенным образом, и первая ошибка, с которой вы столкнетесь, заставит вас просто сидеть и просматривать, Stack Overflow, ища кого-то, у кого была подобная проблема.

Думайте об этом так, — вы же не будете пытаться написать книгу на иностранном языке, используя только Google Translate и цитаты из ваших любимых фильмов, верно? И это то, чем является написания приложения — вы буквально пишете то, что должно иметь смысл, и чем лучше вы знаете язык, тем лучше вы можете передать предполагаемый смысл, тем эффективнее вы становитесь в составлении предложений — тем больше смысла это имеет. Когда вы знаете только Rails, ваш словарный запас очень ограничен, и моя -> твоя не понимать. И я могу заверить вас, вы не захотите работать в компании, которая хочет кого-то подобного, потому что уже очень скоро вы превратитесь в робота, который реализует только основные функции CRUD, что является захватывающим в течение, например, двух месяцев, но затем быстро становится неотъемлемой частью быта, подобно чистки зубов-вы должны сделать это, и вы делаете это, но это не совсем то, чего хотелось бы, не так ли?

Я научился начинать каждое интервью с очень простого, основного вопроса:
— В Ruby, что такое класс, что такое модуль, в чем их отличия и для чего они нужны?
Вы бы удивились, узнав, как много людей на самом деле этого не знают! И это люди, которые хотят стать разработчиками программного обеспечения. Все они могут создать блог с постами и комментариями в считанные минуты — и это все, Карл. Был у меня один кандидат, на должность mid разработчика, который утверждал, что работал в течение года над клиентским приложением в качестве руководителя команды — и он до сих пор не знает, что такое модуль Ruby.

Не будьте такими. Учите Ruby. Существует множество ресурсов для этого. Один из лучших, что я знаю — The Ruby Reference — Ruby онлайн-книга, которая ссылается на официальную документацию, но является более удобным и понятным для чтения. Прочитайте это, изучите это, и почувствуйте, как ваш орган стал, в холодной воде больше, чем есть.

Rails

Сказав вышеcказанное, давайте не будем забывать, что Rails-это каркас Ruby, для написания веб-приложения. Есть большой шанс того, что он станет вашим повседневным основным инструментом — так что потратьте время, черт возьми, чтобы понять, как он работает! Rails Guides — это очень доступная и довольно обширная документация — найдите время, чтобы прочитать и изучить ее.

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

Учебные пособия

Уроки великолепны – все их используют! Однако следовать чьим — то инструкциям недостаточно-помните, что цель этого пособия-не создать рабочий блог с постами и комментариями, а научиться Вас создавать свое собственное приложение. И это именно то, что вы должны научиться делать, как можно скорее. Вспомните все те моменты, когда вы думали ‘ " если бы у меня было только приложение для этого!!!!". Или, может быть, спросите своих друзей и семью, хотели бы они иметь в своем распоряжении, приложение, в котором они нуждаются. Это может быть что угодно — простой органайзер задач, список желаний, любое приложение. Мое первое приложение было своего рода записной книжкой для экспериментов моей жены в ее лаборатории (она ученый, и да, в случае, если вы занимаетесь математикой, я начал программировать в тридцать лет). Я так и не закончил его, но это не имеет значения — в данном случае речь идет о процессе, а не о результате. При выполнении урока, вы имеете дело с искусственными проблемами и готовыми решениями — когда вы создаете свою собственную вещь, вы вынуждены думать, как построить ее. Вы должны найти решение своих проблем самостоятельно — и я твердо верю, что нет лучшего способа научиться творить, чем начать творить, потому что это то, что вы будете делать как веб-разработчик в студии. Преодоление трудностей, даст вам огромное чувство удовлетворения, укрепит вашу уверенность и зажжет ту искру, которая заставляет нас часами сидеть, сгорбившись над клавиатурой, только чтобы увидеть правильный JSON или рабочую регистрационную форму. Это даст вам опыт и что-то, что можно показать. Ваш код не обязательно должен быть красивым или кричащим — вы новичок, никто не ожидает, что вы напишете операционную систему! Если вы только, черт возьми не Chuck Norris!

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

Мистер Хороший парень.

Этот последний пункт относится не к одному конкретному уровню опыта, а по существу ко всем, кто работает в нашей отрасли. Все очень просто — не будь мудаком. Будьте добры к другим. Будь полезным. Улыбайся. Спросите, если не знаете, объясните, если спросят. Не смотрите на людей свысока, если они ничего не знают, потому что каждый из нас может быть на его месте в любой момент-информатика, программирование и вообще это такая широкая область, что практически невозможно быть экспертом во всем. Признайте, что вы можете учиться у любого, даже если у них есть лишь доля вашего опыта. Учите других, потому что учить других-это один из лучших способов проверить то, что вы действительно знаете. И примите тот факт, что, если вы самый умный человек в комнате, вы должны сменить комнату, потому что это единственный способ расти и не становиться самодовольным. Проверьте свои знания и навыки и как можно чаще покидайте зону комфорта, потому что, как гласит общепринятая практика в тренажерном зале, «если болит, значит растет».

Если вы также занимаетесь front-end разработкой, обязательно ознакомьтесь с полным списком наиболее распространенных ошибок начинающих разработчиков front-end, составленным нашим front-end Тимлидом Петром Кабачинским.

ссылка на оригинал статьи https://habr.com/ru/post/489386/


Комментарии

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *