Артём Рыбин | Мэйби
250 subscribers
134 photos
32 videos
51 links
Привет, это Артём Рыбин — CIO буше.

Рассказываю о жизни в айти, немножко про Go и жизни после созвонов.

Автор ютуб-канала maybe https://www.youtube.com/@maybe_digital
Download Telegram
Как я попал в это ваше IT

Шамистан запустил прикольную волну, которую подхватил Олег и сделал пост на ту же тему (ставь ему огонек, если интересно почитать, что было дальше), которая привлекла и меня.

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

Первый комп

Первый комп у меня появился в 1 классе, тогда мне привез его отец из Японии. Откровенно говоря, что с ним делать не знал даже он, а я и подавно. На него была накатана Windows 95 и были несколько игр, в которые мне быстро надоедало играть, и я начинал шерстить все значки и папки в поисках чего-то интересного. Потом один наш знакомый поставил на него 98-е окна, стало чуть интереснее. Тогда мне показали Word, сказали, что надо учиться печатать. Появилась возможность ставить хоть какие-то игры, которые были у друзей. Но в скором времени он перестал все тянуть из-за железа, и я начал искать способы, чтобы его раскачивать. Менялся видеокартами, что-то разбирал/собирал, короче, делал все, чтобы вдохнуть в него жизнь. Не вышло.

Первые шаги в код

Следующий комп появился в классе 6-7, я тогда слабо соображал в железе, выбор делал еще один наш знакомый, который почему-то решил, что встроенная видеокарта — это вообще кайф, просто надо чуть больше оперативки купить, и все будет летать. Спойлер: ничего не летало. С этим компом я долго возился. Игры не шли на нем совсем, кроме каких-то онлайн, например, Lineage II… Этой штуке я отдал несколько лет жизни, пока её тянул мой комп.

Именно в этот момент проснулся интерес к коду и внутренностям. Затем я начал поднимать собственные сервера для CS 1.6, делал сайты на ucoz для клана в контре, сервера для L2 со своими настройками, узнал, что такое Joomla. Золотые были времена. Кстати, в это же время были ArtMoney, CheMax, все возможные софты для автокача, короче — как вы поняли, это все я активно использовал, ахахаха)) Где-то приходилось разобраться, как это работает, что-то поправить и так далее. В общем, делал не столько для процесса заработка в игре, а ради спортивного интереса.

Точка невозврата

Далее ничего необычного, в школе чинил компы всем одноклассникам. Научился ставить винду (ZverCD — ван лав), править BIOS на базовом уровне и вот это вот все. В школе сдал ЕГЭ по информатике — то еще было приключение, потому что информатику преподавал физик, который ничего не знал в компах. Универ по специальности, закончил бакалавриат, параллельно делал несколько сайтов под заказ и работал в воспитательном отделе.

Вот я выпустился из универа, вот мой красный диплом по направлению «Прикладная информатика», а дальше что? А дальше — работы по специальности нет. Я работал то звукорежиссером, то DJ, то аниматором и параллельно получал степень магистра.
И только после того, как я переехал в Питер, я начал работать по специальности. Сначала в одной веб-студии, из которой уволили через месяц, а затем просто по различным компаниям. Пока не дошел до того, что мы имеем сейчас.

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

P.S. Пока писал этот пост, разблокировал воспоминания, ставь лайк если у тебя также. А я картинки прикреплю для большего эффекта, потому что фотки вряд ли найду.
🔥7👍1
Солнце почти село, а на канале нет нового поста

Это не просто говорящий заголовок, а сообщение от друга мне в личку сегодня. Первая мысль - точно, надо же что-то написать. А писать-то и нечего. Отсюда вопрос - а как часто вообще вести эту активность? Писать посты, придумывать темы.

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

И вот сижу я, размышляю, решения пока не нашел. Может, кто подскажет тут? Всё-таки в канале уже 31 человек, и некоторые даже иногда что-то комментируют.

Как часто на ваш взгляд надо делать посты? Есть ли темы, которые вам особенно интересны?
Audio
Вернулся в зал

Через месяц закончится абонемент и лучшего момента уже не будет.

Два года назад я стабильно ходил 3 раза в неделю, занимался с тренером, пил BCAA, креатин, протеин, а потом началось... Сначала закончился абонемент, и не было возможности его купить, потом появился новый абонемент, но вместе с ним и сложности в работе, из-за которых времени ни на что не оставалось.

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

Цель: вернуться к стабильному режиму тренировок.

Ставь огонек, если хочешь или уже занимаешься спортом.

#цель #новыеПривычки
🔥7🌚1
Слышали, как шутят программисты?

Да, зрелище так себе, но мы стараемся, правда. Мы не виноваты, что приходится сначала сказать шутку, а потом объяснить, где надо смеяться.

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

Делает это меня веселым человеком? Нет.
Нравится мне это? Очень.
Буду ли я продолжать так делать? Вот тут вопрос…

В универе я играл в КВН, и хотя моя «карьера» в юморе дальше университета не пошла, я запомнил одну важную фразу: «Шутка - это неожиданность». А сейчас даже думать не надо, кинул смешную картинку, сказал «Чиназес» и все, все посмеялись.

В общем, стало интересно, что на ваш взгляд лучше: кинуть мем, придумать хорошую шутку или оставить как есть?

#ХабМыслей #МоментДляРазмышлений
🤪3🌭1
Артём Рыбин | Мэйби pinned «Вот он, долгожданный (мной) вводный пост, который я наконец-то придумал. Меня зовут Артем, я опытный backend-разработчик и уже более 6 лет занимаюсь коммерческой web-разработкой. За это время я успел поработать в крупных компаниях со сложной архитектурой…»
This media is not supported in your browser
VIEW IN TELEGRAM
Цикличная сортировка

Основные применения метода цикличной сортировки:
- Ограниченные ресурсы - когда массивы или структуры данных хранятся на устройствах с ограниченными ресурсами.
- Частично отсортированные данные - в таких сценариях временная сложность может быть значительно снижена, поскольку многие элементы могут оказаться уже на своих местах.
- Ограниченные ресурсы - циклическая сортировка выполняется без использования дополнительной памяти.

Алгоритм:
1.    Для каждого элемента массива ищем правильную позицию для вставки этого элемента.
2.    Когда мы находим правильную позицию, проверяем, не находимся ли мы уже в начале цикла. Если да, завершаем текущий цикл.
3.    Вставляем элемент на правильную позицию.
4.    Переходим к следующему элементу и повторяем процесс.
5.    Повторяем процесс до тех пор, пока не отсортируем все элементы.

Пример задачи: Отсортировать массив целых чисел с использованием цикличной сортировки.
 
package main
 
import "fmt"
 
func cycleSort(arr []int) {
      length := len(arr)
 
      for cycleStart := 0; cycleStart < length-1; cycleStart++ {
            item := arr[cycleStart]
            pos := cycleStart
 
            // Находим правильную позицию для текущего элемента
            for i := cycleStart + 1; i < length; i++ {
                  if arr[i] < item {
                        pos++
                  }
            }
 
            // Если текущая позиция совпадает с началом цикла, значит, элемент уже на своем месте
            if pos == cycleStart {
                  continue
            }
 
            // Пропускаем дубликаты
            for item == arr[pos] {
                  pos++
            }
 
            // Перемещаем элемент на его правильную позицию
            if pos != cycleStart {
                  item, arr[pos] = arr[pos], item
            }
 
            // Перемещаем оставшиеся элементы в текущий цикл
            for pos != cycleStart {
                  pos = cycleStart
                  for i := cycleStart + 1; i < length; i++ {
                        if arr[i] < item {
                              pos++
                        }
                  }
 
                  for item == arr[pos] {
                        pos++
                  }
 
                  if item != arr[pos] {
                        item, arr[pos] = arr[pos], item
                  }
            }
      }
}


#ПовторяемАлгосы
Алгосы не нужны

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

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

Для того чтобы попасть в один желтый банк, я проходил 4 этапа собеседования. Мы успели алгосы порешать, пройти архитектурную секцию, скриминг и программирование. А что получил на выходе ? Переписываем простенький легаси php на новый фреймворк.

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

Хочу, чтобы уровень вопросов соответствовал тому, чем ты будешь заниматься на этом месте.

Жиза?
💯5🔥2
Media is too big
VIEW IN TELEGRAM
Я снова в телеке

Новое видео - подкаст с Олегом Козыревым, Go-разработчиком, автором курсов и актером. Его можно считать отправной точкой в создании этого канала.

Это была крутая беседа с огромным количеством полезной информации и инсайтов. Уже этих слов достаточно для того чтоб пойти и глянуть этот подкаст!

Но если подробнее то мы обсудили:
- Зачем нужен личный бренд Олегу?
- Минусы личного бренда для айтишника.
- Как найти первую аудиторию?
- Что значит качественный контент?
- Про контент план и теневой бан от ютуба
- Где больше денег – разработка или курсы?

И как обычно говорят блогеры - не забудьте поставить лайк и подписаться

YouTube: https://go.kotelov.com/youtube_podcast_ep49
Mave: https://go.kotelov.com/mave_podcast_ep49

#подкаст
🔥8❤3🍾3
Сегодня буду вещать о том как проходить собеседования. Тема доклада - «Грокаем технические собеседования (чит-коды на прохождение)» звучит? Мне кажется - топ. Поговорим что ждут от кандидатов, зачем нужна самопрезентация и немного советов дам из своего опыта.

Сейчас мчу в самый прикольный, на мой взгляд, офис ВК и это не Зингер.
🔥3
Пока я жду фотки, чтобы рассказать, как прошло выступление сегодня (спойлер - кайфово), расскажу, что полезного для себя я сделал за прошлую неделю.

Я разместил свое резюме на нескольких площадках для менторов и получил первые обращения. Провел с ними вводные созвоны и сделал несколько выводов:

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

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

- Люди хотят изучать Go. Это не новость, иначе не было бы кучи курсов на эту тему. Если выделять основные причины, почему, то это:
* Деньги
* Надоел текущий язык программирования
* Go очень популярен

Но интересно то, что большая часть запросов приходит именно по переходу из PHP в Go.

В голове возникла мысль: может всё-таки стоит сделать какой-то контент на тему перехода из PHP в Go? Беглый поиск по YouTube показал, что подобные видео есть, но лично для себя я не нашел ни одного, который бы зацепил.

В общем, я поселил эту мысль в голове и буду её развивать. А теперь ещё и рассказал её вам, и ваши реакции на этот пост будут приближать меня к её реализации.
👍7❤3🔥1
Грокаем технические собеседования

А вот и фоточки подъехали. Исходя из комментариев под прошлым постом и количества пришедших людей на канал, делаю вывод, что всё прошло кайфово.

Самая крутая часть доклада — интерактив. На начальной стадии подготовки материала организаторы предложили добавить его и разбавить выступление. И, как говорит великий, это было не просто смело… Рецепт простой: берём человека из зала, сажаем напротив и проводим mock-собеседование в лайт формате, а затем разбираем все ошибки, которые возникали в процессе. Материал на примерах запоминается лучше — это факт. Также рассказал, как обстоят дела в реальном мире отбора IT-кандидатов, и дал немного советов.

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

Скоро будут несколько конференций для Go-разработчиков, на которых я хочу выступить, поэтому пойду искать материал и подавать заявки. А вы пока лайк поставьте, если не посту, так фотографу, он же старался.

#цель #выступление
❤10🍓3🔥2
Я не пропал

Мне как-то раз друг сказал, что если я начинаю чем-то заниматься, то мне сразу надо пройти курсы, прочитать книги, изучить всё и подготовиться. Зря я тогда начал это отрицать.

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

Пост ни о чем, просто решил напомнить о себе и заодно узнать: я один такой, который хочет во всем, чем он занимается, добиться хоть каких-то результатов, а не просто зайти не в ту дверь?

Ну и если книгу читали, тоже скажите свое мнение, а то я пока понять не могу, нравится мне или нет
❤‍🔥5❤1🌚1
BFS (Breadth-First Search) или поиск в ширину

Основные применения метода поиска в ширину:
- Поиск кратчайшего пути в невзвешенных графах
- Проверка связности графа
- Поиск в лабиринтах и задачах на графы
- Определение уровня узлов в деревьях и графах
- Поиск компонент связности
- Сериализация и десериализация деревьев и графов

Алгоритм:
1.    Начнаем с определения начальной вершины.
2.    Помещаем начальную вершину в очередь и отмечаем ее как посещенную.
3.   Пока очередь не пуста, извлекаем вершину из очереди и проверяем все ее непосещенные соседние вершины.
4.    Добавляем каждую непосещенную соседнюю вершину в очередь и отмечаем ее как посещенную.
5.    Повторяем этот процесс до тех пор, пока не будут посещены все вершины графа или не будет найден целевой элемент.

По времени и памяти у нас O(V + E), где (для временной сложности):
- V — количество вершин (узлов) в графе.
- E — количество рёбер (или связей) в графе

Пример задачи: Найти кратчайший путь от начальной вершины до целевой вершины в графе.
 
package main
 
import (
     "fmt"
)
 
type Graph struct {
     Nodes map[string][]string
}
 
func NewGraph() *Graph {
     return &Graph{
         Nodes: make(map[string][]string),
     }
}
 
func (g *Graph) AddEdge(src, dest string) {
     g.Nodes[src] = append(g.Nodes[src], dest)
     g.Nodes[dest] = append(g.Nodes[dest], src) // для ненаправленного графа
}
 
func BreadthFirstSearch(graph *Graph, start, target string) []string {
     visited := make(map[string]bool)
     queue := make([]string, 0)
     parents := make(map[string]string)
 
     queue = append(queue, start)
     visited[start] = true
 
     for len(queue) > 0 {
         node := queue[0]
         queue = queue[1:]
 
         if node == target {
              path := []string{node}
              for node != start {
                   node = parents[node]
                   path = append([]string{node}, path...)
              }
              return path
         }
 
         for _, neighbor := range graph.Nodes[node] {
              if !visited[neighbor] {
                   visited[neighbor] = true
                   queue = append(queue, neighbor)
                   parents[neighbor] = node
              }
         }
     }
 
     return nil // Целевая вершина не достижима
}
🔥3
Судя по реакциям и просмотрам, алгоритмы не зашли. Но сути это не меняет — я буду продолжать их постить, и наоборот, еще и статью на эту тему напишу!

Еще заметил, что у постов больше просмотров, чем людей в канале... Кто эти люди и почему они не подписались? Может, контент не устроил или подача, или в целом не интересно всё, что тут происходит. Этого я уже не узнаю, ну и ладно.

Пятница, время немного подумать о том, что было полезного сделано:
- Теперь я есть на платформе solvery.io, оказалось не так просто к ним попасть. Анкеты заполни, тесты пройди, видео запиши, курс изучи — короче, приключение на 5 минут.
- Пришел запрос на аудит приложения — это вообще что-то новое и интересное, будем работать.
- Почти дочитал «Пиши, сокращай», всё самое интересное оказалось в конце книги, позже сделаю отзыв.
- Перешел в новую команду во ВКонтакте и получил первые интересные таски.

Фотка кошки с пятничным настроем для сбора ваших лайков.
❤7😍2🔥1💘1
This media is not supported in your browser
VIEW IN TELEGRAM
У меня нет такой любви к кофе как показывают в мемах и стереотипах про программистов, но вот готовить его - обожаю.

Все видосы, где у кофемашины по пол часа готовят кружку кофе - сююююда😅 Тоже захотел снять что-то прикольное и вот что получилось.

Еще забыл вчера рассказать, что на неделе сходил к психологу. Неожиданно. Спасибо ВК за то, что я могу не платить 6к за прием. Если вы этого не делали - советую попробовать.

А сейчас мчим купаться и загорать, пока вы тут видос смотрите
🔥7