Geo|Android Money


Гео и язык канала: Россия, Русский
Категория: Блоги


Я Георгий, мне 22 года.
Занимаюсь разработкой под Android 🤖
Мои клиенты: Сбер, Альфа, ВТБ, Новотех, GeekBrains, IThub.
Цель - своя экосистема разработчиков и топовая международная компания.
👉🏻 Автор @ter_geo
👉🏻 Реклама @traffic_city1

Связанные каналы  |  Похожие каналы

Гео и язык канала
Россия, Русский
Категория
Блоги
Статистика
Фильтр публикаций


Топ вопросов работодателю от Android-разработчика. Часть 1.

Представьте: вы на собеседовании, только что закончили отвечать на кучу вопросов и были на высоте
.

Наконец наступает ваш черед спрашивать работодателя. Однако, собеседование – это диалог, а значит, не только работодатель собеседует вас, но и вы – работодателя. 

Эта статья будет полезна не только мобильным разработчикам, но и специалистам других направлений, которые проходят собеседования. Поехали!


Вопрос 1: Над каким приложением я буду работать?


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

Вопрос 2: Как устроены команды и как разработчики взаимодействуют друг с другом?

В ответе работодателя на этот вопрос обратите внимание, как происходит обмен опытом и общение между разработчиками из разных команд. А также поинтересуйтесь, как в компании разбита ответственность – все делают всё или у каждой команды есть четко закрепленная специализация. 

Если все делают всё, то скорее всего вам слишком часто придется переключать контекст. Если у команды специализация задана слишком жестко, то со временем это может начать утомлять и не давать развиваться вширь, поэтому сразу уточняйте, каков баланс между этими двумя стилями работы в компании потенциального работодателя. 

Вопрос 3: Какой стек технологий вы используете?


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


Роман, с личного наставничества. Начали работать с нуля 3 месяца назад и вот получил оффер)


Профессиональные рекомендации для андроид-разработчика. Часть 3.

▫️Автоматизируйте все, что ест ваше время

Мы, инженеры, ленивы по рождению и всегда стараемся найти простой способ сделать скучную работу.

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

▫️Периодически проверяйте все сторонние библиотеки.


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

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

▫️Посещайте митапы и будьте более общительными с другими разработчиками


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

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

▫️Научитесь использовать Kotlin для разработки под Android

Котлин в настоящее время является одним из самых любимых и обсуждаемых языков, когда речь заходит о разработке под Android. Это также официально поддерживаемый язык для разработки приложений под Android. Этот легкий язык приносит глоток свежего воздуха в мир Android.

Это одна из лучших вещей, которая случалась с Android разработчиками, которым надоело работать на старой доброй, многословной и подверженной ошибкам Java. Попробуйте, и вы обязательно найдете потерянное счастье в своей жизни в процессе разработки.


Моя история. Как я пришёл в программирование. Продолжение

Первая часть находится чуть выше ⬆️

А дальше началась моя точка роста…

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

Через время я смог начать работать со Сбером, собеседование прошёл только со второго раза. Параллельно устроился на вторую работу в стартап. Зп выросла с 60к до 120к.

После стартапа:

-начал работать на аутсорсе
-брал заказы с фриланса
-помимо денег получал полезные контакты и зарабатывал репутацию, что по итогу мне помогло в развитии
-заработок вырос до 300к

После всех этих шагов мне удалось поработать с ВТБ, Альфа-банком и в ряде других компаний, в том числе и с международными.

Стал руководителем направления мобильной разработки и преподавателем на платформе GeekBrains.

Вот так я вырос за небольшой промежуток времени, прикладывая усилия и следуя цели.


Переход с Java на Kotlin при создании мобильного приложения.

В данном материале я расскажу, почему нужна миграция с Java на Kotlin при создании мобильного приложения. При этом какие-то детали будут полезны не только разработчикам под Android, но и тем, кто занимается миграцией бэкенда.

Зачем нужен переход на Kotlin?

Kotlin сильно уменьшает количество кода, например, простой Java-объект (Plain Old Java Object), хранящий пять полей, займет примерно 96 строк кода. В то время как на Kotlin аналогичный Data-класс займёт всего одну строку, поскольку компилятор переопределит все нужные методы.

Кроме того, существует несколько серьёзных проблем, которые до сих пор есть в Java, но — внимание — уже решены в Kotlin! Вот некоторые из них:

• Nullability — в Java мы не знаем, возможен ли null в значении данного объекта (и нельзя запретить ему принимать null), из-за чего может случиться всем известная ошибка NullPointerException, поскольку имело место обращение к «нулевому» объекту.
• Raw types — это generic-типы в Java без указания типа-параметра, использование которых может привести к heap pollution — ситуации, когда переменная параметризованного типа хранит в себе объект, параметризованный другим типом.
• Полноценные функциональные типы отсутствуют в Java в отличие от Kotlin.


У Kotlin есть множество возможностей, самые примечательные из которых:

• Extension-функции или функции-расширения класса — делают код «чище», а в сочетании с автодополнением в IDE ускоряют разработку;
• Data-классы хранят данные в лаконичном виде;
• Лямбда-выражения и inline-функции — нужны для использования функций высшего порядка без потери производительности;
• Object-классы позволяют с лёгкостью реализовать полезный паттерн проектирования Singleton;
• Inline-функции с параметрами reified типа  позволяют во многих случаях избавиться от рефлексии, которая может влиять на производительность (на старых версиях компиляторов).

Необходимые шаги по переходу:

• Выделите основные участки кода, которые в первую очередь необходимо мигрировать. Выберите места, где максимально сократится код или значительно повысится читаемость и безопасность. Лучше начинать не с core-модулей, а с верхних слоев приложения: из-за того что Kotlin проектировался с учетом необходимости взаимодействия с языком Java, а не наоборот, лучше наследоваться от Java-классов, чем в Java наследоваться от Kotlin-классов.

• Для упрощения перехода используйте встроенные средства конвертации Java-кода в Kotlin-код в IDE Intellij Idea или Android Studio, но не забывайте проверять полученный код.

• Начинайте писать всю новую функциональность только на Kotlin и по возможности дорабатывайте старый код тоже на нём.

• Постепенно углубляйте миграцию — переписывайте внутренние, абстрактные слои до тех пор, пока Java-кода не останется в проекте.


Репост из: Takeshi Kovacs
Георгий, огромное спасибо за проведённую консультацию 👍Сложилось понимание того, в каком направлении необходимо двигаться для дальнейшего развития в профессии. Приятно осознавать, что есть люди, которые реально готовы делиться своими знаниями и опытом с окружающими, успехов вам в вашем деле ✌🏼


Начал проводить серию мини консультаций БЕСПЛАТНО.

Для записи пишите в лс


Моя история. Как я пришёл в программирование. Часть 1.

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

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

Начал учиться с курса по Java - “JavaRush”, параллельно с этим подрабатывал, чтобы не сидеть без денег.

Следующим шагом был курс по андроиду, изучил весь материал за один день и сразу начал искать стажировку, наткнулся на разработку приложения по изучению китайского.

Но этот проект был очень сырой, я его делал без чьей-либо помощи, мне просто дали тз и даже не проверяли во время процесса.

А дальше началась моя точка роста…


Накидайте реакций, если интересна дальнейшая линия развития.




Видео недоступно для предпросмотра
Смотреть в Telegram


5 полезных вещей для удаленного разработчика 🧑‍💻

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

Большинство из перечисленного верно для любой удаленной работы за компьютером, а что-то специфично для программирования под андроид.

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

Например, это касается подключений к общественным точкам доступа в кафе, аэропортах и т.д. Да практически любой связи, когда вы работаете удалённо.

Можно создать VPN сервер на базе своей домашней сети, а есть сервисы, которые предоставляют доступ к ВПН по подписке.

🖇Наушники с шумоподавлением
Мне, как программисту, сложно сконцентрироваться на работе, если вокруг посторонний неконтролируемый шум.

Если вам легко, можно пролистывать дальше… или задуматься — если работа не заставляет мозги шевелиться (что подразумевает сконцентрированность), то может быть стоит задуматься о ее смене 😉

🖇Плагин для Android studio adb over wifi
Этот пункт исключительно про разработку под Андроид.

Иногда в дороге, или в офисе заказчика нужно протестировать работу на реальном устройстве вместо эмулятора. Провода в данном случае будут очень некстати. Но, благо, запускать и дебажить приложение можно «по воздуху»!

На самом деле можно и вовсе без плагинов, настроив все с помощью терминала и adb, но это не удобно. Есть ряд плагинов, когда после подключения по USB происходит 1-click настройка устройства для «adb over wifi».

🖇MacBook

Именно как ноутбук лучше macbook.

- Тачпад на голову лучше работает чем у конкурентов, а пользоваться мышью, сидя в кафе или вокзале — то еще удовольствие.

- Время автономной работы честное и обычно выше, чем у аналогов по производительности.

- OS четко и предсказуемо работает из коробки, не надо вдруг внезапно доставить драйвер, принудительно обновить при перезагрузке и т.д.

- Приятный экран, как бонус к остальным пунктам.

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

🖇iPad, как второй экран
Совсем не обязательная опция, но если вдруг у вас есть iPad и вы все равно его берете с собой в поездку, то стоит знать, что с Duet можно использовать любой iPad как второй экран, а с функцией Sidecar на современных iPad и вообще никакой дополнительный софт не нужен.

📌Очевидно, что это не полный список, но на мой взгляд минимально полный и перечислено то, что максимально упрощает жизнь удаленного разработчика.


😂


Профессиональные рекомендации для Android разработчика. Часть 2.


Лучше ознакомьтесь с внутренними компонентами Android фреймворка

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

Если вам нужно повысить уровень своего владения Android, перестаньте уже уклоняться от экспедиции под капот Android SDK и разберитесь в его внутренней работе.


Попытайтесь преодолеть страх пропустить что-то важное (FoMo — Fear Of Missing Out)


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

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


Подумайте об изучении большего количества языков


Я советую вам изучать не испанский или китайский, а новые языки программирования. Вам нужно быть в курсе происходящего в отрасли в целом, а не ограничиваться только Android.

Это расширит ваш кругозор и поможет вам значительно улучшить свои навыки Android разработки. Примите решение изучать как минимум один новый язык программирования каждый год. Но недели беглого ознакомления с новым языком лишь для того, чтобы впоследствии оставить его навсегда, будет мало. Попробуйте проникнуть в глубины языка и понять, как он работает внутри.


Начните вносить свой вклад в open-source


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

Если у вас нет ничего, что могло бы стать open-source продуктом, вы можете поискать другие интересные проекты с открытым исходным кодом с целью исправить какие-нибудь баги, дополнить документацию или написать там несколько тестов.

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


Последовательность — ключ к успеху

Если вы хотите быть успешным как Android разработчик (или кто-то еще в этой жизни), вы должны быть последовательными.

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

🖇Очень легко начать делать что-то, но очень трудно продолжать делать это с той же страстью и преданностью в течение (очень) долгого времени.


Фильмы про известных IT-специалистов.

В выходные даю вам небольшую подборку интересных фильмов.
Кстати, если смотреть на английском, пользы будет ещё больше

Пираты Силиконовой долины (Pirates of Silicon Valley)

История покорения мира компьютерными гениями - Биллом Гейтсом и Стивом Джобсом. Все началось в начале восьмидесятых, в маленьких подсобных помещениях, где двое никому не известных программистов изобретали и фантазировали.
Спустя несколько лет весь мир узнал о них. Вчерашние фантазеры превратились в миллиардеров, основав свои собственные империи, Джобс - компанию Apple, а Гейтс - Microsoft.

Социальная сеть (The Social Network)
Фильм про основателя Facebook Марка Цукерберга, который в 23-летнем возрасте стал самым юным миллиардером на планете. Сам Марк в съемках не участвовал, но после выхода фильма оценил его положительно.

Джобс (Jobs)

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

Скандальный взлом (или Большой Хак)  (The Great Hack).

Журналисты проводят расследование и ищут доказательства того, что Cambridge Analytica — частная английская компания, которая использует технологии глубинного анализа данных (в частности, данных социальных сетей) – причастна к вмешательству в ход более 200 выборов по всему миру.

Это документальный фильм, который примечателен актерским составом: Хиллари Клинтон, Марк Цукерберг и даже Дональд Трамп. Конечно же, они играют самих себя.

▫️Может быть, вы уже смотрели эти фильмы или хотели бы добавить что-то для просмотра в этот список? Давайте обсудим в комментариях вместе⬇️


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

Интересно чтобы могли зарабатывать хорошие деньги и развивались как спецы реально быстрее остальных, нужно это чтобы было комьюнити программистов-предпринимателей, или "денежных" программистов😂 хз пока как назвать)

Проблема программистов в том, что многие очень крутые и шарящие ребята, а работают за "копейки" (все относительно)


Data Binding

Гугл форсит этот подход и говорит, что надо всем переходить на него.

Я не совсем согласен, Data Binding при неправильном использовании может принести кучу ошибок во время сборки. Да и при правильном использовании, на самом деле..

▫️Data Binding работает на основе кодогенерации, которая довольно часто ломается, неправильно кешируется, приходится пересобирать проект, что дополнительно отнимает время.

▫️Выводим логику в XML — в целом, так быть не должно. View-слой должен брать на себя функцию отображения, а если в нём будет лежать логика- это уже плохо.

▫️Недавно ко мне прилетел проект. Жирный и вкусный, но с косяками в Data Binding из-за неправильного использования. По результатам, View отображался из двух источников, т.к., изначальный разработчик накосячил, прикрутил Data Binding и поломал логику. Что привело к багам, и к долгому поиску ошибки.

🖇 Моё мнение на счёт этой ситуации. Не то, чтобы я отговариваю от работы с Data Binding — просто с ним надо уметь работать и выносить логику во View-модель.


Почему современные android-устройства можно считать безопасными?

Платформу Android пользователи выбирают благодаря её разнообразию устройств, адаптивному пользовательскому интерфейсу и гибким ценам.  

Помимо всех вышеперечисленных качеств, также большое значение имеет безопасность данных. Но из-за того, что Google Play Store – открытая площадка, где можно легко распространить вредоносное ПО, репутация у Android сложилась не как у самой безопасной платформы.  

На самом деле, в современных моделях смартфонов на Android довольно неплохая система безопасности.  Прежде всего, производитель устройства должен убедиться, что его телефон с Android OS соответствует Документу определения совместимости Android (CDD).


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


Шифрование
CDD также требует, чтобы разделы /data и /sdcard встроенного хранилища были зашифрованы «из коробки». Раздел /data содержит персональные данные для каждого приложения. Раздел /sdcard — хранилище общего назначения: там, например, хранятся ваши фотографии и документы. Поэтому, если устройство выключено, и оно в таком состоянии попадёт кому-то в руки, будет почти невозможно извлечь данные из встроенного хранилища.


Верифицированная загрузка
Система Android должна проверять источник исполняемого кода. Источник загрузки должен быть надёжным. На каждом этапе проверяется целостность и подлинность компонента, прежде чем передать ему выполнение.
Также, для безопасности, на устройствах должна быть установлена безопасная версия ОС Android.


Управление доступом к данным
Для шифрования нужны ключи, которые должны где-то храниться. Для защиты ключей Android может использовать технологии Keymaster и Strongbox, даже в случае компрометации ядра или аппаратных эксплойтов (например, Meltdown and Spectre).


Хватит платить за ошибки памяти
В крупных компаниях, таких как Microsoft и Google, около 70% уязвимостей в продуктах связаны с уязвимостью в памяти.
Специалисты компании Google, решили исправить эту проблему в Android 11, используя новый распределитель памяти, несколько более безопасных способов инициализации ядра и пространства пользователя.


Вершина айсберга…
Всё вышеперечисленное — это лишь вершина айсберга. Есть ещё много интересных подробностей, которые можно узнать о безопасности систем на базе Android. Например, про тот же Samsung KNOX можно написать отдельную большую статью.
 




Профессиональные рекомендации для Android разработчика.

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


-Изучите соглашения написания чистого кода для Android

Очень трудно работать с разработчиками, которые не пишут чистый код, не соблюдая основные соглашения написания кода при разработке под Android.

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


-Начните читать больше кода

Большинство разработчиков не тратят время на то, чтобы читать, что пишут другие разработчики. Они проводят большую часть своего времени просто используя то, что они уже знают.

Но это не поможет вам расти как разработчику. Это не увеличит ваши познания. Вы должны начать смотреть на другие приложения и библиотеки с открытым исходным кодом и продолжать обучение.


-Попробуйте изучать хотя бы один новый материал по Android каждую неделю

В огромном мире Android есть вещи, которые нужно изучить и понять, жизнь станет легче, если вы пообещаете изучать один новый материал о Android каждую неделю.

Составьте список тем, которые вы не знаете, обозначьте их по важности и начните побеждать их одну за другой каждую неделю. Через несколько месяцев вы увидите, что такая мелочь обеспечила определённый уровень знаний.


-Начните писать больше тестов

Тесты помогут вам создать островки уверенности в вашем коде.

Не совершайте ошибку, пренебрегая тестированием или рассматривая его как нечто «необязательное» и делая вашу жизнь более болезненной с ошибками регрессии позже. Помните, что код, написанный без тестов, мгновенно становится легаси кодом.


Надеюсь, что эти советы помогут вам стать лучшим Android разработчиком. Вы прочитали эту часть и поняли эти советы, но стоит преобразовать их в реальные действия, и только тогда вы сможете ощутить их реальную силу.

Нужна вторая часть?


Немного про эффективность языков, в том числе Java/Kotlin

https://aws.amazon.com/blogs/opensource/sustainability-with-rust/

Показано 20 последних публикаций.

1 080

подписчиков
Статистика канала