Нет смысла повторять, что для итшника уметь учиться — жизненная необходимость. В отличии от других консервативных сфер, где технологии и навыки не меняются десятилетия, наш инструмент работы может измениться следующим апдейтом.
Мы в такой сфере, что любой навык может устареть еще на этапах согласования и утверждения учебного материала. Хоть нас всех в будущем заменят chatGPT и ИИ, все универы перестанут быть нужны и люди станут лишними. Вот уже в пятый раз получаю образование. Просто на бессознательном уровне начинаю погружаться в методы и техники. Да и вырос в семье учителей. В процессе вношу заметки и хочу поделиться:
Хороший препод должен не только дать знания, но и замотивировать их получить. От хорошего препода важно не только ожидать профессиональной экспертизы, но и навыки организовывать сессии и делать инструменты обмена знаний. Для себя выделю, что мотивацию считаю важнее.
Многие преподы могут обладать высоким уровнем экспертизы, но поделиться и научить не способны даже до базового уровня. Скилл менторинга и педагога также важен для работы. Когда технический специалист просто не обладает нужной экспертизой педагогики, которая помогает шарить знания эффективно.
На этом абзаце должна быть нагло всунута реклама какого-нибудь курса иосников от яндекс.практикума, но мне никто не хочет платить миллиарды. Но тема о другом. Этот принцип высокой экспертизы и удобного шаринга хочется оцифровать в симуляторе иосника.
Вероятнее всего вы знаете примеры уже хороших учебных порталов и скините мне их. Тут нет в планах делать сайты и тп, а скорее создать живое комьюнити актуальных знаний по нашей специфике
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Концепции мотивации
Кстати, делюсь контентом с учебы. Знаю, среди вас есть те, кто уже тимлид и руководит человеками. Ща прохожу основы менеджмента и знакомлюсь с основами мотивации. Как делать свою и чужую работу более эффективной. Знать более прикладные и предметные инструменты считаю полезно на любых уровнях. И это не про косметические решения: мотивирующие истории и лозунги в стиле "просто делай", а почти научные подходы.
Любая мотивация делится на 2 концепции: процессуальная и содержательная.
1️⃣ Процессуальная — эти теории базируются на причинах, по которым люди выбирают как им себя вести. Сюда относятся:
Теория ожиданий по Вруму — где подразумевается, что исполнитель лучше понимает работу, если знает как его вознаградят. А вознаграждение должно учитывать потребности вознаграждаемого.
Теория справедливости по Адамсу. В основе нее лежит старая добрая идея равенства. Модель хрупкая и простая, за что неоднократно подвергалась сомнению.
Теория X и теория Y. Это две теории подходят к мотивациям с двух противоположных сторон: авторитарной и демократической
Кстати, делюсь контентом с учебы. Знаю, среди вас есть те, кто уже тимлид и руководит человеками. Ща прохожу основы менеджмента и знакомлюсь с основами мотивации. Как делать свою и чужую работу более эффективной. Знать более прикладные и предметные инструменты считаю полезно на любых уровнях. И это не про косметические решения: мотивирующие истории и лозунги в стиле "просто делай", а почти научные подходы.
Любая мотивация делится на 2 концепции: процессуальная и содержательная.
1️⃣ Процессуальная — эти теории базируются на причинах, по которым люди выбирают как им себя вести. Сюда относятся:
Теория ожиданий по Вруму — где подразумевается, что исполнитель лучше понимает работу, если знает как его вознаградят. А вознаграждение должно учитывать потребности вознаграждаемого.
Теория справедливости по Адамсу. В основе нее лежит старая добрая идея равенства. Модель хрупкая и простая, за что неоднократно подвергалась сомнению.
Теория X и теория Y. Это две теории подходят к мотивациям с двух противоположных сторон: авторитарной и демократической
👍5🔥5
365 дней богу Алгоритмов: Отчет за третью неделю
Еженедельный отчет. Эта неделя прошла чуть сложнее из-за резкого дефицита времени, но получилось как получилось.
Как всегда где-то брутфорсил, где-то костылил, где-то подсматривал. Связанные списки какая-то срань. Где они вообще полезные?
17. Минимальная сумма подмассивов. Медиум таска из задач в сборнике техник двух поинтеров. Решил не сразу и чуть в лоб. Мб медиумы не нужно брать с начала недели пока
18. Реверс слов в массиве. Решил задачу в лоб и по общим решениям оказалось, что и не самое худшее
19. Удалить дубликаты в отсортированном связанном списке. Все время забываю, что связанный список — это референс тайп.
20. Каждый индекс сумма прошлых элементов. Одна из легчайших из легких
21. Кол-во хороших пар. Брутфорснул
22. Сабсущность. Смотря на решение пары дней назад даже не понимаю каким воспаленным мозгом я к нему пришел
23. Реверс связанного списка. Ну тут изи. Комментов нет
Один из главных выводов — работа над ошибками. Все же к некоторым задачам нужно приходить снова подтянув теорию и практику
#365_дней_богу_алгоритмов
Еженедельный отчет. Эта неделя прошла чуть сложнее из-за резкого дефицита времени, но получилось как получилось.
Как всегда где-то брутфорсил, где-то костылил, где-то подсматривал. Связанные списки какая-то срань. Где они вообще полезные?
17. Минимальная сумма подмассивов. Медиум таска из задач в сборнике техник двух поинтеров. Решил не сразу и чуть в лоб. Мб медиумы не нужно брать с начала недели пока
18. Реверс слов в массиве. Решил задачу в лоб и по общим решениям оказалось, что и не самое худшее
19. Удалить дубликаты в отсортированном связанном списке. Все время забываю, что связанный список — это референс тайп.
20. Каждый индекс сумма прошлых элементов. Одна из легчайших из легких
21. Кол-во хороших пар. Брутфорснул
22. Сабсущность. Смотря на решение пары дней назад даже не понимаю каким воспаленным мозгом я к нему пришел
23. Реверс связанного списка. Ну тут изи. Комментов нет
Один из главных выводов — работа над ошибками. Все же к некоторым задачам нужно приходить снова подтянув теорию и практику
#365_дней_богу_алгоритмов
⚡4❤2🐳2👍1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Версия 1.0 (10)
Как говорится побеждает не сильнейший, а самый стабильный. Наша сборка по понедельникам стабильней некуда.
В этой сборке для бета-тестеров как всегда новая продуктовая функциональность, фиксы багов и обязательно куча новых. В новом функционале у нас пришли достижения и стрики за ежедневный вход.
На экране достижений можно посмотреть текущие открытые и еще не полученные.
В чате бета-тестеров накидывают много идей. Из новых почти реализовали графики с прогрессом обучения и фильтрацию материалов по разным критериям.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥3
Структуры данных: Связанный список
Связанный список — это та самая структура данных, которую почти все спрашивают на собесах, но никогда не применяют в жизни. Даже один из ее создателей признавался, что почти никогда не юзал эту структуру в жизни.
Связанный список представляет собой объект, который обычно называют node. Она содержит все данные и ссылку на другую ноду.
В примере выше 2 реализации:
- через класс
- через enum
Связанный список — это та самая структура данных, которую почти все спрашивают на собесах, но никогда не применяют в жизни. Даже один из ее создателей признавался, что почти никогда не юзал эту структуру в жизни.
Связанный список представляет собой объект, который обычно называют node. Она содержит все данные и ссылку на другую ноду.
В примере выше 2 реализации:
- через класс
- через enum
👍7
Фреймворки — фреймят мышление.
Почему-то в мобилке все чаще юзаются архитектурные фреймворки. Люди выбирают шаблоны не по решению проблем, а по шаблонизации проекта. Маскируя плохой дизайн аргументом единообразия.
Архитектор. Как много в этом слове загадочного и неопределенного. В каждой компании эту должность занимает какой-то старый опытный дед, а его функцию никто не понимает.
Не знаю как вы, но я часто задаю вопрос какой паттерн заюзать в решении разных проблем. Здесь лучше маршрутизатор или координатор? А тут может мультиделегат или обсервер? Билдер или фабрику?
Каждый паттерн — это решение под конкретную проблему. Хороший паттерн понятен по названию, описывает мотивацию и результаты. Но к любой проблеме можно подойти с разных сторон и нет однозначного ответа. Есть только ресурсы и время.
Этим сложным вопросом часто и занимается архитектор: как выдержать баланс между качеством и стоимостью? В знаменитой книге банды четырех есть советы по выбору паттернов проектирования:
Как выбирать паттерн проектирования?
1. Подумать, как паттерн решает проблему. Это самое сложное. Иногда хочется запихнуть какой-то паттерн или архитектуру только потому, что прочитал чей-то доклад или статью. Или так модно.
2. Лучше изучить их назначение. Первые связаны с процессом создания объектов. Вторые имеют отношение к композиции объек тов и классов. Паттерны поведения характеризуют то, как классы или объекты взаимодействуют между собой.
3. Изучить взаимосвязи паттернов. Какие-то паттерны лучше работают вместе, а какие-то вызывают лишние трудности
4. Проанализируйте паттерны со сходными целями. Каждый паттерн принадлежит к одной из трех частей: порождающие паттерны, структурные паттерны и паттерны поведе ния
5. Разберитесь в причинах, вызывающих перепроектирование.
Правила кажутся очень просто, но очень часто нарушаются.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6⚡2
Кто запустит хкоде — тот андроид разраб
Anonymous Quiz
47%
in closure we live, 1, deinit call
5%
deinit call, in closure we live, 1
7%
deinit call
29%
in closure we live, 1
1%
in closure we live, 2
12%
Я хз
😁1
Как сравнить классы?
Пишу этот пост тем, кто так же забывает о других способах и помнит только о Hashable. В литкоде часто требуется решить задачи с минимальным использованием функций языка. Все на примитивах. Продакшен код избаловал меня и заставил забыть о многих вещах, которые нужно делать самому.
Банальные рекомендованные решения не всегда сделаешь из-за "гениального" дизайна swift'a. А юзать функции, которые за тебя делают 99% задачи, противоречит самой философии решения задач.
Для сравнения классов необязательно иметь хэшвалуе. Прикиньте? Вау. Если вы, как и я, забыли об этом, то вот пару советов:
1. оператор === . Он помогает сравнить лежит ли экземпляр класса в одной и той же ячейки памяти. Идеально для всех классов.
2. Класс ObjectIdentifier. Это уже дополнение, где мы можем быстро идентифицировать класс подручными средствами. Класс больше компенсирует ту кастрацию и плохой дизайн нашего языка. Помогает совмещать Set, HashMap без подписки класса на Hashable
Кстати, кому интересно, то вот видос, как с помощью этого класса делают свой DI.
Пишу этот пост тем, кто так же забывает о других способах и помнит только о Hashable. В литкоде часто требуется решить задачи с минимальным использованием функций языка. Все на примитивах. Продакшен код избаловал меня и заставил забыть о многих вещах, которые нужно делать самому.
Банальные рекомендованные решения не всегда сделаешь из-за "гениального" дизайна swift'a. А юзать функции, которые за тебя делают 99% задачи, противоречит самой философии решения задач.
Для сравнения классов необязательно иметь хэшвалуе. Прикиньте? Вау. Если вы, как и я, забыли об этом, то вот пару советов:
1. оператор === . Он помогает сравнить лежит ли экземпляр класса в одной и той же ячейки памяти. Идеально для всех классов.
2. Класс ObjectIdentifier. Это уже дополнение, где мы можем быстро идентифицировать класс подручными средствами. Класс больше компенсирует ту кастрацию и плохой дизайн нашего языка. Помогает совмещать Set, HashMap без подписки класса на Hashable
Кстати, кому интересно, то вот видос, как с помощью этого класса делают свой DI.
YouTube
Object IDs: Dependency Injection Fundamentals (iOS) – 2022
In this video we will learn about object identifiers in swift and Xcode. Object identifiers can be used to form the foundation of dependency injection with resolve and register patterns. We will do some examples in a playground using the latest version of…
👌6👍2🔥1
Одно из главных правил хорошего проектирования гласит: предпочитайте композицию наследованию класса
Два самых популярных приема переиспользования функциональности. С наследованием все понятно и мы юзаем его в каждом классе, а вот с композицией не всегда. Частично можно сказать, что отказ от наследования в структурах должен был приблизить разработчиков к хорошему проектированию. Так ли это? Давайте разбираться.
Композиция сводится к объединению нескольких частей для создания нового. Можно увидеть апку, которая юзает много фреймворков, как результат совместного создания фреймворков.
В идеале, чтобы добиться повторного использования, вообще не следовало бы создавать новые компоненты. Хорошо бы, чтобы можно было получить всю нужную функциональность, просто собирая вместе уже существующие компоненты. На практике так получается редко, поскольку набор имеющихся компонентов все же недостаточно широк.
Повторное использование за счет на следования упрощает создание новых компонентов, которые можно было бы применять со старыми. Поэтому наследование и композиция часто используются вместе.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥3❤🔥2