Пока нет вдохновения писать про что-то техническое, расскажу немного о том, что у меня происходит. Я работаю уже больше года и недавно мы взяли нового джуниора. Он достался мне и тут я осознала, что такое карма.
Что в итоге совместной работы хотелось бы посоветовать:
1) Если вы не понимаете задачу — спрашивайте. И делайте это сразу, а не через три дня. В любом случае придется объяснять, но лучше сделать это сразу, а не ждать несколько дней.
2) Если вопрос в стиле "Что такое debug" или "Что такое NPE", то, пожалуйста, сначала погуглите. У разработчиков есть и свои задачи и не хочется тратить время на вопросы, которые можно легко загуглить. Конечно, все равно ответим, но это немного раздражает.
3) Умение правильно гуглить — это важно. Раньше я думала, что это умеют абсолютно все. Оказывается, нет.
4) Пишите вопрос сразу же. Не надо писать "Привет" и дожидаться ответа, а только потом задавать вопрос.
5) Если не поняли ответ сразу же, то сначала немного подумайте, а уже потом переспрашивайте.
6) Если вы не знаете, как решать задачу, то подумайте, а потом спросите. Вряд ли ответом будет решение и конкретный код. Скорее всего вам просто подскажут что смотреть и где. Не ждите, что разработчик даст вам код, который нужно просто скопировать и вставить. Это все-таки ваша задача.
7) Проверяйте код перед отправкой. Хотя бы запустите и проверьте, что нигде не светится красным. Желательно еще проверить, что вы выполнили задачу и всё работает.
8) Спрашивайте, когда что-то не понимаете. Но предварительно откройте гугл и проверьте, что ответа не будет в первых трех ссылках.
9) Никто не будет вас ругать, так что не стоит бояться уточнять и совершать ошибки. Все были начинающими и и все понимают, что они требуют много времени и внимание. Как говорится: "Мы знали, кого брали на работу".
Что в итоге совместной работы хотелось бы посоветовать:
1) Если вы не понимаете задачу — спрашивайте. И делайте это сразу, а не через три дня. В любом случае придется объяснять, но лучше сделать это сразу, а не ждать несколько дней.
2) Если вопрос в стиле "Что такое debug" или "Что такое NPE", то, пожалуйста, сначала погуглите. У разработчиков есть и свои задачи и не хочется тратить время на вопросы, которые можно легко загуглить. Конечно, все равно ответим, но это немного раздражает.
3) Умение правильно гуглить — это важно. Раньше я думала, что это умеют абсолютно все. Оказывается, нет.
4) Пишите вопрос сразу же. Не надо писать "Привет" и дожидаться ответа, а только потом задавать вопрос.
5) Если не поняли ответ сразу же, то сначала немного подумайте, а уже потом переспрашивайте.
6) Если вы не знаете, как решать задачу, то подумайте, а потом спросите. Вряд ли ответом будет решение и конкретный код. Скорее всего вам просто подскажут что смотреть и где. Не ждите, что разработчик даст вам код, который нужно просто скопировать и вставить. Это все-таки ваша задача.
7) Проверяйте код перед отправкой. Хотя бы запустите и проверьте, что нигде не светится красным. Желательно еще проверить, что вы выполнили задачу и всё работает.
8) Спрашивайте, когда что-то не понимаете. Но предварительно откройте гугл и проверьте, что ответа не будет в первых трех ссылках.
9) Никто не будет вас ругать, так что не стоит бояться уточнять и совершать ошибки. Все были начинающими и и все понимают, что они требуют много времени и внимание. Как говорится: "Мы знали, кого брали на работу".
Сегодня мое первое приложение стало доступно всем в Play Market. Было волнительное ожидание сроком в 5 дней, но все прошло хорошо.
Сама регистрация и создание аккаунта интуитивно понятные. Ошибиться там сложно. Потом нужно было оплатить аккаунт разработчика. 2000р и все готово.
Конечно, сразу же покопалась во всем и нашла много удобных штук: есть немного логов, можно раскатывать тестовые версии и т.п.
Для публикации приложения пришлось заполнить кучу простеньких анкет в стиле "К какой категории относится приложение" и "Можно ли показывать его детям". Ничего сложного. И там для страницы приложения надо приложить просто миллион скриншотов: для обычного телефона, для планшета, еще для среднего экрана. И везде не меньше двух штук. Ну зато узнала, что мое приложение не особо оптимизировано для планшетов и смотрится там не очень.
А еще заказала у девочки-студентки иконки для приложения, чтобы в маркете оно смотрелось адекватно.
Когда все заполнено, то останется просто скинуть апк и ждать (я ждала 5 дней). Было интересно, что когда я сначала закинула первую версию, то в Crashlytics у меня появилось 56% падений при установке. Цифра впечатляет.
Конечно, сразу пофиксила и отправила вторую версию. Правда плохо, что нельзя отменить отправку на проверку, если что-то пошло не так. Ну или я не нашла.
Само приложение не буду показывать. Просто похвасталась. :)
Сама регистрация и создание аккаунта интуитивно понятные. Ошибиться там сложно. Потом нужно было оплатить аккаунт разработчика. 2000р и все готово.
Конечно, сразу же покопалась во всем и нашла много удобных штук: есть немного логов, можно раскатывать тестовые версии и т.п.
Для публикации приложения пришлось заполнить кучу простеньких анкет в стиле "К какой категории относится приложение" и "Можно ли показывать его детям". Ничего сложного. И там для страницы приложения надо приложить просто миллион скриншотов: для обычного телефона, для планшета, еще для среднего экрана. И везде не меньше двух штук. Ну зато узнала, что мое приложение не особо оптимизировано для планшетов и смотрится там не очень.
А еще заказала у девочки-студентки иконки для приложения, чтобы в маркете оно смотрелось адекватно.
Когда все заполнено, то останется просто скинуть апк и ждать (я ждала 5 дней). Было интересно, что когда я сначала закинула первую версию, то в Crashlytics у меня появилось 56% падений при установке. Цифра впечатляет.
Конечно, сразу пофиксила и отправила вторую версию. Правда плохо, что нельзя отменить отправку на проверку, если что-то пошло не так. Ну или я не нашла.
Само приложение не буду показывать. Просто похвасталась. :)
Я тут начала изучать алгоритмы. Хочу через год попробовать в яндекс или еще куда-нибудь, так что заранее готовлюсь. А может и на моей работе пригодятся. Буду теперь периодически и алгоритмы закидывать. — https://zen.yandex.ru/media/android_junior/stek-prostaia-realizaciia-na-kotline-6036ab8a06d8906a0cf163c1
Дзен | Статьи
Стек. Простая реализация на котлине.
Статья автора «Блог Android-разработчицы» в Дзене ✍: Я начала изучать алгоритмы (наконец-то доросла до них), так что буду иногда и про это теперь писать.
Еще немного алгоритмов. Теперь время очереди. — https://zen.yandex.ru/media/android_junior/ochered-realizaciia-na-kotline-60463f9958285736ddd03370
Дзен | Статьи
Очередь. Реализация на Котлине.
Статья автора «Блог Android-разработчицы» в Дзене ✍: Продолжаем изучать алгоритмы.
Очередь — это почти то же самое, что и стек, но тут первым извлекается тот элемент, который был вставлен первым.
Очередь — это почти то же самое, что и стек, но тут первым извлекается тот элемент, который был вставлен первым.
Где учить sql джуниорам? Когда я искала работу, то про sql у меня спрашивали всего на двух собеседованиях и просили составить самые простые запросы в стиле SELECT * FROM Table, но более глубокие знания точно не повредят. Да и на работе обязательно встретятся запросы в БД. Даже если используете Room, где куча автоматизаций, то от миграций никуда не деться.
Миграция — изменение БД от одной версии к другой. Например, у вас есть база данных Cats, где есть столбики Name и Age. Это первая версия базы. Потом вы подумали и решили, что хотите добавить еще столбик Country. Не повредит знать, где живут котики. Но проблема в том, что если вы просто добавите новый столбик и установите себе поверх старой версии, то будет исключение. Потому что раньше у вас не было страны, а теперь есть. Чтобы исключений не было, надо написать миграцию — небольшое правило, где мы рассказываем, какие изменения произошли в новой версии и что надо сделать. Например: database . execSQL ( "ALTER TABLE Cats ADD COLUMN Country TEXT" ). Подробно не буду объяснять, потому что статья про сайт, а не про БД.
Недавно открыла для себя сайт, где можно изучить основы: https://www.w3schools.com/sql/ — тут находится очень краткое обучение. https://www.w3schools.com/sql/exercise.asp — а тут упражнения по темам. Проходятся достаточно легко. Прочитали тему — сразу сделали упражнения.
Интерфейс на английском, но визуально всё понятно.
Миграция — изменение БД от одной версии к другой. Например, у вас есть база данных Cats, где есть столбики Name и Age. Это первая версия базы. Потом вы подумали и решили, что хотите добавить еще столбик Country. Не повредит знать, где живут котики. Но проблема в том, что если вы просто добавите новый столбик и установите себе поверх старой версии, то будет исключение. Потому что раньше у вас не было страны, а теперь есть. Чтобы исключений не было, надо написать миграцию — небольшое правило, где мы рассказываем, какие изменения произошли в новой версии и что надо сделать. Например: database . execSQL ( "ALTER TABLE Cats ADD COLUMN Country TEXT" ). Подробно не буду объяснять, потому что статья про сайт, а не про БД.
Недавно открыла для себя сайт, где можно изучить основы: https://www.w3schools.com/sql/ — тут находится очень краткое обучение. https://www.w3schools.com/sql/exercise.asp — а тут упражнения по темам. Проходятся достаточно легко. Прочитали тему — сразу сделали упражнения.
Интерфейс на английском, но визуально всё понятно.
W3Schools
SQL Tutorial
SQL is a standard language for storing, manipulating and retrieving data in databases.
Прекрасная книга от Роберта Мартина — https://zen.yandex.ru/media/android_junior/chistyi-kod-konspekt-glava-1-vstuplenie-6063813fe0f03f689eaf3d39
Яндекс Дзен
Чистый код. Конспект. Глава 1. Вступление.
Предисловие: я люблю читать различные книги, а еще записываю всякие полезные штуки в тетрадку. Но недавно мне подали идею, что можно в блоге вести конспекты, чтобы эта информация пригождалась не только мне. Так что потренируемся на чистом коде. Это отличная…
Продолжаем читать Мартина https://zen.yandex.ru/media/android_junior/chistyi-kod-konspekt-glava-2-soderjatelnye-imena-6064d9892a842913a70b0804
Яндекс Дзен
Чистый код. Конспект. Глава 2. Содержательные имена
Продолжаем читать Мартина. И сегодня очень полезная глава про имена. Думаю, для опытных разработчиков она бесполезна, но вот для начинающих — самое то. Я помню, что на первых лекциях по Java сама называла методы и переменные в стиле 'a' и 'method1' и не понимала…
А я написала свою первую библиотеку! Пусть простая и неказистая, зато своя! https://zen.yandex.ru/media/android_junior/napisala-svoiu-pervuiu-biblioteku-606b63ac4ae18415ba2929ac
Яндекс Дзен
Написала свою первую библиотеку.
В выходные мне нечего было делать и я решила, что пришло время для своей библиотеки. Так что быстренько набросала, проверила, а потом была поставлена в тупик вопросом: а как собственно ее опубликовать? Великий гугл еще больше меня озадачил, потому что для…
Продолжаем читать Мартина. https://zen.yandex.ru/media/android_junior/chistyi-kod-konspekt-glava-3-funkcii-606b6cf2b15d725cb2a111ee
Яндекс Дзен
Чистый код. Конспект. Глава 3. Функции.
Заметки: Функция должна быть еще более компактная. Еще компактней. Максимально компактной. Желательно не делать функции больше 20 строк. Всякие if, else, while должны состоять из одной строчки и содержать вызов функции. С красивым именем это будет читаться…
Сегодня была очень интересная и познавательная глава про комментарии. https://zen.yandex.ru/media/android_junior/chistyi-kod-konspekt-glava-4-kommentarii-606e0c4f1a4fdc43eb50d3f9
Яндекс Дзен
Чистый код. Конспект. Глава 4. Комментарии.
Заметки: Мартин очень не любит комментарии, так что будет куча пунктов, почему комментарии — плохо. Так почему комментарии — это неизбежное зло? Комментарии — всегда признак неудачи, потому что нам не удалось выразить свои мысли в коде так, чтобы всё было…
https://zen.yandex.ru/media/android_junior/chistyi-kod-konspekt-glava-5-formatirovanie-607883254825fd7864978b14 — продолжаем читать Мартина)
Яндекс Дзен
Чистый код. Конспект. Глава 5. Форматирование.
Заметки: Выработайте набор правил форматирования и автоматизируйте их. Подтверждаю, что это просто потрясающе удобная штука. Например, не надо думать, назвать вьюшку в xml через camelCase или в стиле awesome_name. От стиля кода и удобочитаемости зависит будущее…
https://zen.yandex.ru/media/android_junior/chistyi-kod-konspekt-glava-6-obekty-i-struktury-dannyh-607c7f3519675453a57fab6d — и шестая глава. Поздравляю, мы прочитали треть книги. :)
Яндекс Дзен
Чистый код. Конспект. Глава 6. Объекты и структуры данных.
Сегодня будет сложно. Напомню, что тут только мои заметки. Для полного погружения читайте книгу. :) Когда я читала в первый раз эту книгу Мартина, то шестая глава была мне максимально непонятной. Сейчас стало яснее, но все равно тяжко зашла. Заметки: Используйте…
https://zen.yandex.ru/media/android_junior/chistyi-kod-konspekt-glava-7-obrabotka-oshibok-607f195e2d9af14dc65f0b3d — продолжаем читать :)
Яндекс Дзен
Чистый код. Конспект. Глава 7. Обработка ошибок.
Время отдыхать после сложной шестой главы. Насколько я помню, все остальные главы уже будут легче, так что мы пережили всё самое страшное. Мы настоящие герои. :) Заметки: Если обработка ошибок заслоняет логику программы, значит реализация неверная. Используйте…
https://www.coursera.org/promo/coursera-birthday-2021 — возможно, кому-то пригодится. Сейчас на курсере можно бесплатно пройти один из курсов и получить сертификат. К сожалению, для мобильных разработчиков там ничего нет. Я записалась на "Problem Solving Using Computational Thinking". Это не особо связано с андроидом, но для общего развития пригодится. :)
Coursera
Coursera | Online Courses & Credentials From Top Educators. Join for Free
Learn online and earn valuable credentials from top universities like Yale, Michigan, Stanford, and leading companies like Google and IBM. Join Coursera for free and transform your career with degrees, certificates, Specializations, & MOOCs in data science…
https://zen.yandex.ru/media/android_junior/chistyi-kod-konspekt-glava-8-granicy-60807fd61d12af3ede66edfb — продолжаем читать Мартина :)
Яндекс Дзен
Чистый код. Конспект. Глава 8. Границы.
Речь идет не о личных границах, а о чистоте кода, когда приходится использовать чужие библиотеки. Заметки: Оборачивайте используемые классы из библиотеки в класс-обертку и используйте именно его в коде. Тогда, если библиотека сильно изменится, то достаточно…
https://zen.yandex.ru/media/android_junior/chistyi-kod-konspekt-glava-9-modulnye-testy-6085cbc33b735b52f81ea744 — много хорошего про тесты. Забавно, что буквально несколько дней назад на хабре видела статью, которая почти такая же. Видимо, автор тоже читал Мартина.
Яндекс Дзен
Чистый код. Конспект. Глава 9. Модульные тесты.
Думаю, уже стало понятно, что автор топит за разработку через тесты. Поэтому в этой главе будет много всего про TDD. Заметки: Не пишите код, пока не напишите модульный тест. Не пишите тест больше, чем необходимо.
https://www.udacity.com/course/android-kotlin-developer-nanodegree--nd940 — смотрите что я нашла! Целых 30 дней бесплатно. Я уже потыкала и доступны все материалы, так что можно пройти только те, которые интересны. При регистрации попросят карту, но снимут 1 доллар, а потом его вернут (при условии, что вы были внимательны и взяли именно бесплатные 30 дней). Также там можно будет ввести номер телефона, чтобы тебе перед платежом прислали смс. Я так сделала, чтобы не забыть отменить подписку. Курс рассчитан на 4 месяца, но я планирую пройти за месяц :D
https://www.udacity.com/course/android-basics-nanodegree-by-google--nd803 — а тут для новичков.
Это не реклама, просто люблю udacity и рада, что можно месяц бесплатно поучиться.
https://www.udacity.com/course/android-basics-nanodegree-by-google--nd803 — а тут для новичков.
Это не реклама, просто люблю udacity и рада, что можно месяц бесплатно поучиться.
Udacity
Android Kotlin Developer Nanodegree Program | Udacity
Learn Android development with Kotlin through courses in Android basics, app components, data handling, modern Android development, and cross-platform apps.
https://zen.yandex.ru/media/android_junior/vector-drawables-pod-api--21-608e69264461ec746c220702 — смотрите, что узнала. Немного интересностей и отдыха от чтения Мартина.
Яндекс Дзен
Vector drawables под API < 21
Узнала тут очень интересную штуку про оптимизацию (можете сами догадаться где). Представьте, что мы сделали крутое приложение, где используем картинки в виде векторов. В них куча плюсов, вот только поддерживаются они с версии 21 апи (Android 5.0). А если…
https://zen.yandex.ru/media/android_junior/jiznennyi-cikl-aktiviti-6093e1177ffcba2d9e2b888e — много текста и, внезапно, про жизненные циклы активити и фрагмента. Удивительно, но я даже узнала что-то новое. Все-таки надо периодически возвращаться к основам.
Яндекс Дзен
Жизненный цикл Активити
В различных компонентах есть свои жизненные циклы. И система нас уведомляет о том, что происходит, например, с активити и какая сейчас стадия, чтобы мы смогли оперативно среагировать. Что это вообще значит? В активити и всех его подклассах есть набор методов…
https://github.com/android/architecture-samples/branches/all?page=1 — смотрите что нашла. Это приложение "To Do". Вроде как ничего особенного, но там куча веток и в каждой это приложение сделано с другой архитектурой. Там и мввм, и мвп, и даггер, и rxJava и вообще много всего.
А вот тут https://github.com/android/architecture-samples/wiki/How-to-compare-samples написано, как посмотреть различия в ветках, чтобы можно было сразу увидеть, чем одна архитектура отличается от другой.
А вот тут https://github.com/android/architecture-samples/wiki/How-to-compare-samples написано, как посмотреть различия в ветках, чтобы можно было сразу увидеть, чем одна архитектура отличается от другой.
GitHub
android/architecture-samples
A collection of samples to discuss and showcase different architectural tools and patterns for Android apps. - android/architecture-samples
Был большой перерыв в чтении, но я не забыла про книгу. Еще одна глава — https://zen.yandex.ru/media/android_junior/chistyi-kod-konspekt-glava-10-klassy-608ae946b2349843c0e1c4fe
Яндекс Дзен
Чистый код. Конспект. Глава 10. Классы.
Заметки: Класс начинается со списка переменных. Сначала открытые статические, потом приватные статические, затем просто приватные. Обычных открытых переменных быть не должно. После переменных идут открытые функции. Приватные идут за функцией, которая их вызывает.…