Вчера я участвовала в https://leetcode.com/contest/biweekly-contest-23. Само соревнование длилось 1,5 часа. За это время надо было решить 4 задачи: 1 легкая, 2 среднего уровня и 1 сложная. И у меня ушло минут 15 просто на то, чтобы перестать пугаться заданий и понять их. Кстати, за это время многие уже решили все 4 задачи. У первого места время 14:15.
Я смогла решить две задачи: лёгкую и сложную. Причём начала я сначала зачем-то со сложной, потом остановилась и сделала лёгкую, а потом вернулась к сложной. А вот на средние не хватило времени, да и я не особо старалась их понять.
После окончания соревнования можно посмотреть, что написали соперники. Было интересно видеть, как победители в несколько строчек элегантно вместили мой код на 500 строчек.
Качество решений, конечно, сильно хромает, потому что было ограниченное время. Но я всё равно довольна. Это очень полезный опыт.
В целом, мне очень понравилось и я буду пробовать ещё! 🏆
Я смогла решить две задачи: лёгкую и сложную. Причём начала я сначала зачем-то со сложной, потом остановилась и сделала лёгкую, а потом вернулась к сложной. А вот на средние не хватило времени, да и я не особо старалась их понять.
После окончания соревнования можно посмотреть, что написали соперники. Было интересно видеть, как победители в несколько строчек элегантно вместили мой код на 500 строчек.
Качество решений, конечно, сильно хромает, потому что было ограниченное время. Но я всё равно довольна. Это очень полезный опыт.
В целом, мне очень понравилось и я буду пробовать ещё! 🏆
Leetcode
Contest - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
Почему не получается придумать красивое название для метода
Вчера я очень сильно злилась, потому что с ревью вернулся код уже второй раз. И снова были комментарии про названия. При этом я стараюсь называть нормально, а не в стиле abc15. Конечно, сначала я психанула. Ну ведь очевидно, что метод делает вот это, а потом вот это. Ну что тебе ещё надо от меня? Уже вечером, после бокала вина, я успокоилась и посмотрела комментарии ещё раз. И тут до меня дошло, почему я не могу придумать идеальное название. Да просто потому что мой метод занимается двумя разными вещами, которые в принципе не совместимы. Не могу же я его назвать methodDoThisAndThenDoThat. И вот так вот просто комментарий про название привёл к большому рефакторингу. Зато теперь из названия сразу видно, что именно происходит.
Пока что у меня есть такой недостаток, что я иногда забываю, что один метод должен заниматься чем-то одним. Постоянно кажется, что если добавить ещё одну маленькую детальку, то ничего не изменится, но нет. Вероятно, надо всё-таки начать читать "Чистый код". Как раз карантин и самое подходящее время для этого.
Вчера я очень сильно злилась, потому что с ревью вернулся код уже второй раз. И снова были комментарии про названия. При этом я стараюсь называть нормально, а не в стиле abc15. Конечно, сначала я психанула. Ну ведь очевидно, что метод делает вот это, а потом вот это. Ну что тебе ещё надо от меня? Уже вечером, после бокала вина, я успокоилась и посмотрела комментарии ещё раз. И тут до меня дошло, почему я не могу придумать идеальное название. Да просто потому что мой метод занимается двумя разными вещами, которые в принципе не совместимы. Не могу же я его назвать methodDoThisAndThenDoThat. И вот так вот просто комментарий про название привёл к большому рефакторингу. Зато теперь из названия сразу видно, что именно происходит.
Пока что у меня есть такой недостаток, что я иногда забываю, что один метод должен заниматься чем-то одним. Постоянно кажется, что если добавить ещё одну маленькую детальку, то ничего не изменится, но нет. Вероятно, надо всё-таки начать читать "Чистый код". Как раз карантин и самое подходящее время для этого.
Наткнулась я сегодня на LeetCode на, казалось бы, простую задачку: Given an array nums of integers, return how many of them contain an even number of digits. Надо просто из массива чисел найти сколько из них имеют чётное количество цифр.
Думаю, многие решат эту задачку обычным делением. Я тоже изначально так сделала, а потом начала искать более оптимальные способы и нашла статью: https://www.baeldung.com/java-number-of-digits-in-int#3-repeated-multiplication
И вот интересные выводы, которые я сегодня сделала:
1. Это мне посоветовал друг. Чтобы оценивать, что сложнее: умножение, деление или логарифм — надо взять листочек, два числа и выполнить каждое действие с ними. Будет очевидно, что умножение самое простое и экономит примерно 30% времени;
2. Логарифм самый сложный. И это не только на листочке. Во-первых, даже смотреть на формулу сложно. А во-вторых, там внутри есть ещё перевод int в double и обратно;
3. Варианты со String и сравнением я сразу отбросила. Они даже выглядят не очень. Если я в проекте применю где-то такое сравнение, то, боюсь, моего тимлида потом придётся отпаивать вином и валерьянкой;
4. Даже самая простая задачка может привести к интересным выводам.
А ещё я тут познаю codeforces и topcoder. Визуально они выглядят намного хуже чем литкод, но я решила дать и им шанс.
Думаю, многие решат эту задачку обычным делением. Я тоже изначально так сделала, а потом начала искать более оптимальные способы и нашла статью: https://www.baeldung.com/java-number-of-digits-in-int#3-repeated-multiplication
И вот интересные выводы, которые я сегодня сделала:
1. Это мне посоветовал друг. Чтобы оценивать, что сложнее: умножение, деление или логарифм — надо взять листочек, два числа и выполнить каждое действие с ними. Будет очевидно, что умножение самое простое и экономит примерно 30% времени;
2. Логарифм самый сложный. И это не только на листочке. Во-первых, даже смотреть на формулу сложно. А во-вторых, там внутри есть ещё перевод int в double и обратно;
3. Варианты со String и сравнением я сразу отбросила. Они даже выглядят не очень. Если я в проекте применю где-то такое сравнение, то, боюсь, моего тимлида потом придётся отпаивать вином и валерьянкой;
4. Даже самая простая задачка может привести к интересным выводам.
А ещё я тут познаю codeforces и topcoder. Визуально они выглядят намного хуже чем литкод, но я решила дать и им шанс.
Baeldung on Kotlin
Number of Digits in an Integer in Java | Baeldung
Learn different ways of getting the number of digits in an Integer in Java.
Недавно мне дали две задачи, которые я никак не могу сделать. Обе на изучение и в обеих мой ответ: без понятия что тут происходит.
На фоне этих задач, которые бесконечно вводят меня в печаль, когда я их вижу, вспомнились мне дни работы в техподдержке. К нам часто приходили пользователи с багами. Мы эти баги относили разработчикам, а в ответ довольно часто было "Хз. У меня не воспроизводится". И тогда я злилась, потому что ну как так? Вот же пользователь! У него всё плохо! Чините давайте. Не воспроизводится у них видите ли.
А вот теперь я встала на позицию разработчика и теперь у меня не воспроизводится. Но в моей компании я не могу ответить "Хз". Надо решить проблему и помочь, чтобы никто не остался расстроенным. И вот уже второй день мой диалог с коллегой выглядит примерно так:
— Слушай, а может это? У меня воспроизвелось с такими настройками.
— Нет. У клиента правильные настройки.
— Блин.
И это циклично повторяется примерно каждые пять часов. Я даже попыталась сделать перерыв, чтобы с новыми силами потом вернуться к задачам, но и это не помогло. Просто какой-то тлен и безысходность. Надеюсь, завтра я проснусь и придёт озарение, что именно могло пойти не так.
На фоне этих задач, которые бесконечно вводят меня в печаль, когда я их вижу, вспомнились мне дни работы в техподдержке. К нам часто приходили пользователи с багами. Мы эти баги относили разработчикам, а в ответ довольно часто было "Хз. У меня не воспроизводится". И тогда я злилась, потому что ну как так? Вот же пользователь! У него всё плохо! Чините давайте. Не воспроизводится у них видите ли.
А вот теперь я встала на позицию разработчика и теперь у меня не воспроизводится. Но в моей компании я не могу ответить "Хз". Надо решить проблему и помочь, чтобы никто не остался расстроенным. И вот уже второй день мой диалог с коллегой выглядит примерно так:
— Слушай, а может это? У меня воспроизвелось с такими настройками.
— Нет. У клиента правильные настройки.
— Блин.
И это циклично повторяется примерно каждые пять часов. Я даже попыталась сделать перерыв, чтобы с новыми силами потом вернуться к задачам, но и это не помогло. Просто какой-то тлен и безысходность. Надеюсь, завтра я проснусь и придёт озарение, что именно могло пойти не так.
Озарение не пришло. Но зато поняла, что если по логам ничего не понять, то всегда можно попросить ещё логов. И ещё. Больше логов! К сожалению, это не помогло. Думаю, это возмездие за то, что работая в поддержке я вечно относила подобные проблемы разработчикам 😭
Заметка для себя. Все время забываю, как в студии отменить последний коммит, который ещё не запушен, но оставить изменения. Все-таки проще это делать в терминале: git reset --soft HEAD~1
https://zen.yandex.ru/media/android_junior/unittesty-osnovnye-metody-kotorye-ia-ispolzuiu-chast-1-5e885339587fbc16993564ae Немного про unit-тесты. В последнее время я довольно часто их пишу. Прошла все стадии: и отрицание, и гнев, и принятие. 😆
Яндекс Дзен
Unit-тесты. Основные методы, которые я использую. Часть 1.
Думаю, каждый начинающий разработчик встречается с тестами. Я помню свою первую встречу и она была ужасна. Я вообще не понимала, что происходит. Что ещё за мокито и почему нельзя создать нормальный объект? Как тестить многопоточность? А базу данных? Даже…
http://Hyperskill.org — это определенно один из лучших курсов, которые я встречала. И сделано очень красиво + бесплатный. А ещё мне интересен пункт "Hypercoin 800: Get a code review for a stage of your project. Our mentor will give you personal feedback on your architecture and code style." Попробую его достичь и посмотреть на CR :)
hyperskill.org
Hyperskill - Learn to code and break into tech
Hyperskill is an educational platform for learning programming and software development through project-based courses, that helps you secure a job in tech. Master Python, Java, Kotlin, and more with real-world coding challenges.
Забавно получилось. Последнюю неделю я разбиралась с даггером и сейчас искала картинку для статьи. Ввела Dagger, а в ответ появились всякие ножи. Так я узнала, что Dagger переводится как кинжал :)
https://zen.yandex.ru/media/android_junior/appcompatbutton-animaciia-pri-kastomnom-fone-5eaee570765171260b170bc3 немного про то, как я возвращала анимацию нажатия для кнопки при кастомном фоне
Яндекс Дзен
AppCompatButton. Анимация при кастомном фоне.
Столкнулась недавно с такой задача: есть кнопка, для неё есть дизайн. Соответственно надо переопределять фон с помощью drawable и установить тему. Выглядит легко и я установила selector. Проблема была в том, что когда я переопределила тему у кнопки, то пропала…
https://zen.yandex.ru/media/android_junior/dagger-i-mnogomodulnost-eto-realno-5ead9b64edf71008373a1497 Я тут с даггером немного разобралась :)
Дзен | Статьи
Даггер и многомодульность. Это реально?
Статья автора «Блог Android-разработчицы» в Дзене ✍: В последнее время я много времени потратила на даггер и внедрение его в многомодульное приложение.
https://zen.yandex.ru/media/android_junior/vopros-s-sobesedovaniia-equals-i-hashcode-zachem-oni-nujny-5eb856637a0ac263c0dec904 немного ушла в основы) На самом деле просто испугалась череды увольнений и решила немного теории повторять.
Дзен | Статьи
Вопрос с собеседования: equals и hashCode. Зачем они нужны?
Статья автора «Блог Android-разработчицы» в Дзене ✍: Один из популярных вопросов для джуниров: рассказать про equals и hashCode. У меня этот вопрос встречался на двух собеседованиях из семи.
Когда я проходила собеседования, то про коллекции действительно спрашивали. Удивительно, что не так уж много. А то до собеседований меня запугивали, что будут прям сильно гонять. Тут собрано всё, что когда-либо спрашивали. https://zen.yandex.ru/media/android_junior/arraylist-chto-mogut-sprosit-na-sobesedovanii-u-djuniora-5eb8517a0bd3a10518a550c3
Яндекс Дзен
ArrayList. Что могут спросить на собеседовании у джуниора.
Небольшое введение. Все знают, что в массиве нельзя увеличить размер. Если мы изначально сказали, что там хранится 4 элемента, то добавить пятый никак не выйдет. Придётся создавать новый массив, а старый будет занимать место в памяти. Думаю, отчасти поэтому…
Простите, но немного странных мыслей перед сном. Сейчас лежала и думала, как же мне повезло, что я нашла своё призвание. За время, что я работала и стажировалась (а прошло уже больше года), я ни разу не думала, что не хочу идти на работу. Я просыпаюсь и я рада, что я буду заниматься любимым делом, за которое мне ещё и платят. И только сейчас я ощущаю себя в гармонии самой с собой.
На эти мысли меня навела одна статья, где говорилось, что после 25 уже нет смысла изучать программирование и вообще жизнь закончена. Я начала учиться в 29. В 30 нашла первую работу джуниором и я счастлива. Мне страшно представить, что я могла в 29 наткнуться на такую статью, испугаться и продолжать жить, как жила. У меня была хорошая работа, но я ей не горела и была максимально равнодушна к ней. Довольно часто я просыпалась и плакала, потому что мне не хотелось работать. Это ужасно.
Я считаю, что вне зависимости от возраста, если чувствуете, что это не ваше, то идите и изучайте то, к чему лежит душа. Даже если весь мир вас осудит. Моя мама вообще была в шоке, когда я сказала, что бросаю работу и иду на самую низкую должность разработчиком еще и с испытательным сроком. Но она смирилась. Сейчас даже с гордостью говорит друзьям, какая смелая у неё дочь.
Многие боятся что-то менять из-за низкой стартовой зарплаты. Но и тут ведь надо себя уважать, адекватно оценить рынок и идти хотя бы на среднюю зарплату для джуниоров, не соглашаясь работать за еду. Да, придётся поискать, но это реально. К сожалению, про другие сферы не знаю. Возможно, где-то и правда лучше заранее подкопить, чтобы потом не сидеть на гречке.
И нет, в 25 не поздно начать программировать. И в 30. Т даже в 40. Безусловно, есть команды, которые состоят из школьников. Но ведь никто не заставляет идти работать именно туда. Есть множество хороших компаний, где работают взрослые люди, которые готовы взять взрослого джуниора. Ну хотя бы просто потому что школьник не впишется в коллектив. Поэтому просто хочу пожелать, чтобы вы не отказывались от своей мечты и шли к ней, даже если вам немного за 30. ❤️
На эти мысли меня навела одна статья, где говорилось, что после 25 уже нет смысла изучать программирование и вообще жизнь закончена. Я начала учиться в 29. В 30 нашла первую работу джуниором и я счастлива. Мне страшно представить, что я могла в 29 наткнуться на такую статью, испугаться и продолжать жить, как жила. У меня была хорошая работа, но я ей не горела и была максимально равнодушна к ней. Довольно часто я просыпалась и плакала, потому что мне не хотелось работать. Это ужасно.
Я считаю, что вне зависимости от возраста, если чувствуете, что это не ваше, то идите и изучайте то, к чему лежит душа. Даже если весь мир вас осудит. Моя мама вообще была в шоке, когда я сказала, что бросаю работу и иду на самую низкую должность разработчиком еще и с испытательным сроком. Но она смирилась. Сейчас даже с гордостью говорит друзьям, какая смелая у неё дочь.
Многие боятся что-то менять из-за низкой стартовой зарплаты. Но и тут ведь надо себя уважать, адекватно оценить рынок и идти хотя бы на среднюю зарплату для джуниоров, не соглашаясь работать за еду. Да, придётся поискать, но это реально. К сожалению, про другие сферы не знаю. Возможно, где-то и правда лучше заранее подкопить, чтобы потом не сидеть на гречке.
И нет, в 25 не поздно начать программировать. И в 30. Т даже в 40. Безусловно, есть команды, которые состоят из школьников. Но ведь никто не заставляет идти работать именно туда. Есть множество хороших компаний, где работают взрослые люди, которые готовы взять взрослого джуниора. Ну хотя бы просто потому что школьник не впишется в коллектив. Поэтому просто хочу пожелать, чтобы вы не отказывались от своей мечты и шли к ней, даже если вам немного за 30. ❤️
👍1🥰1
https://youtu.be/32Jox0itYKI Интересности про андроид 11. 💕
YouTube
Android 11 #1: Deep Dive into Scoped Storage & Privacy
Slides: https://bit.ly/3i8pRlF
TM Android Academy Moscow: https://t.me/AndroidAcademyMsk
TM Android Academy Minsk: https://t.me/androidacademyminsk
TM Android Academy SPB: https://t.me/androidacademyspb
TM Android Academy Tel Aviv - https://t.me/androidacademyglobal…
TM Android Academy Moscow: https://t.me/AndroidAcademyMsk
TM Android Academy Minsk: https://t.me/androidacademyminsk
TM Android Academy SPB: https://t.me/androidacademyspb
TM Android Academy Tel Aviv - https://t.me/androidacademyglobal…
Forwarded from Android Academy Msk News
Все через пару часов мы встретимся что бы рассказать вам самые последние обновления связанные с Android 11 от ребят из Google, Flo и ЦФТ.
Присоединяйтесь: https://youtu.be/AAS2eyP8aeo
Присоединяйтесь: https://youtu.be/AAS2eyP8aeo
YouTube
Android 11 #2: Deep dive in Modern Android Development
Feedback form: https://forms.gle/gYqjbGKtjnCtBPE5A
Slides: https://bit.ly/3i8pRlF
TM Android Academy Moscow: https://t.me/AndroidAcademyMsk
TM Android Academy Minsk: https://t.me/androidacademyminsk
TM Android Academy SPB: https://t.me/androidacademyspb…
Slides: https://bit.ly/3i8pRlF
TM Android Academy Moscow: https://t.me/AndroidAcademyMsk
TM Android Academy Minsk: https://t.me/androidacademyminsk
TM Android Academy SPB: https://t.me/androidacademyspb…
Forwarded from Android Academy Msk News
А мы скоро начинаем наше мероприятие, посвящённое новинкам Android Jetpack.
Начало в 19:00 UTC+3
https://www.youtube.com/watch?v=8hZLlXNZo_o
Начало в 19:00 UTC+3
https://www.youtube.com/watch?v=8hZLlXNZo_o
YouTube
Android 11 #3 - Jetpack
Feedback form: https://bit.ly/3gv20wd
Slides: https://bit.ly/3i8pRlF
TM Android Academy Moscow: https://t.me/AndroidAcademyMsk
TM Android Academy Minsk: https://t.me/androidacademyminsk
TM Android Academy SPB: https://t.me/androidacademyspb
TM Android Academy…
Slides: https://bit.ly/3i8pRlF
TM Android Academy Moscow: https://t.me/AndroidAcademyMsk
TM Android Academy Minsk: https://t.me/androidacademyminsk
TM Android Academy SPB: https://t.me/androidacademyspb
TM Android Academy…
https://zen.yandex.ru/media/android_junior/11-saitov-na-kotorye-ia-zahoju-kajdyi-den-5f2ebc7e3729023908a2d2e8 немного полезных сайтов, которые мне помогают в учебе
Яндекс Дзен
11 сайтов, на которые я захожу каждый день
Мой личный список сайтов, которые у меня в закладках и на которые я стараюсь заходить каждый день, чтобы как-то совершенствоваться как разработчик.
Forwarded from Android Academy Msk News
Уже через час ребята из Android Academy Global начнут рассказывать самые последние обновления, связанные с #Android11 На очереди у нас сегодня следующее:
1️⃣ The Art of Jetpack Navigation Component
2️⃣ CameraX
👉 Присоединяйтесь ➡️ https://www.youtube.com/watch?v=RZ6eM_6QPjM
текст для публикаций в ваших каналах, если вдруг надо. сс
1️⃣ The Art of Jetpack Navigation Component
2️⃣ CameraX
👉 Присоединяйтесь ➡️ https://www.youtube.com/watch?v=RZ6eM_6QPjM
текст для публикаций в ваших каналах, если вдруг надо. сс
YouTube
Android 11 #4: The Art of the Navigation Component and CameraX
Feedback form: https://forms.gle/NVVHycfGcnApkkKF6
Slides: https://bit.ly/3i8pRlF
Github: https://github.com/Android-Academy-Global
TM Android Academy Moscow: https://t.me/AndroidAcademyMsk
TM Android Academy Minsk: https://t.me/androidacademyminsk
TM Android…
Slides: https://bit.ly/3i8pRlF
Github: https://github.com/Android-Academy-Global
TM Android Academy Moscow: https://t.me/AndroidAcademyMsk
TM Android Academy Minsk: https://t.me/androidacademyminsk
TM Android…