DEV: Рубиновые тона – Telegram
DEV: Рубиновые тона
3.21K subscribers
145 photos
2 videos
8 files
981 links
Анонсы новых видео о программировании (Ruby/Rails, Solidity/Ethereum, Python, JS и не только), практические советы, обзор полезных инструментов и новости из мира IT
Download Telegram
Немного юмора на сон грядущий 😄
Поговорим немного о программистах и окружающих их мифах. Если вернуться во времена, когда трава была зеленее, а пиво ещё не разбавляли, то можно вспомнить, что программисты являлись довольно немногочисленной и изолированной кастой. Они носили белые халаты, получали неплохие деньги, и мало кто понимал, чем вообще они занимаются.

Да, кстати, а сколько зарабатывали программисты в СССР 70-80хх годов? Интересный вопрос. Если говорить в среднем по больнице, то молодому специалисту изначально предлагалось примерно 120 рублей в месяц. В общем-то, это была стандартная ставка для любого выпускника вуза, который совсем недавно получал только стипендию в размере 30-40 рублей. В дальнейшем данная сумма в 120р стабильно (но, увы, не слишком часто) повышалась с ростом стажа и новыми должностями, так что через несколько лет выходило уже около 200 рублей. Но здесь возникала проблема: фактически, это был потолок для неруководящей должности. Если сотрудник дополнительно получал научную степень, то мог рассчитывать на 250-300 рублей, что весьма немало, ведь усреднённая зарплата составляла примерно 110-160 рублей в разные годы. Руководители же могли рассчитывать на выплаты до 400-500 рублей; больше не получал уже практически никто.

Сегодня образ "дяденьки в халатике и в очках" кардинально изменился, но некий ореол таинственности в той или иной степени остаётся. Как вообще представляют типичного (правильнее даже сказать, "карикатурного") программиста люди, далёкие от мира компьютеров? Это мужчина, скорее всего старше двадцати пяти лет, в очках с толстой оправой, с копной нечёсаных волос, в растянутом сером свитере и в потёртых штанах. Взгляд отрешённый, говорит он мало и путанно, постоянно уходит в себя, людей сторонится. Конечно, встретить таких представителей профессии вполне реально, однако в целом данный стереотип имеет мало общего с действительностью. Разработкой успешно занимаются и мужчины, и женщины самых разных возрастов. Практически все программисты, которых я знаю, - это вполне приятные в общении люди опрятного вида. Помимо разработки у них существуют и другие интересы в иных областях (например, музыка). Некоторые же программисты становятся всемирно известными, обретают преданных фанатов и могут соперничать в популярности с рок-звёздами. В общем, без преувеличения можно сказать, что программирование - это достаточно престижная и высокооплачиваемая профессия. Иными словами, быть разработчиком - это круто. 🤟
Сегодня я хотел бы поговорить об одном довольно распространённом стереотипе, который связан собственно с написанием программ. Он довольно типичен для начинающих разработчиков, а также с теми, кто не очень хорошо разбирается в сфере IT в принципе. Так, многие считают, что написание программ - это очень трудная задача, доступная только избранным с неким определённым складом ума. Вот этот самый "склад ума" мне не даёт покоя, но обычно собеседники ограничиваются общими словами безо всякой конкретики.

Зачастую на вопрос о том, что же это за легендарный склад ума, ответом бывает "технический" или "ну, такой, особенный". Спешу вас заверить: это предрассудки. Однако существует другой немаловажный момент, который действительно следует учитывать: к написанию программ нужно привыкнуть. В английском языке существует выражение "get your head around", хорошо иллюстрирующее данную мысль. Это выражение означает "понять", а если переводить более дословно, то "повернуть свою голову (или даже принцип мышления) в несколько иную сторону". По ходу изучения программирования вы действительно научитесь иначе мыслить, подходить к решению задач с точки зрения логики. А это умение будет нелишним и в повседневной жизни.

Есть и другие типичные высказывания, которые мне приходилось слышать и которые совершенно не соответствуют действительности. Например:

* Нет, в программировании я точно ничего не пойму. Нужно быть очень умным и учиться годами! Безусловно, программированию, как и любому другому навыку, нужно учиться, но вовсе не "годами". Всё зависит от того, какую вы ставите перед собой цель. Если речь идёт о том, чтобы стать специалистом высокого уровня, который отлично знает несколько языков программирования, умеет настраивать сервера, работать с парой-тройкой СУБД и тому подобное - да, на это уйдёт несколько лет как минимум. Однако задачи нужно решать постепенно. Начните с освоения одного языка программирования и, что называется, "втянитесь" в процесс разработки приложений. Эта цель вполне реальна и достижима за два-три месяца! Быть гением для изучения программирования тоже не нужно. Если вы умеете читать, писать, выполнять несложные математические операции и работать с компьютером на уровне обычного пользователя - этого вполне достаточно для начала. Ну, а для сомневающихся есть курсы повышения компьютерной грамотности.
* Все говорят мне, что это просто блажь. Нужно заниматься своим делом, содержать семью и не распыляться на всякие дурацкие хобби. Эта ситуация типична для людей старше 23-25 лет. Мужчинам чаще всего говорят что-то вроде: "Надо работать на нормальной работе и содержать семью" (видимо, "настоящие мужики" могут работать только в шахте, на заводе, на стройке или в силовых структурах) или "Тебе лет-то сколько уже? Какой из тебя программист!". Женщинам, конечно же, напоминают, что "пора уже детей заводить и хозяйством заниматься, а не перед компьютером сидеть". Не забываем также об оглушительно тикающих часиках - видимо, мысли об этом тиканье заполняет безмолвную пустоту в жизни некоторых товарищей. На самом деле, очень грустно, когда вас не поддерживает окружение, не говоря о том, что такое навязывание собственного мнения просто невежливо. Безусловно, работа и семья - это важно, однако вовсе не значит, что на этих двух вещах свет клином сошёлся. Люди, говорящие так, пытаются навязать вам собственную систему ценностей. У некоторых просто в голове не укладывается, как это можно после рабочего дня дополнительно что-то изучать и разрабатывать. А кто-то, к сожалению, банально завидует. Ведь у вас хватило смелости и твёрдости заняться новым серьёзным делом, а у этого человека - нет. Поэтому самый простой совет, который можно дать - не принимайте эти упрёки и "советы" близко к сердцу. Главное, чтобы программирование доставляло удовольствие лично вам. А другие, если они действительно считают себя вашими друзьями, рано или поздно поймут, что это вовсе не какая-то блажь и трата времени.
В общем, как мне кажется, подобные мысли могут появляться из-за неуверенности или нежелания изучить что-то новое. Но факт заключается, в том, что учиться на протяжении жизни - это весьма важно, дабы сохранять остроту и трезвость ума. Более того, уметь учиться - это тоже отдельный навык, которым, к сожалению, не все обладают. Но это уже другая история...
Поговорим ещё немного о программировании и стереотипных высказываниях, которые мне приходилось слышать в разное время.

* Мне уже целых 18 (30, 55) лет! Слишком поздно начинать. Данное утверждение, связанное со слишком большим (по мнению говорящего) возрастом, вызывает наибольшее удивление. В мире, конечно, есть ряд профессий, которые налагают довольно жёсткие возрастные ограничения. Например, стать космонавтом или профессиональным футболистом вряд ли получится в 40-50 лет. К программированию, однако, это совершенно не относится. Приведу простой пример: периодически у меня берёт уроки мужчина средних лет из Канады (назовём его, к примеру, Майк). Так вот пару лет назад Майк не знал о разработке вообще ничего. Он всю жизнь работал - и до сих пор работает - в совершенно другой отрасли. Однако в один прекрасный день его заинтересовало именно программирование. Майк начал изучать материалы в Интернете, работать над собственными проектами, а затем обратился ко мне, чтобы прояснять некоторые вопросы. И вот спустя некоторое время мы вместе с Майком создали довольно сложное web-приложение, которое теперь он использует для собственных целей и планирует привлекать сторонних пользователей. Времена, когда нужно было получить профессию и всю жизнь работать на одном месте, к счастью, давно ушли. Более того, как я упомянул ранее, уметь учиться - это очень важный навык в наши дни.

* У меня нет технического образования. Я не знаю высшую математику (математическую статистику и комбинаторику, методы оптимизации, богословские трактаты XV века - ненужное вычеркнуть), поэтому у меня ничего не выйдет, даже и пытаться не стоит. Для изучения программирования не требуется никакое профильное образование. Лишним оно, конечно, не будет, но и обязательным не является. Различные технические дисциплины нужны в тех случаях, когда вы планируете писать специализированные программы, однако новички с них никогда не начинают. В дальнейшем, если вы почувствуете такую необходимость, можно всегда "подтянуть" и математику, и любой другой нужный предмет. Благо, онлайн-курсов в наше время достаточно, в том числе от ведущих университетов мира. Было бы только желание.

* Я попробовал программировать и понял, что не смогу стать в этом деле лучшим, поэтому и не стал продолжать. (это стереотип из коллекции моего товарища). Здесь вызывает вопрос слово "лучший". Кто является лучшим? Человек, который знает самое большое количество языков программирования? Или который победил на всех возможных соревнованиях по спортивному программированию? Специалист, способный создать систему любой сложности в кратчайшее время? Дело в том, что однозначного ответа на этот вопрос нет, потому данное утверждение представляется некорректным в принципе. Как уже упоминалось выше, стать хорошим специалистом вам почти наверняка под силу. Даже освоить один язык программирования на среднем уровне - это хорошее достижение. Награду за усилия вы получите, когда создадите своё первое приложение, пусть и несложное, которое окажется полезным для других людей или даже для одного-единственного человека. Поверьте, это необычное и очень приятное ощущение. В конце концов, вы получаете этот новый навык не для того, чтобы стать самым крутым программистом в мире. Скорее, вам интересно этим заниматься.
* Утверждение, приведённое выше, можно понимать и как "я пробовал(а) и у меня не получилось". В этом случае необходимо понять причину неудачи. Не хватило мотивации? Свободного времени? А, может быть, не подошли используемые учебные материалы? Если вопрос в мотивации, то, скажем честно, в большинстве случаев справиться с этим можно только самостоятельно (хотя помощь специалиста тоже может оказаться не лишней). Какие бы слова я не писал, как не расписывал бы прелести работы программистом - это мало поможет, если у вас нет желания этому учиться. Однако, коль скоро вы читаете эти строки, что-то побудило вас сделать ещё одну попытку и, я надеюсь, возобновить обучение. Значит, пытайтесь не растерять этот запал, не опускайте руки после первой неудачи! Уверяю вас, даже опытные разработчики зачастую сталкиваются с задачами, над которыми бьются целыми днями и даже неделями. Главное - выделяйте хотя бы немного времени на разработку, так как ключевым моментом является непрерывность обучения.

В заключение я хочу сказать следующее: не бойтесь пробовать, не бойтесь изучать новое и не бойтесь ошибаться. Как бы банально это ни звучало, но не ошибается тот, кто ничего и не делает. Беритесь за разные задачи, пробуйте их решать, не стесняйтесь публиковать свои проекты и участвовать в работе над проектами с исходным кодом. Пройдёт несколько недель, месяц, полгода, и вы вдруг почувствуете, как вырос ваш навык, а прежние страхи куда-то исчезли.
👍1
Всем привет! В новом видео мы подробно обсудим, что происходит при вызове несуществующего метода в Ruby и как этот процесс контролировать самостоятельно. Мы узнаем, что переопределение метода method_missing позволяет достигать очень интересных результатов и писать весьма элегантные программы.

Самостоятельно можно посмотреть, как реализована библиотека Hashie, а также усовершенствовать наш класс SuperHash. Например, сделайте так, чтобы образцы этого класса отвечали на метод с вопросительным знаком в конце. Такие методы должны сообщать, имеет ли данный объект указанный ключ или нет. Например:

s_hash.name = "John"
s_hash.name? # true, такой ключ есть
s_hash.surname? # false, такого ключа нет

https://youtu.be/A4rDR8hDVX8
А вы знали, что для вашей организации в GitHub можно легко получить значок Verified? Для этого достаточно сделать следующее:

* В настройках организации добавить свой сайт или почтовый адрес на домене, которым вы можете управлять. Увы, почта на доменах типа gmail.com или yandex.ru не подойдёт, так как (вероятнее всего) управлять этими зонами вы не можете

* Далее в настройках организации открываете Verified domains и следуете инструкциям. В частности, в доменной зоне вам потребуется создать запись TXT с правильным значением.

* Нужно подождать некоторое время, пока изменения DNS применятся (тут как повезёт - от получаса до двух дней), после чего можно будет вернуться в Verified domains и завершить процесс верификации
Всем привет! Сегодня очередное видео о регулярных выражениях, в котором мы узнаем, как контролировать поведение regexp с помощью таких флагов, как i, x, g, m, s (любой регистр, расширенный режим, глобальный режим, многострочный режим, точка может соответствовать переносу строки). Мы поговорим, как эти флаги работают и какие у них есть отличия в разных языках программирования. Кроме того, мы узнаем, как работают якоря для привязки к началу и концу строки и чем они отличаются от якорей для привязки к началу и концу линии. https://youtu.be/Sj7V94PNlMY
Всем привет! :) Сегодня мы поработаем с наследованием в Ruby, затронем методы класса (singleton methods), а также узнаем, как определять методы динамически, то есть прямо в момент исполнения программы, причём с заранее неизвестными именами. Для этого мы задействуем define_method и, благодаря такому подходу, напишем компактную программу без дублирования кода. https://youtu.be/-6E6NFJ_R7Y
Кстати, на всякий случай вот прямая ссылка на наш чат https://news.1rj.ru/str/joinchat/MxYT6-01eeA1NTYy который привязан к данному каналу. Туда можно писать и вопросы, и какие-то новости, и подсказки и прочее - да что угодно по теме IT. Все комментарии к постам тоже отправляются туда. В этом плане Telegram немного неудобный, но имеем, что имеем 🙌
Всем привет! Сегодня хотел поделиться ссылкой вот на такой проект, написанный энтузиастами: https://dry-rb.org/ Суть в том, что они создали набор библиотек для Ruby, которые позволяют выполнять разнообразные операции с данными: прописывать валидацию, собственные типы, структуры данных (типа Struct). Есть даже своё решение для управления схемой, то есть по факту набор этих библиотек может быть использован вместо ActiveRecord. Говорят некоторым нравится - может быть, кто-нибудь уже пробовал задействовать dry?
Нашёл вот такую интересную инфографику, которая суммирует необходимые знания про продвинутого джуниора, работающего с фронт-эндом. Как мне кажется, вполне адекватная подборка, может кому пригодится https://frontend-science.com/Junior_RoadMap.pdf
Что ж, перед грядущими выходными предлагаю новое видео о регулярных выражениях. 🤟 Мы поговорим о том, как в регулярных выражениях найти любой символ, являющийся частью слова (\w), а также цифры (\d), пробелы (\s), границы слов (\b) и прочее. Помимо этого, поговорим об использовании квадратных скобок, которые позволяют реализовывать поиск символа в заданном диапазоне (это особенно удобно при работе с кириллицей). https://www.youtube.com/watch?v=COCFz3pTMhw
Всем привет! Нашёл интересное решение для управления приложениями на Heroku через терминал. Название, конечно, у решения странноватое, но выглядит интересно https://github.com/PierreKieffer/htui
Всем привет! Возможно, кого-то заинтересует вакансия разработчика Ruby (друзья ищут), краткое описание:

Нужен человек, который много-много работал с mosquitto и имеет действительно глубокие знания. и при этом работал с рубями. Сообщения публикуются в брокере, а из брокера не все вычитываются подписчиком.
В логах москито есть запсиси, что сообщение было отправлено бэку.
QoS не настроено и оперативно настроить не можем.
Проверили всю инфраструктурную часть, проверили сеть, проверили ulimit, почитали strace - в нем ничего страшнее recvq -1 eagain нет
Что ж, друзья, вот и я чипировался... точнее вакцинировался. Пока полёт нормальный, даже место укола не болит. Процесс организован вполне достойно, хотя это, конечно, сильно зависит от страны. Новые видео эту неделю выпускать не планирую (во всяком случае, до пятницы), немного приду в себя, а потом продолжим. Если интересно, расскажу подробнее. Будьте здоровы 🙌
Пока готовится новое видео, можно попробовать отгадать вот такой вопрос в стиле спортивного "Что? Где? Когда?", который я придумал буквально только что.

На входе в одно заведение автор вопроса увидел табличку "ОНО длится всего день, а воспоминания останутся на всю жизнь".
ОНО - это дословный перевод названия известной комедийной кинотрилогии. В российском прокате, однако, эта кинотрилогия шла под совсем другим названием. А какое место упоминалось в этом локализированном названии? 🤓