Ну что ж, создал канал, где я буду писать о своем обучении, буду записывать сюда каждый день что изучил или не изучил. Как и написано везде, собираюсь стать Junior Java Developer и писать себе спокойно бэкенд на Spring.
Джаву выбрал т.к только по ней приходит в голову, что то типа выучу и пойду на работу, с другими сферами как то не так, там ситуации более суетливые. На том же Python, JS все как то плоховато и конкуренции куча.
Сам я учусь в Самарском университете на 1 курсе, который конечно будет в основном лишь отбирать время. Ладно, что в итоге я знаю в программировании на 30.01.2025?
Начну со Stepik, там я еще в 22-23 году решил изучать python (крутой же яп да?) потом нашел Golang подумал вот это круто, но толку от него в регионах и нету (вакансий нет), там же прошел на половину интерактивный тренажер по SQL(основы, максимум разбирал соединение таблиц)
Теперь java, начал изучать я ее по Алишеву, прошел java курс для начинающих, некоторые уроки для продвинутых. Ну и особо не заморачиваясь начал изучать spring тоже по Алишеву, да уж, знаний на тот момент совсем не было, думал вывезу, да так то и в основном все понимал, но и Алишев дает лишь поверхностную инфу. Hibernate с того же курса совсем немного запомнился.
Как я прошел Spring Алишева сделал свой проект библиотека, который по факту обращался к апи гугла и брал информацию по книге только из ее названия (по сути обычное crud приложение) , нуу, проект сомнительный, но благодаря нему что то и помню в Spring.
Также 2-3 месяца назад решил вспомнить все и начать с основ по книжке Java Шилдта, почитал более половины и забросил программирование в целом (как это было всегда).
Начиная с начала года решил учиться нормально, системно (почти :) ) И начал я проходить курсы от dmdev, первый из них JDBC, ладно хоть SQL помню, далее http и servlets которые я сейчас и прохожу, одновременно с этим решил заполнить дыры по java core. Вроде как и все, только может знаю как создать ветку в гите и откатиться до прошлого коммита.
Хочу стать джуном на 2 курсе. (мечтаю)
Джаву выбрал т.к только по ней приходит в голову, что то типа выучу и пойду на работу, с другими сферами как то не так, там ситуации более суетливые. На том же Python, JS все как то плоховато и конкуренции куча.
Сам я учусь в Самарском университете на 1 курсе, который конечно будет в основном лишь отбирать время. Ладно, что в итоге я знаю в программировании на 30.01.2025?
Начну со Stepik, там я еще в 22-23 году решил изучать python (крутой же яп да?) потом нашел Golang подумал вот это круто, но толку от него в регионах и нету (вакансий нет), там же прошел на половину интерактивный тренажер по SQL(основы, максимум разбирал соединение таблиц)
Теперь java, начал изучать я ее по Алишеву, прошел java курс для начинающих, некоторые уроки для продвинутых. Ну и особо не заморачиваясь начал изучать spring тоже по Алишеву, да уж, знаний на тот момент совсем не было, думал вывезу, да так то и в основном все понимал, но и Алишев дает лишь поверхностную инфу. Hibernate с того же курса совсем немного запомнился.
Как я прошел Spring Алишева сделал свой проект библиотека, который по факту обращался к апи гугла и брал информацию по книге только из ее названия (по сути обычное crud приложение) , нуу, проект сомнительный, но благодаря нему что то и помню в Spring.
Также 2-3 месяца назад решил вспомнить все и начать с основ по книжке Java Шилдта, почитал более половины и забросил программирование в целом (как это было всегда).
Начиная с начала года решил учиться нормально, системно (почти :) ) И начал я проходить курсы от dmdev, первый из них JDBC, ладно хоть SQL помню, далее http и servlets которые я сейчас и прохожу, одновременно с этим решил заполнить дыры по java core. Вроде как и все, только может знаю как создать ветку в гите и откатиться до прошлого коммита.
Хочу стать джуном на 2 курсе. (мечтаю)
❤3
Что изучил сегодня? 30.01.2025
Изучал Java Core (нужно как и сказал все это узнать или вспомнить)
Учился сегодня 3-4 часа. Правда я думал побыстрее пробежать по этим темам, но так не получилось.
Нужно выучить:
Многопоточность, рефлексия, сервлеты (несколько видео досмотреть).
В планах после этого пойти на 3 проект Сергея Жукова.
Изучал Java Core (нужно как и сказал все это узнать или вспомнить)
Функциональное программирование (работа со streamами, optional)
Потоки ввода-вывода (Пробежался по файлам и работой с ними)
Ну что сказать, это жестко, есть класс FileOutputStream который нужен для записи всей информации, которую можно записать в байты, есть FileWriter уже конкретно для работы со строками, а также Buffered обертки к ним, а еще есть Input стримы для всего этого, слишком много, да. И тут есть класс FIles который заменяет все эти классы, единственное что Buffered стримы нужно получать, используя метод и потом уже работать с ними.
Учился сегодня 3-4 часа. Правда я думал побыстрее пробежать по этим темам, но так не получилось.
Нужно выучить:
Многопоточность, рефлексия, сервлеты (несколько видео досмотреть).
В планах после этого пойти на 3 проект Сергея Жукова.
👍1
31.01.2025
Пробежался по многопоточности, как и хотел. Нормально выучу ближе к собесам, ибо сто проц все забуду.
Учился 1.5ч +-
Завтра хочу глянуть ThreadPool, т.к в 3 проекте Жукова пригодится.
Пробежался по многопоточности, как и хотел. Нормально выучу ближе к собесам, ибо сто проц все забуду.
Хотел понимать что такое вообще потоки, потокобезопасные объекты и т.д.
Так вот потокобезопасный объект будет таковым если локальный объект не будет использоваться в потоках, логично.
Но если так не получается то можно оставить объект без полей или при попытке изменить immutable объект возвращать новый объект.
Учился 1.5ч +-
Завтра хочу глянуть ThreadPool, т.к в 3 проекте Жукова пригодится.
01.02.2025
Глянул ThreadPool, Рефлексию и WebFilters
Учился 4-5ч
Завтра доглядеть курс по сервлетам и начинать проект Жукова потихоньку
Глянул ThreadPool, Рефлексию и WebFilters
В целом в пуле потоков нет ничего такого, просто чтобы заново не создавать потоки мы его возвращаем в пул чтобы потом снова использовать.
Рефлексия таки дает нам полное подробное описания нашего класса, из чего он состоит, какие поля, модификаторы, предки, интерфейсы.
Ну и веб фильтры по сути действия которые нужно сделать перед тем как отправить пользователя по той ссылке которую он запросил, ну например проверить зашел ли человек в аккаунт.
Учился 4-5ч
Завтра доглядеть курс по сервлетам и начинать проект Жукова потихоньку
03.02.2025
Досмотрел сервлеты
Учился 2-3 часа
Досмотрел сервлеты
Узнал\вспомнил про аутенфикацию, авторизацию и как это реализуется в сервлетах
Учился 2-3 часа
04.02.2025
Начал 3 проект Жукова
Учился 2.5 часа
Завтра 3-4 часа найти на проект
Начал 3 проект Жукова
Разобрал что такое rest, в общем понял что за это проект и что в нем делать
Учился 2.5 часа
Завтра 3-4 часа найти на проект
❤2
05.02.2025
Занимаюсь 3 проектом Жукова
Завтра буду делать вторую бд "обмен валют" и реализацию запросов к ней.
Прогал сегодня 3.5 часа +-
Занимаюсь 3 проектом Жукова
Создал бд, сделал сервлеты, сервисы, дао, валидации и т.п
Теперь при запросах:
GET /currencies получаю все валюты
GET /currency/EUR конкретная валюта
POST /currencies добавляю валюту
Также я немного в ступоре был как правильно сделать коды ответов, в итоге разобрался.
В общем запросы для одной бд сделал.
Также думаю воспользоваться аннотациями @Singleton от jakarta вместо обычной реализации.
Завтра буду делать вторую бд "обмен валют" и реализацию запросов к ней.
Прогал сегодня 3.5 часа +-
06.02.2025
3 проект Сергея Жукова
Начну делать новые гет и пост запросы для таблички по обмену валют, там думаю уже попроще будет после того как все сегодня написал.
Прогал 3 часа +-
3 проект Сергея Жукова
Потупил, порефакторил немножко код, т.к там иначе никак уже не написать нормально ничего. По факту снова думал как там эти ошибки отображать, т.к не увидел что нужно отдельно еще message выводить при всех запросах ошибочных.
В итоге не начал делать нового, все будет завтра.
Начну делать новые гет и пост запросы для таблички по обмену валют, там думаю уже попроще будет после того как все сегодня написал.
Прогал 3 часа +-
❤2
07.02.2025 и 08.02.2025
3 проект Жукова
Остался один get запрос на обмен валюты, дальше рефактор(надеюсь недолго) и деплой 🎉
Программировал за эти 2 дня 4-5 часов
3 проект Жукова
Написал все запросы по обменным курсам то есть на получение всех курсов валют, какого то конкретного курса, создание обменного курса и апдейт запрос.
Все по сути довольно легко и просто, но например сегодня думалось очень тяжело, неясно с чем связано, просто не мог сфокусироваться, частая проблема на самом деле, я еще и музыку врубаю) надеюсь все что я пишу не какой то бред, а реальный код, который кто то сможет понять
Остался один get запрос на обмен валюты, дальше рефактор(надеюсь недолго) и деплой 🎉
Программировал за эти 2 дня 4-5 часов
❤2
09.02.2025
Дописал 3 проект Жукова
Завтра буду это все дело рефакторить, возможно исправлю только основные моменты, типо разбиения еще каких то кусков кода по классам
Программировал 1-1.5 часа + почитал книжку на англ около часа
Дописал 3 проект Жукова
Доделал запрос на получение обмена валют и еще пару штук которых нужно было переделать
Завтра буду это все дело рефакторить, возможно исправлю только основные моменты, типо разбиения еще каких то кусков кода по классам
Программировал 1-1.5 часа + почитал книжку на англ около часа
❤1
10.02.2025
До сих пор 3 проект
Подрефакторил проект, а конкретно по сути метод отвечающий за конкретный обмен валют да и добавил фильтры чтобы код не повторялся.
Как бы задеплоил и ничего трудного нету, но из за 0 знаний линукса это ад просто адищее. Все пришлось через гпт делать ибо нет нормальных роликов.
Ах да, и до сих пор ничего не работает из за того что я не знаю как файл с бд перекинуть на удаленный сервер в какую нибудь отдельную папочку, тяжкая ситуация.😇
Почему никто не сделал нормальную графическую оболочку где бац перетащил с одного на другое.
Ладно завтра оно как нибудь надеюсь исправится и буду изучать хибернейт на спокойничах.
Прогал 3-4 часа
До сих пор 3 проект
Подрефакторил проект, а конкретно по сути метод отвечающий за конкретный обмен валют да и добавил фильтры чтобы код не повторялся.
Как бы задеплоил и ничего трудного нету, но из за 0 знаний линукса это ад просто адищее. Все пришлось через гпт делать ибо нет нормальных роликов.
Ах да, и до сих пор ничего не работает из за того что я не знаю как файл с бд перекинуть на удаленный сервер в какую нибудь отдельную папочку, тяжкая ситуация.😇
Почему никто не сделал нормальную графическую оболочку где бац перетащил с одного на другое.
Ладно завтра оно как нибудь надеюсь исправится и буду изучать хибернейт на спокойничах.
Прогал 3-4 часа
🤬3
11.02.2025
Поставил по итогу фронт на проект, база данных заработала, но это получилось только при постоянном решении каких то неожиданных багов, которые берутся не пойми откуда.
Начиналось с того, что были трудности указать нормально путь на бд, чтобы и локально и удаленно работало, это можно было сделать одной простой строчкой, но кто о ней вот знал, да и после этого оказалось что пока я проверял что работает а что нет, появилась 5 одинаковых файлов с бд в разных директориях которые работали, когда захотели, просто тупо при запросе сработает одна база, при другом вторая и просто рандом) 🤩
Ну а закончилось тем что на серваке не работает изменение курса обмена валют, хотя через intelij все работает на ура, магия.
Также дальше нужно все таки изучать Junit а потом только hibernate, так что скоро займусь.
Прогал примерно часа 4
Поставил по итогу фронт на проект, база данных заработала, но это получилось только при постоянном решении каких то неожиданных багов, которые берутся не пойми откуда.
Начиналось с того, что были трудности указать нормально путь на бд, чтобы и локально и удаленно работало, это можно было сделать одной простой строчкой, но кто о ней вот знал, да и после этого оказалось что пока я проверял что работает а что нет, появилась 5 одинаковых файлов с бд в разных директориях которые работали, когда захотели, просто тупо при запросе сработает одна база, при другом вторая и просто рандом) 🤩
Ну а закончилось тем что на серваке не работает изменение курса обмена валют, хотя через intelij все работает на ура, магия.
Также дальше нужно все таки изучать Junit а потом только hibernate, так что скоро займусь.
Прогал примерно часа 4
❤2👍2🔥1
12.02.2025
Начал изучать Junit (тестирование программ)
Продуктивный день, но не для программирования. Единственное что успел изучить так это Assertions. По сути они просто нужны для сравнения ожидаемого результата программы с актуальным при помощи огромного количества методов, но дмдев говорит все равно маловато как то, подключим дальше больше.
Еще странно, иногда пишут, что делали 3 проект месяц+, непонятная ситуация конечно, возможно конечно они просто с 0 знаний начали его делать🤨 ну окээй. Ну и в общем за сегодня ничего интересного.
Успел напрогаться час
Начал изучать Junit (тестирование программ)
Продуктивный день, но не для программирования. Единственное что успел изучить так это Assertions. По сути они просто нужны для сравнения ожидаемого результата программы с актуальным при помощи огромного количества методов, но дмдев говорит все равно маловато как то, подключим дальше больше.
Еще странно, иногда пишут, что делали 3 проект месяц+, непонятная ситуация конечно, возможно конечно они просто с 0 знаний начали его делать🤨 ну окээй. Ну и в общем за сегодня ничего интересного.
Успел напрогаться час
🥰2💯2🤝1
13.02.2025
Junit 5
Узнал что есть аннотации которые дают возможность сделать действия перед/после каждого теста, всех тестов, ну для инициализации различных значений, или быть может что то подчистить. Еще интересная тема TDD, которая по сути говорит о том, что сначала мы пишем тесты, а потом код под них, так даже мыслим иначе при написании программы, уж в будущем думаю пригодится это. Плюс дмдев рассказал про доп. возможности для тестирования (assertJ, Hamcrest) ну из них явно удобнее пользоватся ассертJ.
Сонный денёк сегодня.🥱😴
Программировал 2-2.5 часа
Junit 5
Узнал что есть аннотации которые дают возможность сделать действия перед/после каждого теста, всех тестов, ну для инициализации различных значений, или быть может что то подчистить. Еще интересная тема TDD, которая по сути говорит о том, что сначала мы пишем тесты, а потом код под них, так даже мыслим иначе при написании программы, уж в будущем думаю пригодится это. Плюс дмдев рассказал про доп. возможности для тестирования (assertJ, Hamcrest) ну из них явно удобнее пользоватся ассертJ.
Сонный денёк сегодня.🥱😴
Программировал 2-2.5 часа
🤩3❤2🦄2
🗓15.02.2025
Junit 5
Прошел extension model сам он по себе из нескольких компонентов, в общем благодаря этой штуке, можно управлять жизненным циклом, описать действия перед\после блоков и тестов (ну описал не очень но там полезная фича), также появляется замечательная штука такая DI (внедрение зависимостей) ии можно внедрять зависимости как в методах, так и в полях, ну и остальное не так уже интересно. Посмотрел также один видос про моки, пока прям не успел уяснить все, но я так понимаю, что это замена реальных объектов (некая имитация), чтобы упростить себе жизнь при тестировании. Скоро подберусь к хиберу.
Не могу не вставить эстетик программирование вместе с дмдев.🤩
👨💻Программировал 2-3 часа, но что то непродуктивно снова😠
Junit 5
Прошел extension model сам он по себе из нескольких компонентов, в общем благодаря этой штуке, можно управлять жизненным циклом, описать действия перед\после блоков и тестов (ну описал не очень но там полезная фича), также появляется замечательная штука такая DI (внедрение зависимостей) ии можно внедрять зависимости как в методах, так и в полях, ну и остальное не так уже интересно. Посмотрел также один видос про моки, пока прям не успел уяснить все, но я так понимаю, что это замена реальных объектов (некая имитация), чтобы упростить себе жизнь при тестировании. Скоро подберусь к хиберу.
Не могу не вставить эстетик программирование вместе с дмдев.🤩
👨💻Программировал 2-3 часа, но что то непродуктивно снова😠
❤3👍3🔥2
🗓16.02.2025
Junit 5 (завершен). Начал Hibernate.
Прошел моки, спаи и даже есть то, что понял. Например моки:
Например, здесь на 2 строке мы пользуемся фейк объектом(если я правильно понимаю) и указываем если в дао метод delete попадет id который указан как NAME.getId() то тогда дао возвратит сразу же true и никакой логики из настоящего класса не будет, это и круто т.к проверяем конкретный класс, тут это сервис (уже не зависящий от логики dao) на его работоспособность.
Также есть спаи (spy), но его отличие в том что он уже отчасти, возможно полностью работает как реальный объект, что тоже иногда нужно при тестировании.
В общем курс имба, мне понравилось. 👍
А по hibernate прошел только введение.
👨💻Программировал 2 часа.
Junit 5 (завершен). Начал Hibernate.
Прошел моки, спаи и даже есть то, что понял. Например моки:
@Test
void shouldDeleteExistedUser() {
userService.add(NAME);
Mockito.when(userDao.delete(NAME.getId())).thenReturn(true);
boolean delete = userService.delete(1);
assertThat(delete).isTrue();
}
Например, здесь на 2 строке мы пользуемся фейк объектом
Также есть спаи (spy), но его отличие в том что он уже отчасти, возможно полностью работает как реальный объект, что тоже иногда нужно при тестировании.
В общем курс имба, мне понравилось. 👍
А по hibernate прошел только введение.
👨💻Программировал 2 часа.
👍3❤2💔1
🗓17.02.2025 и 18.02.2025
Изучал Hibernate
Как мне подсказали, для 4 проекта будет достаточно посмотреть блок про Hibernate от Заура Трегулова. И разница действительно есть, даже в том, что dmdev я бы смотрел минимум 2 недели. Особенно учитывая, что он в сравнении с Трегуловым настолько углубляется и начинает про хибер рассказывать, что там это реально лишнее.
Смотря заура, я будто бы ощущаю себя мега профи во всем программировании, он и рассказывает по несколько раз так еще и простые вещи. Посмотрел последние видео про отношения в таблицах на 1.5-2х, нормально зашло.🔥
Так вот для тех кто не знает что такое Hibernate такой фреймворк, который на самом деле упрощает жизнь программисту, и вместо того чтобы вручную писать запросы к базам данных, он позволяет это сделать одной командой типа save, delete. Ну и главная фишка перевод данных из реляционного представления в объект (строка из базы данных -> объект в джаве)
Тут по сути получение сессии, открытие транзакции, и все, пишем запросы и закрываем транзакцию.🥱
Программировал за эти дни 4-4.5 часа
Изучал Hibernate
Как мне подсказали, для 4 проекта будет достаточно посмотреть блок про Hibernate от Заура Трегулова. И разница действительно есть, даже в том, что dmdev я бы смотрел минимум 2 недели. Особенно учитывая, что он в сравнении с Трегуловым настолько углубляется и начинает про хибер рассказывать, что там это реально лишнее.
Смотря заура, я будто бы ощущаю себя мега профи во всем программировании, он и рассказывает по несколько раз так еще и простые вещи. Посмотрел последние видео про отношения в таблицах на 1.5-2х, нормально зашло.🔥
Так вот для тех кто не знает что такое Hibernate такой фреймворк, который на самом деле упрощает жизнь программисту, и вместо того чтобы вручную писать запросы к базам данных, он позволяет это сделать одной командой типа save, delete. Ну и главная фишка перевод данных из реляционного представления в объект
try (SessionFactory factory = new Configuration()
.configure("hibernate.cfg.xml")
.addAnnotatedClass(Employee.class)
.buildSessionFactory();
Session session = factory.getCurrentSession()) {
session.beginTransaction();
Employee employee = session.get(Employee.class, 4);
employee.setName("Igor");
session.save(employee);
session.getTransaction().commit();
}
Тут по сути получение сессии, открытие транзакции, и все, пишем запросы и закрываем транзакцию.🥱
Программировал за эти дни 4-4.5 часа
❤3👍3🔥2
