Дневник Flutter-разработчика
3.11K subscribers
323 photos
22 videos
10 files
290 links
Описание моего пути мобильного разработчика с нуля до junior, middle, senior
Download Telegram
Цели, планы:

Программирование

Мне нравится то, чем я сейчас занимаюсь. Интересно изучать мобильную разработку, решать задачи и проблемы. Сейчас я изучаю Flutter по урокам канала LazyLoad. Пишу TheMovieDb(за преподавателем) - это приложение с описанием фильмов, по API. Дальше планирую сам писать облегченный клон vk, либо сразу приступать к проекту по английскому. Сегодня возникла идея писать параллельно проект по англ., так как некоторые вещи уже знаю и можно сразу применять.

Суть проекта - приложение для курсов английского языка, вроде easy ten. В день будет даваться по 10 слов для запоминания. Слова будут заучиваться по методике закрашивания заготовленных картинок-сцен с англ.словом, речевым сопровождением спикера(это нужно еще обдумать) и обязательного повторения по оповещениям. Будет бесплатная и платная подписка, реклама. Первое приложение будет по запоминанию слов, второе с самим курсом. Писать его я буду один:) Приложение будет выложено в Google play и App store. Возможно не все можно реализовать через Flutter, но я постараюсь:)(если кто-то знает, что из вышеперечисленного нельзя сделать - отпишите в лс). Надеюсь, что этот проект прокачает меня как разработчика) Процессом написания буду делиться здесь:)

Сегодня запушил TheMovieDb на github( да, свёрстан пока только экран авторизации, но сохранение не помешает). На нем у меня уже есть 2 проекта с сайтами на html, sass, gulp, js. Так что теперь на моем github уже 3 проекта😁 Плюс добавится приложение по англ. и клон vk.

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

Вакансий мобильного разработчика в Республике Коми нет, я планирую переезд в Питер и трудоустройство Flutter-разработчиком. Считаю, что работа в компании + свои проекты даст максимальный буст в профессии.

Английский
Как я говорил ранее, одна из моих целей - иммиграция. Английский язык изучаю для этого. Предполагаю, что сразу попасть в штаты не получится и рассматриваю еще другие страны. Сейчас не сложно иммигрировать в Канаду. Сдача IELTS обязательна. IELTS — наиболее востребованный тест английского языка для учёбы и иммиграции в Великобританию, Канаду, Австралию и Новую Зеландию. Экзамен длится примерно 3 часа. Состоит из четырёх модулей:

Listening (примерно 40 минут)
Reading (60 минут)
Writing (60 минут)
Speaking (11—14 минут)

Техническую документацию читаю и понимаю без проблем. Англ. субтитры сейчас лучше понимаю, чем просто речь на слух. На данный момент не знаю своего точного уровня владения англ. языком, но pre-intermediate уровень точно есть. Сдавал давно на курсах английского. Каждый день уделяю английскому около часа. Сейчас это просмотр сериала Extra. Тренирует понимание англ речи на слух. Все видео с советами по изучению говорят о максимальном погружении в среду англ языка, чтобы мозг начинал перестраиваться. Все гаджеты и пк у меня на англ, фильмы сейчас тоже смотрю на англ. Позже буду добавлять и другое, сейчас достаточно сформировать привычку и погружаться в среду.

Инвестирование
Откладываю 10% дохода по первоочередному принципу. Эти деньги инвестирую в крипту и акции. Вам тоже советую начинать изучать этот вопрос. В блоге планирую писать статьи на эту тему: по сложному проценту, как выбрать брокера, где и как лучше открыть счет, про долгосрочное инвестирование(не трейдинг!) со ссылками на книги и хорошие ютуб-каналы. Не хочу пока писать здесь сумму, к которой хочу прийти, чтоб никого не шокировать)

Иммиграция
Выше я уже писал про цель иммиграции в США. Это долгосрочная цель. Надеюсь осуществить её в течение 5 лет. Возможно не сразу в штаты, но точно иммиграция. Для неё требуется хороший английский, крутой профессиональный опыт, толстый банковский счет. Этими направлениями и занимаюсь.
День 8:

+5,11 часа программирования( 32, 35 уроки ютуб-канала LazyLoad Dart & Flutter. Верстка TheMovieDb: BottomNavigationBar. Разбор TextField: управление).
Итого: 35 ч. 25 мин.

+51 минута английского( 13 и 14 серии сериала Extra с англ. субтитрами).
Итого: 6 ч. 12 мин
День 9:

+4,35 часа программирования( 36, 37 уроки ютуб-канала LazyLoad Dart & Flutter. Разбор TextField: TextInputFormatter. Добавление изображений в проект, библиотека Spider).
Итого: 40 ч.

+55 минут английского( 15 и 16 серии сериала Extra с англ. субтитрами. Пол сериала пройдено, еще половина:) Речевые обороты стали сложнее, смотреть интереснее).
Итого: 7 ч. 17 мин.
bash: spider: command not found

Всем привет!
Столкнулся с проблемой на Windows при установке spider:

$ spider
bash: spider: command not found

Решение - прописать(просто добавить в конец) в Path переменной среды:
C:\Users\Ваш пользователь\AppData\Local\Pub\Cache\bin
День 10:

+6,07 часа программирования( 38, 39, 40 уроки ютуб-канала LazyLoad Dart & Flutter.
Верстка TheMovieDb: создание списка фильмов, добавление поиска с логикой. Скрин прилагаю:)
Разбор СustomPaint: рисование радиального прогресс-бара).
Итого: 46 ч. 7м.

+47 минут английского( 17 и 18 серии сериала Extra с англ. субтитрами).
Итого: 8 ч. 4 мин.
День 11:

+4,25 часа программирования( 41 урок ютуб-канала LazyLoad Dart & Flutter.
TheMovieDb: верстка экрана фильма). +пару часов(не считал, сколько) на блог в инстаграм.
Итого: 50 ч. 32м.

+49 минут английского( 19 и 20 серии сериала Extra с англ. субтитрами).
Итого: 8 ч. 53 мин.
День 12:

+5,10 часа программирования( 41, 42, 43 уроки ютуб-канала LazyLoad Dart & Flutter.
TheMovieDb: верстка экрана с информацией о фильме. Верстка скролла актеров. Разбор StatelessWidget.
Итого: 55 ч. 42м.

StatelessWidget - виджет, в котором ничего не меняется. Это просто статичная картинка, которая может только отображаться. Не может сохранять никакое состояние.

Советы из 43 урока(видео в доке StatelessWidget от команды Flutter):

Совет 1 - по возможности минимизируйте вложенность виджетов( обычно применяется, если лагает или нужно, чтоб было быстрее).

Совет 2 - используйте const везде где только можно. Это снижает нагрузку. Относится к любым виджетам.

Совет 3 - в некоторых местах полезно переделать виджет stateless в stateful.

+47 минут английского( 21 и 22 серии сериала Extra с англ. субтитрами).
Итого: 9 ч. 30 мин.
Полезно:)
7 бесплатных облачных серверов для ваших ботов, сайтов, приложений на PHP/Python/JavaScript и т.д.

Heroku - Для Telegram/Discord ботов и для веб приложений
Amazon AWS - На год выдает бесплатно Linux сервера и т.д.
Google Cloud - Дает $300 бесплатно на расходы внутри платформы
Azure - Как AWS, тоже бесплатно на год дает сервер + $200 на счет на внутренние расходы
Netlify - В основном для сайтов, есть лимиты на бесплатном тарифе
Vercel - Для JSеров (Next.js, Nuxt.js, Gatsby.js и тд)
Gear Host - .NET и PHP клауд хостинг

💪 Сохраните, чтобы не потерять!
День 13:

+7,03 часа программирования.
Сегодня начал писать проект по английскому. Оказывается, что повторять код и писать самому - абсолютно разные вещи:)) Сразу возникает много вопросов, за которыми идешь в доку или возвращаешься к видео и пересматриваешь( и это с учетом заметок).

Сверстал экран авторизации и сделал навигацию. Код пушу на свой github:)

Еще сегодня понял, что нужно прочесть доку флаттера, так как не мало пробелов:)
Итого: 62 ч. 45м.

+49 минут английского
(23 и 24 серии сериала Extra с англ. субтитрами).
Итого: 10 ч. 19 мин.
День 14:

+4,09 часа программирования.
Сегодня сверстал второй экран приложения по английскому. Скрин прилагаю:)

Решал больше часа проблему добавления в BottomNavigationBar больше 3 итемов, пока меня не озарило, что нужно гуглить на английском) Об этом в следующем посте.

Начал 44 урок ютуб-канала LazyLoad Dart & Flutter: StatefulWidget, State
Итого: 66 ч. 59м.

+47 минут английского
(25 и 26 серии сериала Extra с англ. субтитрами).
Итого: 11 ч. 6 мин.
Сегодня больше часа не мог решить проблему добавления больше 3 элементов в BottomNavigationBar.

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

Гуглил, тестил - времени потратил не мало) После небольшого перерыва меня "озарило" и я пошел гуглить на английском. Первый же ответ на stackoverflow решил проблему😂 Скрин решения прилагаю.
День 15:

+3,03 часа программирования.
44, 45, 46 уроки ютуб-канала LazyLoad Dart & Flutter: StatefulWidget, State, didUpdateWidget, Ключи.
Итого: 70 ч. 2м.

StatefulWidget - виджет, который еще проще Stateless, потому что у того есть хотя бы build:) Сам по себе виджет ничего не хранит. В этом ему помогает State.

Виджеты сами не отображаются на экране. На экране отображается ElementTree, который StatefulWidget создает.

Так же StatefulWidget создает state и в этом его достояние. Стейт может намного больше. Благодаря ему виджет может "запоминать" состояние. Наши виджеты могут поменяться, замениться на другой точно такой же, но стейт сохранится и он хранится в элементе. Благодаря этому верстка не перерисовывается каждый раз заново, что сильно оптимизирует.

+48 минут английского
(27 и 28 серии сериала Extra с англ. субтитрами).
Итого: 12 ч. 54 мин.
https://www.youtube.com/watch?v=6of3U8Ilo-4

Очень советую к просмотру!:)
После просмотра этого видео я начал применять метод pomodoro(об этом есть статья в блоге). Если коротко - то это один из лучших лайфхаков продуктивности, которые я пробовал, потому что концентрация теряется после минут 25.

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

Так же из видео использую здоровый сон - я встаю в 5 утра и ложусь к 10 вечера. Очень важно вставать и ложиться в одно и то же время( и высыпаться, конечно же). Важно не только для здоровья, но так же для хорошей работы мозга и продуктивности в целом. Про это хочу написать отдельную статью:)
День 16:

+5,48 часов программирования.
46, 47, 47.5, 48 уроки ютуб-канала LazyLoad Dart & Flutter: ключи, контекст(BuildContext), инхерит
Итого: 75 ч. 50м.

Так же сегодня наткнулся на интересное видео-интервью с профессиональным IT-рекрутером. Статью по нему сделаю завтра, дам ссылку и распишу заметки, которые оттуда вынес:) Видео действительно интересное, узнал много нового.

+50 минут английского
29 и 30 серии сериала Extra с англ. субтитрами.

Сериал закончен, сегодня досмотрел последние серии. На протяжении сериала я понимал речь % на 90 в начале и % на 70 к концу. Незнакомые слова не выписывал, просто продолжал смотреть. Оказалось, что это неэффективный подход. На сайте есть инструкция по изучению живого английского языка по сериалам/фильмам. Текст и ссылку оформлю сейчас в отдельной статье.
Итого: 13 ч. 44 мин.
Методы изучения живого языка с помощью сериалов

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

2. Чуть более результативный метод, для тех, кто обладает неплохим словарным запасом, но плохо воспринимает на слух – это просмотр с английскими субтитрами. Если просто смотреть серию за серией при таком подходе, то получится примерно такое распределение : вы получите 90% удовольствия и 10% изучения языка.


3. Ну и более продвинутый метод, характеризующийся распределением 50 на 50 и сочетающей в себе, как получение удовольствия, так и изучение английского языка.
Суть этого метода заключается в многократном просмотре одной серии и работе со словарем. Каждая серия просматривается минимум по 4 раза. Первый раз вы смотрите без субтитров и пытаетесь максимально уловить на слух и понять содержание. Затем смотрим с русскими субтитрами и проверяем себя, правильно ли мы поняли те или иные слова , выражения и смысл в целом. Далее смотрим уже с английскими субтитрами, отмечая для себя и выписывая новые слова, для того чтобы в последствии занести их в свой словарь. Учим словарь и после этого смотрим снова без субтитров. На финальном просмотре серии вы должны понимать весь материал на 100% и воспринимать выученные слова на слух.

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

Extra я смотрел по 2 варианту. Сейчас понимаю, что 3 вариант отличный, но хардкорный😁 Подумаю, как его лучше применить)

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

http://lelang.ru/english/articles/samyj-prostoj-i-effektivnyj-sposob-vyuchit-anglijskij/
День 17:

+4,37 часов программирования.
48, 48.5, 49, 50 уроки ютуб-канала LazyLoad Dart & Flutter: инхерит, основы работы с данными

Сегодня закончился второй блок курса LazyLoad. Я научился верстать и немного больше:) Ничего легко не давалось(особенно при самостоятельном написании), но все было интересно) Разве что кроме тем про ключи, контекст и инхерит. Их я еще не понял. Нужно будет пересматривать, когда это пригодится на практике.
Итого: 80 ч. 27м.

+0 минут английского😁
Я просто еще не определился с планом занятий. И как мы знаем, нет плана - нет действий) Есть 3 идеи: заниматься по 3 варианту вчерашней статьи с каким-нибудь сериалом, который уже смотрел на русском или с сериалом Друзья(его интереснее смотреть, так как серии по 20 минут). Либо, как мне посоветовали для сдачи IELTS, тот же третий подход применить к ютуб каналам преподавателей английского(говорят они на англ.) Планирую завтра этот вопрос решить.
Итого: 13 ч. 44 мин.
Интервью с профессиональным IT-рекрутером. HR с 2008 года.
https://www.instagram.com/tv/CThy4fYDj-D/

Мои заметки к видео:
-Для каждой компании свой идеальный кандидат

-При трудоустройстве обращать внимание на ментора и процессы компании

-Сейчас большое внимание к софтскилам.
1) Активность, проактивность. Но после гугления, конечно. Не бестолковые вопросы, а со своими вариантами решения.
2) Быстрая обучаемость
3) И коммуникативность. Очень важно общение в команде, с ментором
"Других чудес нет".

-Вакансию читать между строк. Если написано 3 года реакт, то необязательно 3 года им нужен реакт разраб. Может им вполне подойдет кандидат и с 2 годами и 6 мес. опыта

-Не пугаться, не теряться на собесе. (Коммуникация)

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

-Первая работа - лучше не на удаленке, а с ментором в команде

-В мире жесткая нехватка айти специалистов и на 1500 резюме приходятся порядка 300 тысяч вакансий. Это вместе всё: и джуны и мидлы и синьоры. Поэтому нехватка специалистов страшная

-По компаниям - смотреть, чтоб там были нормально выстроены процессы и был нормальный ментор

-Выбирают не только вас, но и вы. Даже если вы устраиваетесь на первую работу

-Если у вас есть какие то важные для вас вопросы - обязательно задавайте их

По резюме:

-Очень важно, чтоб в резюме не было воды. Фото вставлять обязательно. Резюме - точное и сухое. Опыт сухо и тезисно. Про ценность на данный момент. Это максимально ценно и круто. Делаете нормальное фото лица и сопроводительное короткое емкое письмо. Учебные проекты разложить с ссылками на ваш github и описанием.

-HR смотрят резюме по диагонали

-Они ищут по софт скилам в основном и по учебным проектам на гитхабе? потому что они идут с вашим кодом к наймодателю и это сразу выделяет из толпы

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

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

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

-На headhunter выкладывать резюме и на русском и на английском языке. Откликов хватает

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

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

-Не стесняйтесь говорить про технологии. Говорите, какие технологии вам интересны и не интересны. "Пробовал то-то, мне не понравилось" - хороший ответ

-Быть нормальным человеком с нормальной коммуникацией

-Указывайте курсы. Если это важно для них, они заметят. Отталкивающим фактором не будет никогда

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

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

-Если у кандидата хороший английский, то прям большой шанс, что его схантят на запад

-Короткие предыдущие места работы могут оттолкнуть. Увольнение сотрудника в течение первых 6 месяцев для компании очень плохо, человек не окупил вложенные в него ресурсы

-Это худшее, что может быть. Короткие места работы у джуна

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

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

-Откровенно заявлять о своих потребностях. Это тоже про коммуникацию

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

-Джун - работу с ценностью на будущее

-В айти страшная нехватка кадров была, есть и будет. Сложно здесь найти только первую работу. Потом просто завалят вакансиями
День 18:

+4,06 часов программирования.
50, 51, 52 уроки ютуб-канала LazyLoad Dart & Flutter: JSON, http запросы.

Базы данных:

SQlite
Супер звезда в мире баз данных. Работает через свой язык SQL. Штука сложная, мощная и чего она только не может делать по работе с данными. В том числе и оптимизировать. Не работает в вебе! Не жрет оперативку.

Moor
Это crm для SQlite. Позволяет преобразовывать объекты кода в SQlite. Соответственно тоже не работает в вебе и не жрет оперативку.

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

Платные решения вроде Firebase используются, в основном, на фрилансе или в мелких проектах.

Выбор бд зависит от того, что вам нужно.

В серьезных приложениях пишут свой backend, работают c SQlite.

Хочу поработать с SQlite и moor:)
Итого: 84 ч. 33м.
+1,12 часа английского
Сериал Друзья. "Он лёгкий" - говорили они. Первую 20минутную серию смотрел час с выписыванием незнакомых слов и паузами. Фразовый английский, быстрая речь и около 30 незнакомых слов в первой же серии😂 Я думал, что неплохо понимаю английский на слух) Extra был намного легче.
Итого: 14 ч. 56 мин.