𝘼𝙣𝙙𝙧𝙤𝙞𝙙 𝘿𝙚𝙫𝙚𝙡𝙤𝙥𝙢𝙚𝙣𝙩 – Telegram
𝘼𝙣𝙙𝙧𝙤𝙞𝙙 𝘿𝙚𝙫𝙚𝙡𝙤𝙥𝙢𝙚𝙣𝙩
12 subscribers
54 photos
2 videos
5 files
46 links
𝘼𝙣𝙙𝙧𝙤𝙞𝙙 𝘿𝙚𝙫𝙚𝙡𝙤𝙥𝙢𝙚𝙣𝙩 & 𝙇𝙞𝙛𝙚𝙨𝙩𝙮𝙡𝙚
Download Telegram
#отчёт
День 33:
-10 минут Duolingo
-Обучение программирование: 1 урок обучения разработке, также лекция по java.

Полезные привычки:
-Силовая тренировка (через день) +1 (13)
#ошибки
Cannot fit requested classes in a single dex file (# methods: 130326 > 65536)

fix: multiDexEnabled true

Для преодоления ограничения необходимо настроить процесс сборки приложения для создания более одного файла DEX, известного как конфигурация multidex.
#обучение
-Разница между private & public.
Разница заключается в том, что при использовании модификатора public, мы позволяем все поля и методы видеть и другим классам, а вот используя private оставляем закрытым и недоступным другим классам.
Их нужно использовать для организации нашего кода.
...
👍1
#отчёт
День 34:
$Программирование:
+ 2.34 часа кодинга
(2 - практика, 34 - теория)
Разбирался с Firebase, есть проблема с сохранением данных от пользователей в "Realtime database" ,пока решил двигаться дальше.
Подучил теорию, завтра продолжу.
Завтра начну смотреть уроки по Java.

$Английский:
+ 10 минут - Duolingo.
#обучение
Нашел интересный курс по основам программирования от «Campster».
За день, думаю, можно освоить.
Кратко по тезисам из курса:
$Вступление к программированию

1)В программировании существует распределение языков:
-языки низшего уровня (тоесть это языки, которые пк распознаёт без перевода, на них писать код сложнее всего)
-языки высшего уровня (писать на них легче всего, с помощью компилятора и интерпретатора мы переводим написанный нами код в биты 0 и 1, которые понимает компьютер)
2)Есть такое понятие, как Машинный язык.
это когда мы обращаемся к компьютеру на его "родном языке", посредством последовательности 0 и 1. Также мы называем его Нативным.
3)Для перехода между языками высшего уровня и машинными мы используем язык Assembler'a.
тоесть намного проще перевести язык assembler на машинный язык, чем с высшего сразу на низкий.
4)Комьютер понимает только машинный язык.
соответственно, написанный нами код на других языках ничего для него не значит. для решений этой проблемы и придумали "компиляторы и интерпретаторы".
-компилятор - получили код на одном языке -> перевели в другой
-интерпретатор - немного отличается. мы берем кусочек кода, переводим и выполняем его и так постепенно. а в компиляторе мы переводим сразу всю нашу программу.

$Вступление к алгоритмам

1)Алгоритм - совокупность определенных правил, которые направлены на решение той или иной проблемы.
Для записи алгоритмов используем графический и текстовый метод.
Графический, в виде блок-схемы самый эффективный.
2)Переменные - это своеобразный контейнер, в котором хранятся данные, эти данные имеют значения.
Эти самые значения могут изменяться в зависимости от типа переменной.
Каждая переменная должна Декларироваться.
То есть нужно указывать: 1) имя переменной, 2) тип переменной.
-Типы переменных:
Целочисленные - int (для большинства чисел), long (для больших чисел), short (для малых чисел), byte (очень маленькие числа)
Дробовые - float (десятичные), double (большие числа)
Другие типы - string (текстовый тип), boolean (логическое выражение true/false), char (символ).
3)Операторы = и ==
Оператор "="
- оператор присваивания. То есть то что находится слева принимает значение того, что справа.
Оператор "==" - оператор сравнения. Проверяет одинакова ли правая и левая сторона и возвращает булевое значение true & false.
4)Арифметические операторы:
-Операторы добавления, отнимания, умножения +, -, *
-Оператор инкрементация и декрементации:
a = a + 1; a++; - инкрементация
b = b - 1; b--; - декрементация
Оператор % дает остаток от деления.

$Декларации и массивы

1)Массивы - это переменные, которые могут включать много значений сразу.
Декларация массива делается таким образом:
-Тип данных [] имя переменной
Инициализация таким образом:
-имя переменной = тип данных[целое число]
Индекс элемента - целое число, что представляет порядковый номер элемента в массиве. Просчет начинам с 0 всегда.
Через Инициализацию массив сохраняется в памяти и мы можем его использовать для обработки.
2)Одномерный массив - это сложный тип данных, у которого все элементы одного типа.
Элементами массива могут быть данные, тип которых тоже является массивом. Это двухмерный массив.
Массивы - это переменные, что сохраняют несколько значений.

$Вступление к командам для контроля исполнения программ:

1)Алгоритмические структуры.
Всего 3 вида: 1)линейная, 2)разветвленная, 3) циклическая.
2)FOR команда.
Используется
в ситуациях, когда нужно повторить 1 или больше команд несколько раз.
Такого рода команды называют петлями или FOR петля.
i++ - "i" счетчик.
FOR принадлежит к командам циклического повторения.
Используем, когда знаем сколько итераций петле нужно выполнить.
3) While команда.
Используем когда точно не знаем, сколько итераций петле нужно будет выполнить.
В отличии от For петли, у While не существует счислителя. Петля останавливается только когда условие больше недействительно.
4) Do-While команда.
Практически тот же синтаксис, как и у WHILE петли, но условие проверяется в конце итерации, а не в начале.
$Объектно-ориентированное программирование

1)Класс - общий представитель совокупности предметов, имеющих общие характеристики, структуру и поведение.
Атрибуты, методы, реляции классов называются элементами класса.
2)Атрибуты - это характеристика чего-то, как в украинском языке.
Они описывают характеристику(свойства) класса.
3)Обьект - это какой-то конкретный экземпляр класса, который ещё называют инстанцией.
То есть самолет - это класс, так как все виды самолетов имеют между собой похожие характеристики. А вот Boeing (модель самолета) - это уже обьект этого класса.
Декларируем так же как и в классе, т.е. имя класса имя обьекта.
для инициализации имя обьекта = new имя класса()
4)Методы - это про то, как ведет себя класс, грубо говоря. То есть у каждого класса есть свое поведение своеобразное.
Методы могут иметь значения на входе, так называемые, параметры.
Параметры - это значения, которые нужно передать методу для корректной работы.
5) Наследование - концепт ООП. Все методы и атрибуты надкласса мы переносим в подкласс с возможностью добавлять новые характеристики и методы.
Основной мотив - избежать повторения кода.
В Java наследование обозначается словом" extends".
#отчёт
День 35:
$Программирование:
+ 7.5 часов кодинга
(7.5 часов теории и практики)
Прошел курс по основам программирования. Он рассчитан на 2 месяца, но я его прошел за 1 присест)
Интересная подача и многие, на первый взгляд, сложные термины теперь мне понятны😌
Прикрепляю сертификат.
Выше оставил конспект обучения, писал как сам понял, могут быть ошибки)

$Английский:
+ 10 минут - Duolingo.
#обучение
Теория - Андроид разработка. Урок № 18.

-Callback.
В приложении мы используем его с Firebase.
Его суть в том, что мы отправляем какой-то запрос и получаем обратно результат.
-Очистка кода. Важная практика.
Умение находить более короткое решение must have.
-Вопросы, которые не стоит задавать на работе.
Вопросы тех. характера стараться свести к минимуму. Вначале самостоятельно находить решение, после, в случае провала, обращаться к разработчикам.
Вопросы организационного характера нужно задавать.
-С курсов и обучающих программ важно выносить не только рабочий проект, который, по сути можно тупо переписать с экрана.
Важно научиться технически мыслить, гуглить когда того требует задача. В этом заключается суть работы программистом. Ежедневное обучение, работа с ошибками, исправление этих самых ошибок и создание полноценных программ!
#отчёт
День 36:
$Программирование:
+ 3 часа кодинга
(2 часа теории и 1 час практики)
Понемногу разбираюсь с Android Studio.
Сегодня изучил теорию,она указана выше.
Единственное, во время работы над проектом, логику привязал не к той кнопке, нужно будет разобраться и поменять. Завтра поработаю над этим.
Java не успел сегодня пройти, завтра исправлюсь.

$Английский:
+ лекция и 1-е задание модуля-Aloha School.
#обучение
Java для начинающих. Лёша Маршал.
Лекция 3. Типы данных.
(вырезка из кода)

// целочисленные типы данных
byte num = 100; // 8 бит -128 +127
short num1 = 101; // 16 бит -32768 +32767
int num2 = 102; // 32 бит -2147483648 +2147483647 !САМЫЙ ИСПОЛЬЗУЕМЫЙ!
long num3 = 103; // 64 бит -9 223 372 836 854 775 888 +9 223 372 836 854 775 887

// числа с запятой
float num4 = 1.11f; // 32 бит 6-7 знаков после запятой
double num5 = 1.12d; // 64 бит 15 знаков после запятой !САМЫЙ ИСПОЛЬЗУЕМЫЙ!

// символьный
char num6 = 'g'; // 16 бит

// логический тип данных
boolean num7 = true; // 1 бит false
#обучение
Сегодня изучил, что существует 2 способа реализации прокручиваемого списка: RecyclerView, ListView.

-ListView был внедрён еще на выходе API 1 включительно по Android LolliPop 2014 года.
В этом методе было много минусов.
К сожалению, мы могли создать только вертикально прокручиваемый список, и чтобы он прокручивался плавно, приходилось делать все надлежлащим способом. Кроме того, класс ListView довольно тяжелый - у него множество обязанностей.

-RecyclerView появился по приходу Android Lollipop и сразу исправил множество ошибок, которые были в ListView.
Из ярких можно выделить:
Создание макетов (LayoutManager) отделено, и мы получили больше свободы для манипуляции с данными, чем манипулирование только внутри адаптера, как было раньше.
-ViewHolder. Паттерн ViewHolder помогает сделать прокрутку нашего списка плавной. Он сохраняет ссылки на элементы списка, чтобы затем адаптер мог их переиспользовать.

-LayoutManager. LayoutManager берет на себя ответсвенность за макетирование представления элементов. Благодаря этому у RecyclerView нет ответственности за поозиционирование элементов в списке.
image_2022-03-29_23-05-35.png
48.7 KB
#отчёт
День 36:
$Программирование:
+ 4 часа кодинга
(4 часа практики)

$Английский:
+ Лекция 2-Aloha School.
#обучение
Java для начинающих. Лёша Маршал.
Лекция 4. Переменные.
Переменная - это, по большому счету, ячейка компьютера, которая хранит в себе данные.

Пример объявления переменной:
int(тип данных) num (имя переменной) = 100;
В наименовании кода чаще всего используется нотация CamelCase. Пример:
int numFlat = 100; т.е. каждое новое слово пишем с большой буквы.

Область видимости переменных, пакеты и модификаторы доступа:
Пакет в проекте
мы создаем для объединения сразу нескольких классов. Пакет package позволяет логически объединить классы в наборы.
Область видимости - это область, в которой будет видна переменная. Если переменная создана внутри класса, то она видна повсюду в пределах классах. Если переменную создать внутри метода, то она видно исключительно внутри метода, где она была создана.
Модификаторы доступа — это чаще всего ключевые слова, которые регулируют уровень доступа к разным частям твоего кода. Почему «чаще всего»? Потому что один из них установлен по умолчанию и не обозначается ключевым словом :)
Всего в Java есть четыре модификатора доступа. Перечислю их в порядке от самых строгих до самых «мягких»:
private;
protected;
default (package visible);
public.
#отчёт
День 37:
$Программирование:
+ 3 часа кодинга
(2 часа практики и 1 час теории)
Сегодня продолжил изучать RecyclerView, его отличия от ListView.
Наткнулся на интересный ресурс.
-Adapter связывает данные с компонентом и отслеживает изменения.Из обязанностей Adapter'a создание ViewHolder'ов и заполнений их информацией.
-ViewHolder сейчас нужен для кеширования, относительно дорогого findViewByID и является мостом между LayoutManager, Animator’ами и Decorator’ами. Основной элемент Recycling’а.

$Английский:
+ лекция и 3-е задание 1-го модуля-Aloha School.
Завтра практика.
#обучение
Java для начинающих. Лёша Маршал.
Лекция 5. Арифметические операции

-Основные арифметические операторы:
Операция Описание
+ Сложение (а также унарный плюс)
- Вычитание
* Умножение
/ Деление
% Деление по модулю

-Составные арифметические операции с присваиванием:
Операция Описание
+= Сложение с присваиванием
-= Вычитание с присваиванием
*= Умножение с присваиванием
/= Деление с присваиванием
%= Деление по модулю с присваиванием

*Это основные моменты, но есть ещё нюансы.
&& - и
|| - или
= - присваиваем значение
== - операция сравнения
!= - не равно

Также про инкремент и декремент:
В Java инкремент и декремент — это в первую очередь унарные операторы, которые применяются к какой-либо числовой переменной.
Инкремент: обозначается двумя знаками плюс " ++ " и увеличивает значение переменной на 1. Декремент: обозначается двумя знаками минус " -- " и уменьшает значение переменной на 1.
#отчёт
День 38:
$Программирование:
+ 4 часа кодинга
(3 часа практики и 1 час теории)
Продолжил работать над приложением с фильмами. Сегодня изучал Retrofit - библиотека для работы с сервером (Запрос данных из сети)
Очередной раз много ошибок и путаницы, но сам процесс кайфовый💡
При возникновении ошибок сразу иду гуглить и нахожу решении, единственное, что желательно перед тем, как копировать тот или иной код Прочитать внимательно его описание.
Остановился на создании Model Class.

Попутно изучаю Java, уже на 5-й лекции.

$Английский:
+ Speaking practice. Занимались в группе.
#обучение
Retrofit. Запросы данных из сети.
HTTP. REST.
HTTP
- это протокол, позволяющий получать различные ресурсы. Лежит в основе обмена данными в Интернете.
REST - прикладной програмный интерфейс (API), который использует HTTP-запросы для получения, извелчения и размещения данных.
Всего существует 3 вида API:
-RPC - удаленный вызов процедур
-SOAP - простой протокол доступа к обьектам
-REST - передача состояния представления.
Типы HTTP запросов:
-Get - возвращает ресурс
-Post - создает новый
-Put - обновляет существующий
-Delete - удаляет.
🔥1