🚲 Abstractions Flow
26 subscribers
8 photos
3 links
Роман про айти
Download Telegram
Channel created
Зачем нужны тесты

Чтобы легко вносить изменения в код.

Когда работаешь с чужим кодом, можно столкнуться с массой проблем:
1. Код незнакомый. Детали реализации неочевидны.
2. Код бывает очень сильно связан.
3. Сложно отследить, где еще код используется.

Функциональные тесты сильно облегчают жизнь. Не те, которые просто проверяют покрытие кода. А те, которые тестируют именно поведение, функционал.

Тесты — это как страховочная сеть на стройке. Когда они есть — можно выпиливать или добавлять фичи смелее. А значит фичи и в прод быстрее доедут. И в деньгах это выгодно выразится для компании.
Что здесь происходит

За три года в айти я почувствовал качели от «Вау, как это всё интересно!» до сильного утомления. Ощутил что такое синдром самозванца. Поучаствовал в разных спорах и действительно интересных диалогах про разработку.

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

Разработка софта стала большой частью моей жизни. И поэтому хочется про неё разговаривать. Для этого я создал этот канал и обсуждения к нему.

Особого формата нет, просто поток абстракций.
👍1
Сгенерировал лого

Для блога на айти тему я решил лого сгенерировать.

Очень мне нравятся все варианты.
Бесплатные школы по программированию

В этих школах есть полностью бесплатные курсы. Если знаете ещё — делитесь в комментариях.

JS, React, NodeJS. С проверкой домашних заданий, обратной связью и возможностью получить менторство: https://rs.school/

Тренинги ЕПАМ по разным направлениям: https://training.epam.com/
*у них появились и платные программы

Хардкор база программирования. Без преподавателей, обучение и обратная связь в формате peer2peer. Начиная с фундаментальных алгоритмов на чистом Си: https://21-school.ru/

Академия Яндекса. Там есть тренировки по алгоритмам, записи школ бэкенда, фронтенда, мобильной разработки: https://academy.yandex.ru/

Яндекс Практикум тоже сделал несколько полносью бесплатных курсов, в том чилсе основы python. Правда они без обратной связи: https://practicum.yandex.ru/catalog/free/

У Озона бывают школы, ссылки нет.

Тинькофф курсы и стажировки: https://fintech.tinkoff.ru/

Периодически в школах проходят наборы. Можно отслеживать.
5 принципов эффективного общения с руководителем

1. Старайтесь делать вашу работу прозрачной. Чтобы руководителю не нужно было приходить к вам с вопросом «Ну что там?». Проактивно сообщайте текущий статус по задаче. Особенно если она горящая.

2. Если вы не знаете какое решение принять, приходите к руководителю не просто с вопросом, а сразу с вариантом решения вашего вопроса. Если одного варианта недостаточно, предложите больше одного варианта. Но один лучше. В идеале ответ на ваш вопрос должен быть: «Ок».

3. Если можете что-то сделать сами, и подтверждение руководителя не требуется — сделайте сами.

4. Готовьте список вопросов ко встрече. Чтобы за один раз по ним пройтись.

5. В переписке задавайте один вопрос за раз. Очень сложно отвечать сразу на большой список. Когда приходите с небольшим вопросом на минуту — вы снижаете трение.

Какие у вас есть полезные принципы?
Абстракция растёт

С развитием AI я вижу так, что уровень абстракции стремительно нарастает. Много фантазий есть на эту тему, могу предложить свою.

Уровень на котором разработчики пишут код сейчас — в скором будущем будет казаться низким.

Технические решения будут создаваться по принципу «черных коробок». Можно будет сказать AI: сделай мне коробку по не очень формальной спецификации. И AI сделает сразу готовый модуль.

Кажется абстракция будет расти ещё больше.

Что делать?

Я думаю, что очень важно качать софт-скилы. И поэтому я выбираю говорить в своем блоге о софт-скилах так часто.
Как быстрее тестировать идеи

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

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

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

Захотелось сделать всё по-новой, написать хороший код на котлине, который будет легко поддерживать, сделать свою VM в облаке, настроить CI/CD.

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

Вчера решил упрощать и сделать работающий MVP. Решил задеплоить руками функцию в faas. С уже готовым моим старым кодом на go. Потратил 3-4 часа чтобы разобраться как настроить функцию, отредактировать старый код, научиться его деплоить, и отладить. Потому что todoist обновили апи v1 -> v2.

Всё работает. Так и залил код на гитхаб. Он далёк от идеала, но для MVP пойдёт. Дальше уже можно улучшать и настроить CI/CD из гитхаба в функцию. Но главное — продукт уже работает. И у меня ушло на это несколько часов.
Как изучать новые технологии

Лучший способ освоить новые технологии — сразу строить проект.

В пет-проектах я позволяю себе роскошь не зацикливаться на своём основном стеке технологий. Если в работе я использую постоянно java и postgres, то в пет проекте я попробую go или typescript и mongodb.

Чем это полезно:
Расширяет кругозор
Прокачивает умение адаптироваться
Может стать конкурентным преимуществом. Но может и не стать.
Систематизирует понимание о профессиональной деятельности. Прорастают связи между концепциями, углубляется понимание общих принципов.

Если вы совсем новичок, то тоже лучше всего как можно быстрее начать строить какой-то проект. Можно погуглить гайды или спросить chatgpt об идеях.
Индивидуальная консультация

👋 Привет! Я разрабатываю backend приложения. В основном разрабатываю на java и kotlin.

Перешел в IT из другой сферы, стартовал фактически с нуля. Знаю на своем опыте, какие барьеры могут встретиться на этом пути. Готов поделиться идеями и опытом, как такие барьеры преодолевать.

Мне важно сохранять баланс между работой и отдыхом. Поэтому я постоянно ищу способы сделать свою работу более эффективной. Так же для меня важно равномерно улучшать hard и soft skills.

В своём блоге я рассказываю про инструменты и практики, которые мне в этом помогают.

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


Кому и с чем могу помочь?

Постараюсь помочь вам успешно продвинуться по карьерной лестнице в IT, опираясь на свой опыт. Мне интересно рассказывать о мета-навыках, которые не привязаны к конкретным технологиям, но при этом разбирать конкретные примеры. Готов поделиться взглядом со стороны.

Обращайтесь, если вам нужна помощь в следующих вопросах:

Новичкам и junior:
Что и как важно изучать, чтобы быть полезным на работе. spoiler: project based learning.

Стратегии поиска первой работы.

Junior и middle:
Как расти дальше.

Общие вопросы:

Адаптироваться в команде.

Эффективно общаться с руководством.

Улучшить софт-скилы: понимание задачи, переговоры, как довести проект до конца.

Понять когда стоит увеличивать продуктивность, а когда — взять отпуск.

Выбрать стратегию поиска работы. spoiler: например через рефералы.

Усилить CV и профиль в LinkedIn.

Презентовать свой опыт на интервью.

----
Оставить заявку
🚲 Abstractions Flow
Абстракция растёт С развитием AI я вижу так, что уровень абстракции стремительно нарастает. Много фантазий есть на эту тему, могу предложить свою. Уровень на котором разработчики пишут код сейчас — в скором будущем будет казаться низким. Технические решения…
Абстракция ещё и падает

TL;DR: Идея такая, что уровень абстракции неравномерно распределен.

По порядку что это значит:
ИИ может решать простые задачи по разработке уже сейчас. Есть мнение, что GPT уже достигла своего пика в качестве кода, который она может создать. Предлагает неработающие или даже несуществующие решения. Это решается в цикле обратной связи. Надо только понимать какую обратную связь давать.

По идее с помощью технических решений и автоматизации цикла обратной связи можно улучшать качество генерируемого кода. Но даже так область применения ИИ в разработке пока ограничена.

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

Проще говоря: повышается уровень требований к разработчикам.