StairwayToJava | Блог – Telegram
StairwayToJava | Блог
30 subscribers
15 photos
14 links
Рассказываю о своём пути в IT и не только.

Итоги недели, полезная информация, конспекты книг и многое другое.

Ссылка для друга: https://news.1rj.ru/str/becoder22
Download Telegram
#итоги2

👽Успехи?👽

Текущая неделя оставила смешанные ощущения. Я уменьшил учебный график с 8 часов (4 сессии по 2 часа с перерывом в час) до 6 (4 сессии по 1.5 часа с перерывами 30 минут и отдыхом в 2 часа между второй и третьей сессиями).

Алгоритмы идут хорошо, также занялся Java Collections Framework, разобрав родительские интерфейсы Iterable, Collection и List.

Также узнал про ArrayList и LinkedList, перед этим основательно изучив их структуры данных.

В основном, данная неделя была теоретической. Почти все задачки с литкода требуют хорошей базы.
👍1
#итогимесяца
🧊 Итоги января 🧊

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

Январь оказался продуктивным (по моим меркам) - сотни часов теории и практики помогли мне выработать привычку садиться учиться в строго определённое время.

Можно сказать, что именно с этого месяца я наконец-то взялся за голову
👍1
#итоги2
💤Неделя 6💤

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

Разобрал Stack, Queue/Deque, HashMap. Изучил пару алгоритмов сортировки (Вставкой и слиянием), подкрепляя теорию задачами с литкода.

В целом работой доволен, peace.
👍1
#итоги2
🙈Неделя 7🙈

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

Решил несколько medium и easy задач на leetcode, без сложностей не обошлось, но как только понимал, какие структуры данных использовать - задача решалась сама.

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

Peace.
👍2
#итоги2
🌐 Неделя 8 🌐

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

На следующей неделе планирую написать простенький пет-проект.

Стал быстрее решать Easy задачи, но с Medium все ещё есть проблемы, хотя они и поддаются решению.

Peace.
👏2
#итоги2
🏧 Неделя 9 🏧

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

Решил поработать с json для сереализации объектов и записи их в текстовый файл (так как sql я ещё не изучал)

Пока сделал интерфейс (консольный), регистрацию, смену pin-кода и базу данных юзеров.

Peace.
👍1
#итоги2
🔥 Неделя 10 🔥

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

В этом проекте я закрепил базу Java Core (ООП, сереализация, работа со временем), а также пощупал JSON, удобная штука.

Результатами доволен, далее планирую повторить алгоритмы и изучить оставшийся материал по Java Core (многопоточность и т. п.)

Peace
🔥1
#итоги2
🤔Неделя 11🤔

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

Затупилось умение решать задачи на leetcode, нужно возвращаться к практике.

Peace.
🤔1
#итоги2
🪫Неделя 12🪫

Постепенно наращиваю темп обучения. Закрепляю знания практикой на leetcode.

Кое-как разобрался с двоичными деревьями, к ним я ещё вернусь.

После того, как закреплю оставшиеся задачки, пойду щупать stream api и многопоточность.

Peace.
👍2
#итоги2
📅 Неделя 13 / Итоги марта 📅

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

Все еще наращиваю темп.

Peace
👍1
#итоги2
Неделя 14

Наконец-то начал углубляться в core, узнав больше про StreamAPI и многопоточность. Также решил снова закрепить ООП.

Peace
👍2
#итоги2
📊 Недели 15-16 📊

Прошедшие 2 недели были направлены на изучение базы многопоточности в Java Core. Я потратил довольно большое количество времени в поиске хорошего источника информации помимо документации и, наконец приступил к изучению.

На данный момент прошел курс на степике, изучив разницу параллелизма и многопоточности, что такое асинхронизм, прощупал создание потоков, прерывания, Executors, Synchronized/volatile, wait/notify, future, блокирующую очередь, lock/reentrant lock и основные проблемы, которые могут возникнуть при работе с многопоточностью в Java.

Сейчас ищу проект, на котором можно было бы закрепить полученные знания, а также осталось разобрать Concurrency, immutable classes и deadlock.

Результатом доволен, Peace.
👍1
#итоги2
Неделя 17

Наконец-то завершил знакомство с многопоточностью, закрепив это небольшим пет-проектом.

В кратце: это поиск проводника Windows, только хуже 🙈

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

К этой теме буду возращаться еще не один раз, поэтому время от времени буду повторять материал.

Ссылка на проект: https://github.com/abkolia/RapidSearch
#итоги2
Неделя 18

Наконец приступил к изучению Spring Framework, узнал про бины, Application Context, Lifecycle. Изучил базовые аннотации.

Пока все идет гладко, хотя материал дается непросто.
👏2🤔1
#итоги2
Неделя 19
Прошелся по основам Spring Core, решил повторить Git и ООП с многопоточкой, все-таки пробелы имеются.

В остальном - все идет хорошо, параллельно с повторением Core начинаю разбирать Postgres и Hibernate.
#закрываемпробелы
Что такое исключения в Java и как с ними бороться.

Представь, что ты разрабатываешь калькулятор и тебе нужно реализовать деление. Вроде всё идёт хорошо, деление работает, но ты решил разделить число на 0 и вдруг💥БАЦ💥и программа завершается. Поздравляю, ты столкнулся с исключением.

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

Но что делать?
Все просто - нужно это исключение обработать.

Обработка исключений
- это способ не дать исключениям сломать твой код.

Существует 2 способа обработки исключений:
1. При помощи блоков try-catch - когда нужно завершить код, который может вызывать исключение.
2. При помощи оператора throws - когда нужно явно создать исключение.

⬇️ На картинках ниже пример кода
#закрываемпробелы
Типы исключений и их иерархия в Java.

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

Существуют 2 типа исключений:
Проверяемые (Checked) — это те, которые проверяются компилятором перед запуском программы.
Прим.: IOException, SQLException, ClassNotFoundException.

Непроверяемые (Unchecked) — возникающие во время работы программы. Являются ошибкой в логике программы.
Прим.: ArrayIndexOutOfBoundsException, NullPointerException, ArithmeticException.

Иерархия исключений
Структура классов в виде дерева, где на вершине находится класс Throwable, от которого наследуются 2 подкласса: Error и Exception.
👍1
#итоги2
Неделя 20

На этой неделе я наконец взялся за Postgres, ознакомился с основами и попрактиковался в создании баз данных на этом языке.

Также закрепил Исключения.

Я планировал на эту неделю чересчур много, нужно чуток сбавить количество тасков, повысив углубление в темы.
👍2
#итоги2
Недели 21-22

Ознакомился пока-что с самой сложной темой для меня - JDBC. Огромное количество кода делает ее ещё хуже.

Изучил ACID, транзакции, работу с HikariCP.

На следующей неделе приступлю к Hibernate.
👍1👏1🤔1