Документация
Здесь вы найдете отсылки к руководствам, урокам и ссылкам, которые могут быть полезны, если вы почувствуете, что хотите программировать на Ruby.
Установка Ruby
Если вы хотите попробовать Ruby не только в браузере (смотрите ссылки ниже), но и локально – вам нужно установить Ruby на ваш компьютер. Вы можете проверить, установлен ли Ruby на ваш компьютер, набрав в терминале
ruby -v
Это должно вывести некоторую информацию об установленной версии Ruby. Если нет, смотрите страницу установки с различными способами получить Ruby.
С чего начать
Try Ruby! Интерактивное введение, которое даст вам возможность попробовать Ruby прямо в вашем браузере. 15-ти минутная вводная часть нацелена на начинающих, кто хочет почувствовать возможности языка. Ruby Koans Данный ресурс поведет вас по пути просвещения к знаниям о Ruby. Цель ресурса – изучить язык Ruby, его синтаксис, структуру и несколько стандартных функций и библиотек. Так же он обучит вас культуре. Why’s (Poignant) Guide to Ruby Необычная, но интересная книга, которая научит вас Ruby посредством историй, шуток и комиксов. Созданное программистом why the lucky stiff, данное руководство является классикой для изучения Ruby. Ruby за двадцать минут Неплохое введение, покрывающее основы Ruby. Прохождение его от начала до конца не должно занять у вас более двадцати минут. В Ruby из других языков Пришли в мир Ruby из другого языка? Будь это C, C++, Java, Perl, PHP или Python – этот раздел вам поможет! Ruby Essentials Бесплатная онлайн-книга, предоставляющая краткое и легкое руководство для изучения Ruby. Learn to Program Замечательное маленькое руководство от Chris Pine для новичков в программировании. Если вы не знаете как программировать — начните отсюда. Learn Ruby the Hard Way Отличный набор упражнений с объяснениями, который поможет вам пройти путь от абсолютно базовых понятий Ruby до ООП и веб-разработки.
Руководства
Programming Ruby Основополагающая работа по Ruby на английском в первом издании, книга от Pragmatic Programmers, доступна бесплатно онлайн. The Ruby Programming Wikibook Бесплатное онлайн-руководство для начинающих и продвинутых, плюс полная документация языка.
Документация языка
Ruby Core Reference Полученная прямиком из исходного кода при помощи RDoc, эта документация охватывает все классы и модули ядра (такие как String, Array, Symbol и так далее). Ruby Standard Library Reference Так же полученная прямо из исходного кода при помощи RDoc, эта документация охватывает стандартные библиотеки. RubyDoc.info Веб-сайт содержащий в себе документацию о гемах Ruby и Ruby проектах, расположенных на GitHub. Ruby & Rails Searchable API Docs Rails и Ruby документация с умным поиском. APIdock Ruby, Rails и RSpec документация с комментариями и заметками пользователей. RubyAPI.org Легко находите и просматривайте классы, модули и методы Ruby.
Редакторы и среды разработки
Для программирования на Ruby вы можете использовать стандартный редактор вашей операционной системы. Кстати, для более эффективного написания кода, стоит использовать редактор с поддержкой Ruby (например, подсветка синтаксиса, просмотр файлов) или среду разработки с продвинутыми функциями (например, code completion, рефакторинг, поддержка тестирования).
Далее следует список популярных инструментов, используемых рубистами:
- Инструменты для Linux и кросс-платформенные инструменты:
- Aptana Studio
- Emacs с Ruby режимом и Rsense
- Geany
- gedit
- Vim с vim-ruby плагином и Rsense
- RubyMine
- SciTe
- NetBeans
- Sublime Text
- Notepad++
- E-TextEditor
- Ruby In Steel
- TextMate
- BBEdit
Дальнейшее чтение
Ruby-Doc.org поддерживает актуальный список англоязычных источников. Если у вас есть вопросы по Ruby, почтовая рассылка – отличное место их задать.
Код в стиле Ruby: грамотно, красиво и рационально. Пример для начинающих
Это перевод поста Майкла МакКи. Майкл — профессиональный программист, который время от времени делится своим опытом и навыками с коллегами, как начинающими кодерами, так и профессионалами.
Большинство программистов в последнюю очередь думают об эстетике кода, который они создают. Конечно, общих правил придерживаются почти все. Но что, если пойти дальше? Хороший код, в первую очередь, должен работать. Но я считаю, что у него должен быть свой стиль, это касается не только содержания, но и формы.
Skillbox рекомендует: Практический годовой курс «PHP-разработчик с нуля до PRO».
Напоминаем: для всех читателей «Хабра» — скидка 10 000 рублей при записи на любой курс Skillbox по промокоду «Хабр».На самом деле это не так. Вот некоторые проблемы, с которыми сталкиваются все начинающие программисты, которые занимаются самообразованием. Про это есть тонны статей и заметок, но я хочу рассказать, как оформить код визуально так, чтобы он был не только корректным, но и неплохо выглядел со стороны. Я считаю, что самовыражаться можно не только в изобразительном искусстве — это можно делать всегда и везде.
Для меня очень важна организация работы, а также ее визуальная форма. Ruby — отличный вариант языка программирования, как будто специально сделанный, чтобы отвечать моим требованиям, поскольку позволяет делать то, что мы хотим, без всяких проблем. Он гибкий, стильный и логичный.
Давайте рассмотрим этот пример.

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

Уф! Намного лучше. Теперь мы видим, что к чему относится и каким образом. Но и этот код можно улучшить. Декларирование attr_reader и attr_accessor можно сделать еще более выразительным.

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

Здесь уже легко понять, где есть только возможность чтения, где — и чтения, и записи.
Давайте теперь посмотрим на следующую часть этого класса — метод инициализации. Здесь можно сделать много чего.

В принципе, код читаем, вроде бы все хорошо. Но можно сделать и лучше.

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

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

Ох, блин. Здесь в самом начале создается новый репозиторий для хранения классов транзакций. Всего их три, каждый используется для теста, попадания в хеш для более позднего использования. Причем для класса, который мы собираемся создавать, требуется немало атрибутов. Каждый из них имеет довольно длинное имя и значение. Что можно улучшить так, чтобы код выглядел хорошо?

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

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

Новый код читаем — и гораздо более human friendly, если так можно выразиться. У нас ясно видны все атрибуты и присваивания. Возможный дебаггинг становится проще. Что-то может пойти не так, и потом выяснять, что и почему не работает, будет сложно, если не привести код к «красивому» виду.
Когда мы пишем программы, нельзя забывать: важно не только то, чтобы они работали корректно, но еще и то, чтобы принцип их функционирования был понятен коллегам, если это потребуется. Код должен быть логичным, разбитым на абзацы, предложения и структурные разделы.
Ну и в конце — мой любимый пример для Ruby. Давайте его рассмотрим.

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

Подобный метод работает во многих случаях и я рекомендую его использовать по возможности.
В целом, статью можно назвать тривиальной, но она дает возможность новичку понять красоту кода. То есть сам код должен быть не только рабочим, но еще и понятным — пускай даже в том случае, когда программа пишется только для себя. Если выработать привычку создавать красивый работающий код, это может помочь вашему профессиональному росту.
- Онлайн-курс «Профессия Frontend-разработчик».
- Образовательный онлайн-курс «Профессия веб-разработчик».
- Практический курс «Мобильный разработчик PRO».
Ruby
Ruby — это язык программирования, который можно использовать для разных целей. Чаще всего он применяется в веб-разработке. Ruby высокоуровневый, близкий к человеку: код на нем интуитивно понятный, а писать программы удобно. Язык часто используют со фреймворком Ruby on Rails для веб-программирования.

Освойте профессию
«Fullstack-разработчик на Python»Язык создал в 1995 году японский программист Юкихиро Мацумото (Matz), но распространяться в Европе он начал только в 2000-х: сначала вся документация Ruby была на японском языке и европейцы не могли его освоить. Сейчас этот язык находится на 18-м месте в мире по популярности согласно рейтингу TIOBE. Чаще всего Ruby используют как серверный язык, но создавался он как универсальный: на нем можно писать и другие виды программ.
Название читается как «руби», ударение ставится на первый слог. Фреймворк Ruby on Rails русскоязычные разработчики иногда называют «рельсами».
Где используется язык Ruby
Мацумото планировал создать язык общего назначения. Это значит, что в теории его можно использовать для разных целей. Но чаще всего на Ruby пишут серверную часть сайтов и веб-программ с помощью фреймворка Ruby on Rails. Им пользуются бэкендеры и фуллстек-разработчики. Это не единственная, хоть и популярная сфера применения. На Ruby также написаны некоторые программы: Metasploit для пентестинга, Vagrant для работы с виртуальной средой, Homebrew для установки приложений через командную строку в macOS. То есть встретить код, написанный на Ruby, можно фактически в любой сфере разработки.
Профессия / 12 месяцев
Fullstack-разработчик на PythonСоздавайте веб-проекты самостоятельно

Особенности и свойства Ruby
Основной идеей разработчика Ruby было создание языка, который был бы удобен и комфортен, мог «приносить радость программистам». На язык повлиял Perl, который сам Мацумото считал слишком «игрушечным», Python и некоторые другие. Все это сказалось на синтаксисе и особенностях Ruby: язык получился лаконичным, предсказуемым и заточенным под объектно-ориентированное программирование.
Язык для людей. Ruby — язык, созданный так, чтобы с ним легко было управляться человеку. Он помогает снять с программиста рутинные задачи и поручить их компьютеру. Время и трудозатраты человека — важнейший приоритет; если их при выполнении задачи можно сократить, это стоит сделать. Такова основа философии Ruby.
Еще одна идея языка — возможность выполнять одну и ту же задачу несколькими способами в зависимости от того, что удобно разработчику. Понятность и изящество решения в философии Ruby превыше производительности, кроме случаев, где та критична.
Принцип наименьшего удивления. Это характерная черта Ruby: Мацумото было важно, чтобы язык был предсказуемым. Поэтому он вывел «принцип наименьшего удивления»: поведение программы должно вызывать минимум удивления у разработчика. Программа должна вести себя максимально ожидаемым способом и не выдавать сюрпризов. Такой подход, реализованный в Ruby, упрощает работу с языком, отладку и чтение кода.
Интерпретируемость. Ruby — не компилируемый, а интерпретируемый язык. Это значит, что его исполняет программа-интерпретатор — построчно, в режиме реального времени. Компилируемые же языки сначала переводятся в единый блок машинных кодов программой-компилятором, а потом их исполняет система.
Благодаря интерпретируемости Ruby — кроссплатформенный язык, который можно запустить под любой системой, он исполняется одинаково под каждой платформой. Поэтому же он довольно гибкий: в нем реализованы принципы, которые невозможны в компилируемых языках.
Объектно-ориентированный подход. Объектно-ориентированное программирование представляет все сущности, с которыми работает программист, как объекты. Объекты могут взаимодействовать с другими, но не вмешиваться в их внутреннее устройство. Действия с ними происходят внутри методов — специальных свойств-функций, которые прописываются для каждого объекта. Метод объекта можно вызвать и таким образом изменить его сущность.
У объектно-ориентированного программирования много плюсов, в частности четкость и понятность кода, упрощение отладки и ясная архитектура. Его используют в разных сферах разработки — сейчас ООП считается одним из ведущих концептов, хоть и не единственным.
Ruby — язык с сильным уклоном в объектно-ориентированное программирование. В языке много функций для работы с объектами: их создания, изменения, защиты и других действий с ними. Все возможности выстроены так, чтобы реализовывать ООП и работать с этим подходом было удобнее.
Поддержка блоков. Блок — одна из основных конструкций в Ruby и еще одна отличительная особенность языка. Так называется произвольный участок кода, который можно передать в какую-нибудь функцию или метод. Это может быть любой код, в том числе чужой. Он не меняет работу самого метода, но может выполниться внутри него. Для запуска кода из блока существуют особые команды, передающие ему управление. Например, команда yield, которая означает «передай сейчас контроль блоку и исполни его».
Блоками удобно пользоваться, когда нужно, чтобы объект был более гибким и вел себя по-разному в зависимости от обстоятельств.
Динамическая типизация. В Ruby типы определяются динамически. Это значит, что пользователь не задает тип переменной сразу при ее создании: тот определяется, когда переменной присваивается какое-то значение. Если это число, у переменной будет числовой тип, если слово или буква — строковый, и так далее.
Для Ruby действует принцип, который называют утиной типизацией. Это термин, который появился благодаря пословице: «Если что-то плавает, как утка, выглядит, как утка, и крякает, как утка, то скорее всего, это и есть утка». Утиная типизация означает, что сущность определяется по набору ее методов — то есть по тому, как она выглядит и ведет себя, какие у нее свойства.
Многопоточность. В Ruby «из коробки» есть поддержка многопоточности, не связанной с системой. Многопоточность означает, что какие-то процессы могут выполняться параллельно и тем самым повышать производительность программы. Обычно она реализована на низком уровне: «железо» делает несколько вычислений одновременно, а управляется этот процесс на уровне системы.
Ruby — язык более высокого уровня, далекий от «железа», поэтому его многопоточность реализована внутри интерпретатора. Реализация не трогает систему, поэтому многопоточная программа на Ruby кроссплатформенна и не связана с ОС.

Станьте Fullstack-разработчик на Python и найдите стабильную работу
на удаленкеRuby on Rails: особенности и применение
Сейчас Ruby чаще всего применяется вместе с фреймворком Ruby on Rails. Он предназначен для разработки серверной части и служит своеобразным «шаблоном» для веб-приложения. В Ruby on Rails реализована архитектура MVC, которая разделяет приложение на модель данных, представление модели и контроллер. Эти части взаимодействуют друг с другом, и каждая выполняет свою задачу.
Ruby on Rails появился в 2005 году и сейчас стабильно развивается. В свое время он принес в веб-разработку концепты, которые позже появились в других фреймворках, например в Laravel, и в целом повлияли на сферу. Например, это первый веб-фреймворк, в котором появились бесшовная интеграция с БД и миграции.
Идеи «рельсов» продолжают классический Ruby: например, в нем внедрен принцип соглашения по конфигурации. Он означает, что дополнительная конфигурация необходима только там, где еще нет готовых соглашений по реализации чего-то, и поддерживает принцип наименьшего удивления.
Востребованность Ruby и его перспективы
В IT-кругах ходит шутка, что Ruby мертв. На самом деле язык вполне жив и довольно популярен, применяется в разработке крупных проектов и приложений. Волна интереса к нему как к новой технологии угасла, но он занял свою стабильную нишу и востребован в ее рамках.
По данным сервиса W3Techs, который занимается IT-статистикой, процент сайтов на Ruby стабильно растет. Если в 2011 году он составлял 0,5%, то в 2022 году — уже 5,7–6,0%. Рост стал активнее с 2018 года, до того количество сайтов на Ruby не превышало одного процента.
Все это говорит, что язык используется и развивается. Сервис hh.ru показывает пятьсот с лишним вакансий Ruby-разработчиков – и это только Россия и часть СНГ. Востребованность по миру еще выше.
Часто Ruby применяют в стартапах, быстрой разработке, где важно как можно скорее создать работающий прототип и выпустить его на рынок.
Преимущества Ruby
Ориентированность на человека. Разработчики на Ruby говорят, что язык достиг своей цели: он делает программиста счастливым. Его концепты и идеи — такие, чтобы разработчику было удобно, а код понятен для человека. Его легко читать и понимать, он объектно-ориентированный, но его можно адаптировать и под функциональное программирование.
Лаконичность и изящество. Язык спроектирован так, чтобы реализовать изящные, удобные для разработчика концепты, поэтому на нем приятно писать. Это часто отмечают люди, которые перешли на Ruby с других языков: им нравятся практики и концепции, принятые в нем. Решать одну и ту же задачу можно по-разному, и это делает язык гибким. Большой упор делается на изящество решения, в результате код получается чистым и красивым.
Многофункциональность. Ruby можно использовать во множестве сфер, хоть чаще всего его и применяют в веб-разработке. Этот язык также можно встретить в десктопных программах и в приложениях для macOS, а также в других направлениях. Так что в теории на Ruby можно писать почти все что угодно — хотя есть и ограничения, о которых мы расскажем ниже.
Стабильная ниша. Веб-разработка на Ruby востребована, количество вакансий стабильное, а разработчики на этом языке ценятся. Процент сайтов, написанных на Ruby on Rails, увеличивается, хоть и медленно, так что в ближайшее время язык точно останется актуален. Еще Ruby позволяет быстро создать и запустить продукт, поэтому его активно используют в стартапах и технологичных проектах, которые должны скорее выйти на рынок. А это инновации и шанс создать что-то принципиально новое, что «выстрелит» и принесет много пользы.
Востребованность. Может показаться, что вакансий на Ruby меньше, чем на других языках. Но вообще-то разработчиков на этом языке, наоборот, не хватает. Некоторые компании даже идут на такой шаг: нанимают специалистов, пишущих на других языках, и переучивают. Поэтому хороший «рубист» очень ценится, и это отражается на зарплате. Уровень зарплаты разработчиков на Ruby в среднем выше, чем для других популярных языков веб-разработки.
Еще одно следствие такой нехватки хороших специалистов — разработчику на Ruby легко найти работу, а конкуренция при трудоустройстве, скорее всего, будет ниже. Легче всего искать работу программистам, у которых уже есть опыт, но и новички могут устроиться на хорошую вакансию — некоторые компании предпочитают «растить» специалистов с нуля у себя в штате.
Активное сообщество. Сообщество «рубистов» — активное, открытое и дружелюбное. В нем хватает разработчиков с опытом, которые знают, как правильно, и могут подсказать другим. Много внимания уделяется качеству кода и хорошим практикам: в этой сфере принято сразу писать код грамотно, чтобы его было легко и приятно читать. Кроме того, представители сообщества охотно делятся знаниями, а опытные разработчики готовы помочь новичкам и сориентировать их.
Недостатки Ruby
Сложность освоения. Ruby — язык, который довольно сложно учить с нуля, если до того человек никогда не занимался программированием. Новичку желательно сначала освоить базовые концепции программирования и только потом переходить к изучению этого языка. Это можно сделать самостоятельно, с помощью учебников и статей, или на курсах. Действующие разработчики отмечают, что хороший ментор — ключевой фактор в том, насколько качественно начинающий сможет изучить Ruby.
Производительность. Первые версии Ruby критиковали из-за низкой производительности: язык работал в несколько раз медленнее аналогов. Со временем этот недостаток сгладился, но Ruby, как интерпретируемый язык, все равно работает чуть медленнее компилируемых. Поэтому в сферах, где критична скорость, его не используют.
Большие затраты ресурсов. Интерпретатор языка «тяжелый», а язык сложный и потому требует много ресурсов системы на обработку. Так что программы на Ruby не получится писать под маломощные устройства. Это причина, по которой язык практически не используется в мобильной разработке и других подобных сферах.
Отсутствие обратной совместимости. Еще со времен версии 1.8 в Ruby не поддерживается обратная совместимость. Это сделано намеренно, чтобы оставить языку возможность развиваться без оглядки на старые версии. Но отсюда следует, что разные версии Ruby не будут гарантированно совместимы друг с другом, даже если различия между ними очень малы. Это может принести проблемы при переводе проекта на более новую версию языка или при использовании каких-либо библиотек, написанных для другой версии.
Еще одна проблема с совместимостью — многие технологии, библиотеки и фреймворки, написанные для Ruby, поддерживают не все платформы. Поэтому программу на Ruby не всегда можно перенести на другую систему, даже несмотря на кроссплатформенность самого языка.
Неполная многопоточность. Хоть Ruby и многопоточен, в нем есть механизм глобальной блокировки интерпретатора. Это технология для синхронизации потоков, которая не дает одному процессу выполнять больше одного потока кода. Она внедрена для потокобезопасности, но частично ограничивает возможности многопоточности языка — правда, проявляется это преимущественно в нагруженных проектах, которые выполняются на серверах и мощных устройствах.
Fullstack-разработчик на Python
Fullstack-разработчики могут в одиночку сделать IT-проект от архитектуры до интерфейса. Их навыки востребованы у работодателей, особенно в стартапах. Научитесь программировать на Python и JavaScript и создавайте сервисы с нуля.
Как стать Ruby on Rails программистом: история Стаса Мехоношина
Когда я учился в школе, меня всегда тянуло к компьютеру, было интересно как он работает. И выбор будущей профессии был очевиден — “Я хочу быть программистом”. На тот момент я, даже, особо не понимал, что такое программирование. Уроки информатики дали некоторое понимание, но не более, так как писать программы, которые складывают числа в командной строке было не очень то интересно.
В 11 классе я увлекся Delphi, в течение года писал небольшую программку для обработки текстов, и вот тогда я окончательно понял что мне это интересно.
В университете первые года 3 я больше интересовался системным администрированием, и даже устроился работать в универ техником в Лаборатории сетевых технологий. Это была уникальная возможность неплохо прокачаться в компьютерных сетях, серверном железе и, конечно, в Unix системах. И хоть всё это было далеко от программирования, но дало неплохую базу, которая весьма полезна, особенно когда ты разрабатываешь, к примеру, web-приложения.
Настоящее программирование
Как и большинство студентов, в университете я программировал в основном на Java или .Net. В свободное время я также занимался PHP, и именно оно дало мне первую оплачиваемую работу. Мы делали книжный интернет-магазин на 1С-Битрикс. Платили мне тогда 10к рублей за парт-тайм работу. Можно было работать из дома, когда мне удобно, главное было вовремя и качественно выполнять задачи. Но минусы у такой работы также были: мне не у кого было учиться. Никто не мог проверить мой код, подсказать как лучше реализовать фичу и какую книгу почитать.
Через год такой работы с PHP, мне надоела эта технология. Захотелось чего-то более “взрослого”, как мне тогда казалось, и я начал параллельно изучать Ruby. В то же время я знал на базовом уровне Java SE/EE, и поставил себе цель после окончания 3-го курса найти работу на Java или Ruby.
Так вышло, что тем летом ни одна Java-компания в нашем городе не хотела брать на работу стажера/джуниора, все предлагали подождать до осени. Но мне дико хотелось начать работать во “взрослой” компании и учиться у профессионалов, и я попал в Evrone.com на должность стажера. Вот так все завертелось, и с тех пор я больше никогда не возвращался к Java 🙂
Сложности
Пожалуй, самым трудным в работе программиста является то, что тебе нужно постоянно учиться. Предела совершенству нет, и чем больше ты узнаешь, тем сильнее понимаешь как много ты не знаешь. Поэтому необходимо очень много читать, экспериментировать и думать. Идеально, если у тебя есть старший товарищ, который может объяснить и подсказать в сложной ситуации. К сожалению у меня не было такого товарища, и все знания приходилось получать по крупицам исключительно самому, путем проб и ошибок. Недостаточно просто прочитать книгу о новой технологии, перед ее использованием. Необходимо узнать все best-practices, чтобы не тратить время на заведомо неудачные подходы.
Менторство
Когда я заканчивал магистратуру в университете, мне предложили поработать парт-тайм преподавателям. Нужно было вести программирование у студентов 1-3 курсов. Денег за это платили мало, в сравнении с моей зарплатой на тот день, но я согласился в первую очередь из интереса к новому виду деятельности. Во мне еще было свежо то ощущение, когда тебе не у кого спросить совета в непонятной ситуации, и я хотел помочь ребятам, которые реально хотят научиться программировать и стать профессионалами.
Позже, в одной из компаний где я работал, мне также довелось побыть ментором, это снова освежило ощущение важности менторской деятельности. Когда ты помогаешь другим людям, то, во-первых, учишься сам, а во-вторых, получаешь “то самое” ощущение плюса в карму. Поэтому я и решил попробовать себя в роли ментора mkdev.
Автор статьи составит индивидуальную программу обучения, поможет научиться эффективно использоваться Ruby on Rails, реализовать MVP для стартапа Нанять
Вопросы
Какой совет дашь новичкам, который редко встречается или считается необычным, спорным?
Не нужно забивать на фундаментальные вещи. Часто студенты, учась в университете, увлекаются модными технологиями, фреймворками и не уделяют должного внимания фундаментальным вещам, таким как алгоритмы, математика, низкоуровневое системное ПО. Хорошая фундаментальная подготовка позволит быстрее освоить любую “модную” технологию.
Как ты сохраняешь свои навыки актуальными? Как постоянно растёшь и становишься лучше как разработчик?
Я всегда работаю над своими pet-projects. Стараюсь пробовать на них все то, что не удается использовать на основной работе. Некоторые проекты вырастают во что-то реальное, некоторые не выходят за пределы ноутбука, но в любом случае они дают опыт и новые знания.
Топ 3 книжек для новичка
Топ 3 сайта/рассылки/источника-инфы на которые должен быть подписан каждый разработчик
Фото рабочего стола
В данный момент рабочего стола у меня нет, работаю где придется. Виртуальный рабочий стол выглядит примерно вот так:
Об эффективности обучения у Стаса и остальных менторов mkdev мы рассказывали в цифрах подписчикам нашей рассылки. Получить отчёт об успехах наших учеников ты можешь, подписавшись через эту форму:
© Copyright 2014 — 2023 mkdev | Privacy Policy
