Forwarded from Чтобы не выгорать
Когда тревога перед новым делом берёт верх, задайте себе вопрос: а что интересного я могу узнать в процессе?
Такой подход помогает почувствовать интерес и любопытство, а не давление от ожидания идеального результата
Такой подход помогает почувствовать интерес и любопытство, а не давление от ожидания идеального результата
❤7🔥3💘2💅1
Объединение потоков во Flutter
👀 Недавно вышло видео с интригующим названием The great thread merge, где мистер Craig рассказывает о прошлом и будущем флаттера в контексте потоков (threads).
🔜 Как было: Раньше между платформенным потоком и UI существовал разрыв, из-за чего все обращения к апи нативной платформы с использованием Platform Channels были асинхронными. Каждый вызов сопровождался сериализацией данных, переключением контекста и ожиданием ответа - даже если нативная функция возвращала результат мгновенно.
🔥 С версии 3.29 ситуация изменилась: Dart-код теперь исполняется в том же потоке, что и платформенный UI. Это означает, что вызовы нативных функций могут быть синхронными, без необходимости оборачивать их в Future. Типобезопасность теперь обеспечивается механизмом FFI (Foreign Function Interface) и инструментом ffigen, который генерирует Dart-биндинги к C-API.
⚡️ На практике это открывает новые возможности: плагины могут быть переписаны так, чтобы вызовы типа получения уровня батареи, статуса сети или доступа к датчикам возвращали значение сразу. Виджеты становятся проще - вместо StatefulWidget можно обойтись обычным StatelessWidget, если данные доступны синхронно.
🧑💻 Сейчас возможно отключить объединение потоков на Windows и macOS используя флаг:
project.set_ui_thread_policy(flutter::UIThreadPolicy::RunOnSeparateThread)
Попыталась найти аналогичный для мобильных платформ, но оказалось что он уже выпилен🥹
🧑💻 Это серьезное архитектурное изменение, которое позволит писать больше Dart кода, но не стоит забывать о производительности: тяжёлые операции должны выноситься в изоляты, иначе они заблокируют UI 🔪
project.set_ui_thread_policy(flutter::UIThreadPolicy::RunOnSeparateThread)
Попыталась найти аналогичный для мобильных платформ, но оказалось что он уже выпилен
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
The great thread merge
Dive deep into Flutter's thread merge, a fundamental shift in its engine design aimed at enhancing native interoperability. Craig breaks down the roles of the UI and Raster threads, introduces the native platform thread, and explains how integrating Dart…
1🔥11👍3💅3❤1💘1
Сегодня хочу поделиться полезным видео по асинхронному программированию в Dart 😦
Затронуты практически все основные темы, которые, к тому же, часто спрашивают на собеседовании:
🟣 Что такое async/await
🟡 Виды Future и можно ли его отменить, обработка ошибок
🔵 Принцип работы Event loop
🟢 Очень много базы про стримы (Stream), работа с StreamController и Zone
Да, видео с таким количеством информации не может быть коротким, но подача хорошая и довольно много наглядных примеров😱
Затронуты практически все основные темы, которые, к тому же, часто спрашивают на собеседовании:
Да, видео с таким количеством информации не может быть коротким, но подача хорошая и довольно много наглядных примеров
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Асинхронка — ШМР 2024
Асинхронное программирование в дарте. Future, FutureOr, Stream, async, await, yield, Zone... Как это всё работает? Копаем вглубь, ломаем стереотипы, убираем магию.
1❤7🔥5
Небольшая задача на асинхронность 👍
В каком порядке выполнятся функции? В следующем посте будет опрос с правильным вариантом ответа🧑💻
В каком порядке выполнятся функции? В следующем посте будет опрос с правильным вариантом ответа
void testEventLoop() {
print(1);
scheduleMicrotask(() => print(2));
Future(() => print(3))
.then((_) => print(4));
Future.microtask(() => print(5));
Timer.run(() => print(6));
Future.delayed(Duration.zero, () => print(7));
Future(() async {
print(8);
await Future.delayed(Duration(milliseconds: 1));
print(9);
});
Future.sync(() => print(10));
print(11);
}
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8💅4
Anonymous Quiz
19%
1, 10, 11, 2, 5, 3, 4, 7, 6, 8, 9
3%
1, 11, 10, 2, 3, 5, 4, 6, 8, 7, 9
46%
1, 10, 11, 2, 5, 3, 4, 6, 7, 8, 9
32%
1, 11, 2, 5, 10, 3, 4, 6, 7, 8, 9
❤6
Forwarded from MADTeacher | Станислав Чернышев
Update Dart Spec 🍿
В репозиторий спецификации языка добавили сразу несколько черновиков новых фич🔫
1️⃣ Implied Parameter/Record Field Names
Позволяет в момент вызова метода, функции или конструктора опускать имя аргументов, если у передаваемой ему на вход переменной (функции) аналогичное имя:
Пример с функциями/методами:
Пример с переменными:
2️⃣ Anonymous Methods (AM)
А вот это уже зверь из области функциональщины, который позволяет добавлять объекту анонимные методы и выстраивать цепочки из них, передавая результат одного анонимного метода в вызов другого😏
Допустим, у нас есть блок кода, который ну никак не представить в виде цепочки последовательных вызовов с помощью каскадного оператора
С добавлением одной из вариаций анонимного метода (=>) и использованием каскадного оператора его можно преобразить следующим образом:
Другая вариация подразумевает конструкции типа
или так
Если же мы хотим избежать конфликта имен или явно работать захваченным ранее объектом, который передаем в анонимный метод можно использовать конструкции типа
Как вам новые фичи Dart?
👍 – О, да, детка!!!
👌 – Сомнительно, но Окей
👎 – Отстой!
В репозиторий спецификации языка добавили сразу несколько черновиков новых фич
Позволяет в момент вызова метода, функции или конструктора опускать имя аргументов, если у передаваемой ему на вход переменной (функции) аналогичное имя:
Пример с функциями/методами:
// before
var subnoscription = stream.listen(
onData,
onError: onError,
onDone: onDone,
cancelOnError: cancelOnError,
);
// after
var subnoscription = stream.listen(
onData,
:onError,
:onDone,
:cancelOnError,
);
Пример с переменными:
typedef Color = ({int red, int green, int blue, int alpha});
// before
Color colorWithAlpha(Color color, int newAlpha) {
var (:red, :green, :blue, alpha: _) = color;
return (red: red, green: green, blue: blue, alpha: newAlpha);
}
// after
Color colorWithAlpha(Color color, int alpha) {
var (:red, :green, :blue, alpha: _) = color;
return (:red, :green, :blue, :alpha);
}А вот это уже зверь из области функциональщины, который позволяет добавлять объекту анонимные методы и выстраивать цепочки из них, передавая результат одного анонимного метода в вызов другого
Допустим, у нас есть блок кода, который ну никак не представить в виде цепочки последовательных вызовов с помощью каскадного оператора
..void main() {
final String halfDone, result;
final sb = StringBuffer('Hello');
sb.write(',');
halfDone = sb.function toString() { [native code] }();
sb.write(' ');
sb.write('world!');
result = sb.function toString() { [native code] }();
print('Creating an important string: $halfDone then $result');
}С добавлением одной из вариаций анонимного метода (=>) и использованием каскадного оператора его можно преобразить следующим образом:
void main() {
final String halfDone, result;
final sb = StringBuffer('Hello')
..write(',')
..=> halfDone = function toString() { [native code] }() // AM
..write(' ')
..write('world!')
..=> result = function toString() { [native code] }(); // AM
print('Creating an important string: $halfDone then $result');
}Другая вариация подразумевает конструкции типа
O.{что-то делаем} или O.{что-то делаем}.{получаем результат предыдущей АМ и снова что-то делаем}.{и т.д.}. Благодаря ней мы можем переписать код так:// применяем AM к StringBuffer('Hello').
void main() => StringBuffer('Hello').{
final String halfDone, result;
write(',');
halfDone = function toString() { [native code] }();
write(' ');
write('world!');
result = function toString() { [native code] }();
print('Creating an important string: $halfDone then $result');
};или так
void main() {
// применяем AM к StringBuffer('Hello').
StringBuffer('Hello').{
write(', world!');
return function toString() { [native code] }();
}.{ // определяем следующий анонимный метод
// `this` is the string returned by
`toString()`.print(length); // Prints '13'.
return length > 10;
}.=> print('That was a ${this ? 'very' : '') long string!');
}Если же мы хотим избежать конфликта имен или явно работать захваченным ранее объектом, который передаем в анонимный метод можно использовать конструкции типа
O.(имя и тип арг1, [арг 2, арг3, ...]){что-то делаем} и выстраивать с ними цепочки различной длины:class A {
void bar() {}
void foo() {
StringBuffer('Hello').(sb) { // sb -> StringBuffer('Hello')
sb.write(', world!');
this.bar(); // `this` refers to the current instance of `A`.
return sb.function toString() { [native code] }();
}.(s) { // снова АМ
print(s.length);
bar(); // An implicit `this` also refers to the current `A`.
return s.length > 10;
}.(cond) => print('That was a ${cond ? 'very' : '') long string!'); // АМ
}
}Как вам новые фичи Dart?
👍 – О, да, детка!!!
👌 – Сомнительно, но Окей
👎 – Отстой!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍2👎1
Октябрь 2025: первые посты, впечатления от посещения конференции, тесты, асинхронка
Нас уже 85🥳
Планирую продолжать делиться новостями, полезными материалами и темами, которые считаю важными в разработке🧑💻
Очень радуюсь вашему интересу к контенту и активности под постами, кого-то даже получилось вдохновить на написание тестов❤️
А вот посты за прошедший месяц:
🟣 Вводный пост
рефлексия по созданию этого канала, возможно в будущем дополню
🟣 Впечатления от конференции Стачка 2025 впервые посетила такую большую конфу, перечислила новые и интересные для меня темы
🟣 Долгожданное обновления хэндбука по Flutter
добавили много новых тем, советую ознакомиться
🟣 Сходила на выставки в Русском музее
мои впечатления о выставках искусства начала 20 века
🟣 Когда стоит покрывать тестами код
размышления о тестировании, подчеркнула важность написания тестируемого кода
🟣 Как упростить себе жизнь при тестировании
практические советы по неочевидным моментам, примеры использования пакетов для стабильных тестов
🟣 Архитектурные изменения во Flutter - The great thread merge
важная новость о будущем Flutter, новый способ взаимодействия с платформой
🟣 Видео с базой по асинхронному программированию в Dart
поделилась полезным видео с базой по асинхронке
🟣 Задача на асинхронность
проверили знание порядка выполнения операций
Нас уже 85
Планирую продолжать делиться новостями, полезными материалами и темами, которые считаю важными в разработке
Очень радуюсь вашему интересу к контенту и активности под постами, кого-то даже получилось вдохновить на написание тестов
А вот посты за прошедший месяц:
рефлексия по созданию этого канала, возможно в будущем дополню
добавили много новых тем, советую ознакомиться
мои впечатления о выставках искусства начала 20 века
размышления о тестировании, подчеркнула важность написания тестируемого кода
практические советы по неочевидным моментам, примеры использования пакетов для стабильных тестов
важная новость о будущем Flutter, новый способ взаимодействия с платформой
поделилась полезным видео с базой по асинхронке
проверили знание порядка выполнения операций
Please open Telegram to view this post
VIEW IN TELEGRAM
10❤7🔥5💅2
Уровень моей удачи - слечь с температурой на выходные и праздники 🤧
Восприняла это как сигнал о необходимости передохнуть, скоро вернусь с новыми силами и постами😶
Восприняла это как сигнал о необходимости передохнуть, скоро вернусь с новыми силами и постами
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤15👎2
Спасибо за вашу поддержку, уже восстанавливаюсь и ресерчу интересные темы 🌹
Вы, кстати, также можете помочь развитию канала, вкинув тему, которую вам интересно было бы разобрать💃
Недавно закидывала вам на подумать задачку, большинство молодцы - ответили правильно☺️
Заложила в ней небольшую проверку на внимательность и знание нечасто встречающегося функционала Future:
Future.sync() немедленно вызывает переданную функцию, в данном случае она выполнится синхронно😏
Желаю всем приятных и продуктивных выходных🥰
Вы, кстати, также можете помочь развитию канала, вкинув тему, которую вам интересно было бы разобрать
Недавно закидывала вам на подумать задачку, большинство молодцы - ответили правильно
Заложила в ней небольшую проверку на внимательность и знание нечасто встречающегося функционала Future:
Future.sync() немедленно вызывает переданную функцию, в данном случае она выполнится синхронно
Желаю всем приятных и продуктивных выходных
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤10🔥4💅3
Завтра в 22:00 по мск ожидаем лайвстрим от команды Flutter по последним обновлениям, Q&A и многое другое 📖
https://www.youtube.com/watch?v=RTb3gP4p5bw
https://www.youtube.com/watch?v=RTb3gP4p5bw
Please open Telegram to view this post
VIEW IN TELEGRAM
💅3👍2🔥2
Forwarded from Стас Ильин | Flutter
Очередной минорный релиз в котором команда работает над оптимизацией. При этом успевает завозить прикольные фичи. О самых горячих завозах в нашей новостной колонке:
Новая фича которая позволяет не указывать название класса с именованным конструктором и название enum
Например для указания alignment в верстке можно указывать только значение
// With shorthands
Column(
mainAxisAlignment: .start,
crossAxisAlignment: .center,
children: [ /* ... */ ],
),
А для padding указывать только значение
Padding(
padding: .all(8.0),
child: Text('Hello world'),
),
Новый файл web_dev_config.yaml позволяет задать параметры для локального веб-запуска Flutter-приложения.
Можно указывать порт, хост, сертификаты HTTPS, заголовки и прокси-маршруты
Вы по-любому встречались с MaterialStateProperty. Параметры для настройки конкретных стетов материал виджетов (нажат, наведен, отключен)
Теперь вместо Material используем WidgetState, который подходит и для Cupertino виджетов. Ещё одно упрощение работы с платформозависимым UI
Позволяет размещать всплывающие элементы интерфейса (диалоги, попапы, уведомления и т.п.) в любом Overlay выше по дереву виджетов, а не только в ближайшем
Благодаря этому можно, например, легко показывать глобальные уведомления поверх всего приложения, даже если вызов идёт из вложенного экрана — без костылей и ручного поиска корневого Overlay
🤔Ещё из интересного:
- Куча всяких оптимизаций опять в Engine, Vulkan, OpenGL ES
- Predictive back-анимации на Android теперь по умолчанию
- На Windows появился расширенный доступ к параметрам дисплеев
- Поддержка 16 KB page size для Android
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12
Взаимодействие с нативным кодом во Flutter: что нового?
В поисках информации об ffi нашла свежий доклад о текущих возможностях взаимодействия с платформой.
Отличный обзор Platform Channels и Direct native interop - много примеров кода, плюсы и минусы разных подходов к вызову нативного кода.
🟡 Platform Channels - это достаточно простой и стабильный способ получения различных видов сообщений, подходит для большинства задач, но требуется писать много boilerplate кода.
Принцип работы - сообщение переводится в бинарный формат, Binary Messenger отправляет его с помощью Platform Dispatcher на нужную платформу, а на стороне платформы нужно написать нативный код, обрабатывающий нужный метод и возвращающий результат.
🔵 jnigen - по заверению докладчика уже может использоваться в продакшене. Интересно, что для генерации биндингов необходимо сначала собрать apk, а затем запустить команду генерации. После этого появляется доступ к андроид контексту и на примере показано, как получить список библиотек на устройстве.
🟢 swiftgen на данный момент в экспериментальной фазе, под капотом использует ffigen и дает доступ только к открытой части кода.
Больше информации можно найти в официальной документации dart-lang/native🧑💻
🔥 Также вышла статья про Objective-C и Swift Interop с использованием ffigen, на примере генерации биндингов к AVAudioPlayer.
Пока еще остается много вопросов, например, какой подход стоит использовать при разработке нового плагина? Насколько ffi быстрее, чем Platform Channels?
Надеюсь со временем найти ответы на эти вопросы, а если у меня получится что-то крутое, обязательно поделюсь с вами результатом❤️
В поисках информации об ffi нашла свежий доклад о текущих возможностях взаимодействия с платформой.
Отличный обзор Platform Channels и Direct native interop - много примеров кода, плюсы и минусы разных подходов к вызову нативного кода.
Принцип работы - сообщение переводится в бинарный формат, Binary Messenger отправляет его с помощью Platform Dispatcher на нужную платформу, а на стороне платформы нужно написать нативный код, обрабатывающий нужный метод и возвращающий результат.
Больше информации можно найти в официальной документации dart-lang/native
Пока еще остается много вопросов, например, какой подход стоит использовать при разработке нового плагина? Насколько ffi быстрее, чем Platform Channels?
Надеюсь со временем найти ответы на эти вопросы, а если у меня получится что-то крутое, обязательно поделюсь с вами результатом
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Flutter Plugins - From Method Channels to Native Interop - Dominik Roszkowski | Fluttercon EU 2025
🎤 Talk: Flutter Plugins - From Method Channels to Native Interop
👤 Speaker: Dominik Roszkowski
📍 Event: Fluttercon EU 2025
📅 Date: 24th - 26th, 2025
---
In this session, we’ll explore practical tips and some good practices for developing Flutter plugins…
👤 Speaker: Dominik Roszkowski
📍 Event: Fluttercon EU 2025
📅 Date: 24th - 26th, 2025
---
In this session, we’ll explore practical tips and some good practices for developing Flutter plugins…
5👍7💅5❤2🔥1
Слабая аура: искать инфу самостоятельно ❌
Сильная аура: задать вопрос команде флаттера✔️
Продолжая тему нативного интеропа с ffigen, воспользовалась возможностью задать вопрос команде флаттера в комментариях на ютубе😘
Предварительно ожидаем бета-релиз в следующем году, сейчас в закрытом формате ведется работа по сбору обратной связи, улучшению перфоманса и документации💻
Еще тизернули что скоро выйдет эпизод Flutter Build Show на эту тему. Посмотрим, что нам интересного расскажут💃
Сильная аура: задать вопрос команде флаттера
Продолжая тему нативного интеропа с ffigen, воспользовалась возможностью задать вопрос команде флаттера в комментариях на ютубе
Предварительно ожидаем бета-релиз в следующем году, сейчас в закрытом формате ведется работа по сбору обратной связи, улучшению перфоманса и документации
Еще тизернули что скоро выйдет эпизод Flutter Build Show на эту тему. Посмотрим, что нам интересного расскажут
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13❤3💅3
Please open Telegram to view this post
VIEW IN TELEGRAM
1💅5❤3💘3👎2
Forwarded from DUIT (Nikita Sinyavin)
🎉 Duit исполняется 2 года
Duit отмечает вторую годовщину с момента начала работы над проектом. За это время фреймворк вырос из эксперимента в устойчивый BDUI-инструментарий для Flutter, сохранив свою главную идею — "простоту", предсказуемость и контроль над деревом виджетов.
В честь этого я подготовил статью о том, как развивался Duit, что появилось за эти два года и куда проект движется дальше. Stay tuned!
Duit отмечает вторую годовщину с момента начала работы над проектом. За это время фреймворк вырос из эксперимента в устойчивый BDUI-инструментарий для Flutter, сохранив свою главную идею — "простоту", предсказуемость и контроль над деревом виджетов.
В честь этого я подготовил статью о том, как развивался Duit, что появилось за эти два года и куда проект движется дальше. Stay tuned!
Хабр
Два года с Duit — история взросления фреймворка
Итак, здравствуйте! Меня зовут Никита Синявин. Я руководитель направления мобильной разработки в компании BetBoom, автор телеграм-блога Boltotogy Tech и BDUI-фреймворка для Flutter — ...
🔥6
https://www.youtube.com/watch?v=GcXC8a8oL4I
Для себя выделила следующие советы:
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Как писать код с ИИ: советы от разработчика с 25-летним стажем
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
1👍3🔥2💅2❤1
Gemini + Flutter = GenUI 🧑💻
Всем уже наверняка надоела шутка про похороны флаттера, но кажется хейтеры притихли😐
Возможно потому, что Google объявил о том, что в обновленном Gemini app используется визуальный layout, написанный на флаттере🤔
Также в альфа версии стал доступен GenUI SDK, который позволяет менять интерфейс в зависимости от запроса пользователя.
Он управляет потоком информации между пользователем, виджетами и AI агентом, трансформируя привычные текстовые переписки в интерактивные элементы.🫣
Стоит отметить, что элементы UI не генерируются с нуля. Агент выбирает из встроенного каталога, либо можно указать каталог собственных виджетов.
Видео с демонстрацией использования - Getting started with GenUI💻
Всем уже наверняка надоела шутка про похороны флаттера, но кажется хейтеры притихли
Возможно потому, что Google объявил о том, что в обновленном Gemini app используется визуальный layout, написанный на флаттере
Также в альфа версии стал доступен GenUI SDK, который позволяет менять интерфейс в зависимости от запроса пользователя.
Он управляет потоком информации между пользователем, виджетами и AI агентом, трансформируя привычные текстовые переписки в интерактивные элементы.
Стоит отметить, что элементы UI не генерируются с нуля. Агент выбирает из встроенного каталога, либо можно указать каталог собственных виджетов.
Видео с демонстрацией использования - Getting started with GenUI
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥9💅4💘2
Forwarded from Boltology Tech | Nikita Sinyavin
А если без лишней драмы, то я, ваш покорный слуга, совместно со Станиславом Чернышевым устроим честный разговор без лишних прикрас:
- Что происходит с IT-конференциями и зачем они нам в текущем виде?
- Почему хардкорые технические доклады не в моде и куда они исчезли?
- Каково сегодня мерило "успеха" докладов и публикаций?
- Что вообще творится в Dart/Flutter-сообществе?
На эти и многие другие вопросы мы попытаемся дать ответ в ходе нашего со Станиславом диалога, ведь у нас, как и у многих, есть что сказать. Присоединяйтесь, будет
Еще разок напомню условия:
- Кто? Станислав Чернышев и Никита Синявин
- Где? Юпуп (ссылка будет позже)
- Когда? 28.11 в 19:00 по мск
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
Очень интересно послушать токс экспертов в теме конференций ⌨️
В этом году впервые посетила FlutterConf и Стачку, пока не до конца сформировала собственное мнение о том, каким должен быть социально одобряемый доклад. Некоторые были слишком узкоспециализированными, а какие-то напротив - обзорными.
Плюс оффлайн формат конференции на мой взгляд не всем подходит, нужно потратиться на билеты/жилье и организовать себе отгул в рабочий день🙄
Есть еще митапы - более лайтовый формат после рабочего дня, с небольшим количеством докладов и афтерпати. В основном, проводятся в Москве и бигтех компаниями🍑
Попасть туда, как правило, можно бесплатно, если вовремя зарегистрироваться. Мы с Ильей так в сентябре посетили питерский офис ВК у Красного моста, послушали интересные лекции по бэкэнду, в которых я даже что-то поняла, пообщались с участниками и вкусно покушали💓
В этом году впервые посетила FlutterConf и Стачку, пока не до конца сформировала собственное мнение о том, каким должен быть социально одобряемый доклад. Некоторые были слишком узкоспециализированными, а какие-то напротив - обзорными.
Плюс оффлайн формат конференции на мой взгляд не всем подходит, нужно потратиться на билеты/жилье и организовать себе отгул в рабочий день
Есть еще митапы - более лайтовый формат после рабочего дня, с небольшим количеством докладов и афтерпати. В основном, проводятся в Москве и бигтех компаниями
Попасть туда, как правило, можно бесплатно, если вовремя зарегистрироваться. Мы с Ильей так в сентябре посетили питерский офис ВК у Красного моста, послушали интересные лекции по бэкэнду, в которых я даже что-то поняла, пообщались с участниками и вкусно покушали
Please open Telegram to view this post
VIEW IN TELEGRAM
💘5💅1
Продолжая тему митапов, вчера посетила мероприятие, организованное сообществом Women In Tech
Приняла участие в воркшопе по нетворкингу: потренировали самопрезентацию и навык выявления общих интересов при знакомстве с новыми людьми🙂
Мне очень зашел такой формат, и оказалось, что намного проще начать разговор, если для тебя заранее подготовлены вопросы. А ограничение по времени подталкивает к более активным действиям.
Выяснила, что мне сложно сформулировать свою "полезность" для собеседника, а лучше всего получается вкидывать интересные факты о себе🤡
Рада была в этом поучаствовать и познакомиться с множеством интересных девушек💕
Во второй части послушала вдохновляющие рассказы от сотрудниц Selectel и участниц WiT.
Истории спикеров очень откликнулись, каждая по своему 🥹 От поиска себя до роста в руководители, как нетворкинг помогает строить карьеру и поддерживает в сложные времена.
Согласна с тем, что нетворкинг очень важен - без классного Flutter сообщества мой путь наверняка сложился бы по-другому. Поэтому ходим на митапы, общаемся в сообществах, кайфуем и строим карьеру💃
Приняла участие в воркшопе по нетворкингу: потренировали самопрезентацию и навык выявления общих интересов при знакомстве с новыми людьми
Мне очень зашел такой формат, и оказалось, что намного проще начать разговор, если для тебя заранее подготовлены вопросы. А ограничение по времени подталкивает к более активным действиям.
Выяснила, что мне сложно сформулировать свою "полезность" для собеседника, а лучше всего получается вкидывать интересные факты о себе
Рада была в этом поучаствовать и познакомиться с множеством интересных девушек
Во второй части послушала вдохновляющие рассказы от сотрудниц Selectel и участниц WiT.
Истории спикеров очень откликнулись, каждая по своему 🥹 От поиска себя до роста в руководители, как нетворкинг помогает строить карьеру и поддерживает в сложные времена.
Согласна с тем, что нетворкинг очень важен - без классного Flutter сообщества мой путь наверняка сложился бы по-другому. Поэтому ходим на митапы, общаемся в сообществах, кайфуем и строим карьеру
Please open Telegram to view this post
VIEW IN TELEGRAM
10🔥7❤6💘5💅2
Forwarded from Чтобы не выгорать
Иногда мы идём к мечте, которую когда-то получили от общества: про «правильную» карьеру, успех и стабильность.
Но мы меняемся. И мир вокруг тоже: что-то перестаёт работать так, как раньше, и появляется что-то новое.
Время от времени полезно спрашивать себя: А я вообще этого хочу? И подходит ли эта мечта к той реальности, в которой я живу сейчас?
Если нет — можно изменить направление. Это нормальная часть взрослой жизни
Но мы меняемся. И мир вокруг тоже: что-то перестаёт работать так, как раньше, и появляется что-то новое.
Время от времени полезно спрашивать себя: А я вообще этого хочу? И подходит ли эта мечта к той реальности, в которой я живу сейчас?
Если нет — можно изменить направление. Это нормальная часть взрослой жизни
❤12💘3