Амади и проекты
2.35K subscribers
453 photos
24 videos
4 files
172 links
Меня зовут Амади. 3 года профессионально в IT. Старший разработчик в VK. Мусульманин. Чеченец.

Моя школа - @amadi_school

Рассказываю про свои проекты.

Связь - @amady
amadiazdaev.ru
Download Telegram
Сегодня был на стриме у Исы.

Разговаривали про Го, затронули работу в Вайлдберрис, немного сравнили язык с Питоном. Обещал ответить на некоторые вопросы вне стрима, так что если такие остались, то задавайте их в комментариях или в лс.

Также добавлю, что у нас есть более опытные братья, их можно найти в нашем сообществе.
🔥8👍4
Некоторые вещи, которые я забыл сказать на стриме:

- разработка в компании часто включает в себя мало программирования и много коммуникации
- с hr’ами нужно уметь разговаривать. Отвечать честно на то, о чем тебя спрашивают, но не давать слишком много информации, если ее не просят
- отзывы о компании - это важно, но не стоит полагаться полностью на них. Часто плохие отзывы - скорее причина для более глубокого изучения компании, нежели отказа от работы в ней
👍9🔥7🤔4
Просьба

Если я в чем-то ошибусь, прошу указать на это. Я делюсь тем, что я заметил во время своего опыта, а его пока не очень то и много. Соответственно, вполне могу в чем-то ошибаться
👍10🔥4🤔1
Azdaev Amadi Resume.pdf
37.5 KB
Вот мое резюме, кстати

Обратите внимание:
- нет моей фотографии (т.к. это повышает субъективность при оценке резюме HR'ом)
- не указан возраст (по той же причине, что сверху)
- расписан пункт "обо мне"
- опыт работы включает в себя пункты в формате "сделал" с числами, а не абстрактное "делал"

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

UPD: за помощью с поиском работы обращайтесь в лс (если вы уже освоили язык)
👍15🔥7
Сделал бота для просмотра расписания пар в ГГНТУ. Под капотом Python (да-да) и Redis в качестве кэша и персистентной БД. Пока что запустил и смотрю, какие всплывут баги.

В течение дня распишу:
- как вообще подходить к разработке подобного бота
- что такое Redis и зачем я его использовал
👍14🔥7
Подход к созданию бота

Мне не понравилось, как выглядит расписание на официальном сайте -> посмотрел, какие запросы шлет браузер при запросе расписания. Оказывается, что исходит запрос к API университета, а в ответ приходит JSON. Это отлично, потому что это означает, что не придется скрейпить расписание из HTML.

Мы выяснили, что надо просто делать определенный запрос и передавать название группы, чтобы получить ее расписание на текущую неделю. Осталось только написать код (возможно, залью на гитхаб)
🔥11👍2
Зачем Redis?

Представьте, у вас 5000 активных пользователей, они запрашивают расписание каждый день. То есть это 5000 запросов к API ежедневно.

Один запрос = 1 секунда. 5000 запросов = 5000 секунд = 83 минуты ожидания.

Но есть важный момент - у многих студентов совпадает группа. То есть для многих студентов идет одинаковый запрос расписания. Можно сделать запрос единожды, сохранить результат на нашем сервере и впредь обращаться к нему, а не к API.

Теперь, как сохранять результат?

Мы можем сохранить результат запроса в нашей базе данных. А можем в кэше. В чем разница? БД хранит данные на диске, а кэш - в оперативной памяти. Доступ к диску может занять 30 мс, а доступ к оперативке - 0.25 мс. То есть разница в десятки-сотни раз.

Redis - это одна из реализаций in-memory кэша, поэтому я ей воспользовался.

P.S. У меня не наберется 5000 активных пользователей. Вполне возможно, что я бы обошелся и без кэша, но я решил использовать его для получения опыта.
👍11🔥8
Вам никто не должен

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

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

К чему я это?

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

Может быть, есть еще пути. Но жаловаться - точно не то.
👍16🔥10👾1
Предлагаю устроить поиск напарников в комментариях, чтобы объединиться над созданием проектов. Можете написать, какой у вас стек и разослать пост в чаты, чтобы повысить шансы организовать команду.

Отмена. Попробуем после рамадана, ин щаа Аллах.
👍10🔥3🤔1
Зашел на Linkedin и все по-прежнему:

- бизнес жалуется на жадных сотрудников
- сотрудники жалуются на жадный бизнес
- щедрые компании ищут разработчиков
- скромные разработчики ищут работу

Ощущение, что это одни и те же люди в разные периоды времени. Забавная "соцсеть"
😁14👍3🤔3
Вы знаете, что такое Docker?
Anonymous Poll
49%
Да
30%
Что-то слышал
22%
Впервые слышу
👍2🔥1
Частые вопросы с технических собеседований

https://easyoffer.ru/
🔥11👍4
Планирование. Продуктивность.

Два привлекательных слова в последние годы. И многие пытались выстроить систему планирования, ведения записей, задач. Notion, Obsidian, Bullet Journal, Zettelkasten.

Сегодня разговаривали с братьями об этой теме, и я решил продублировать сюда свое сообщение:

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

Rule of thumb (правило, выраженное в коротком предложении), короче - "don't force it" (пер. Не заставляй себя). Иначе все надоест, и ты перестанешь вести заметки вовсе, либо начнешь гуглить другие системы.

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

Для меня налаживание системы оказалось красочной прокрастинацией


Так что, мой совет - просто пользоваться стандартным приложением заметок. Если нужно записывать задачи - то скачать простое приложение (в комментариях приведу пример). А к более сложным системам вы уже придете сами, если в этом будет необходимость.
🔥14👍4
Какие привычки вы внедряете или уже внедрили в свою жизнь? Давайте поделимся идеями, необязательно связанными с программированием.
🔥7👍1
Совет разработчикам, которые недавно нашли первую работу и теперь не против заняться дополнительными проектами.

Не беритесь за все подряд. Даже за деньги. Возьмите максимум один проект. Вас не хватит на большее, я уже прошел через это.
👍21🤔2🔥1
Какие нон-фикшн книги вы полностью прочитали?
🤔3👍2
Forwarded from Ahmadum's notes📕 (Ahmad Umaev)
📕Грокнул тему JWT (JSON Web Token)

Тема из категории "такие вещи знать надо, ты че!"☹️.

JWT состоит из 3 частей, разделенных точками:


1️⃣ head (заголовок) — сконвертированный в base64 JSON, содержащий тип токена и алгоритм подписи.
{
"alg": "HS256",
"typ": "JWT"
}


2️⃣ payload (полезные данные) — сконвертированный в base64 JSON, содержащий в себе данные, позволяющие однозначно идентифицировать пользователя, определить время жизни токена и т.д.
{
"sub": "ahmadum01",
"iat": 1516239022
}


3️⃣ signature (подпись) — вычисляется с применением алгоритма подписи, указанного в заголовке, к строке f"{head}.{body}" с секретным ключом🤫.

Выглядит эта штука примерно так:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhaG1hZHVtJ3Mgbm90ZXMifQ.4exaja18wwbmRt-u_v_cZO3sKgzJFNPJqpGVhk7HwQk


Поиграться с генерацией JWT можно тут.

А еще, по приколу, написал свой генератор JWT.

Важно понимать, что данные, передаваемые в payload, не зашифрованы и любая Ева способна их прочесть(достаточно конвертнуть base64 снова в JSON), поэтому передавать в них приватные данные нельзя🤐. Суть токена в том, что он подписан, и его нельзя подделать. То есть, не получится, перехватив чужой токен, подменить данные в payload и ходить по сервисам, как ни в чем не бывало😏.

А теперь о крутости этой штуки😎:
🚩Аутентификация, основанная на JWT, позволяет получать токен с одного сервиса и ходить с ним на любой другой сервис без надобности хранить где-то токены, достаточно раскидать секретные ключи по всем сервисам.
🚩Можно генерить различные типы JWT для одного и того же user-а, жонглируя🤹 payload-ом, например для того, чтобы ограничивать доступ к определенным ресурсам с определенного JWT.
🚩Можно создавать JWT с суперкоротким временем жизни, чтобы мстить фронтендерам👍.

Ahmadum's notes
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍3
GoLand_ReferenceCard.pdf
129.5 KB
Чем раньше вы освоите горячие клавиши в вашей IDE, тем скорее вы сможете этим хвастаться приятнее будет в ней работать

Прикрепил сочетания клавиш для JetBrains Goland
👍12🔥1
Есть у меня странный бзик - люблю блокноты. Покупать - тоже люблю, но особо не пишу в них, хоть и убеждаю себя, что буду использовать для работы. Кому-нибудь знакомо это?
👍13🔥5😁3