Путь программиста
43 subscribers
50 photos
12 links
Каждый день пишу отчёт о проделанной работе💪
Download Telegram
День 75
Этот день я провел за практикой.
Естественно это был Джавараш в котором задачки стали супер сложными для меня(19 уровень). Во всех задачах я понимаю и решаю около 90% и эти 10% ну никак не могу добить. Приходится идти в раздел помощь и читать людей, которые столкнулись с этими же проблемами. Так пока и решаю задачи, надеюсь с набором практики смогу полностью решать задачи самостоятельно. Есть конечно задачи которые я решаю самостоятельно, но они основаны на предыдущих.

Я планировал начать изучения Spring Framework 10 сентября, но решил что надо все таки немного подтянуть практику. Начну пожалуй 20 сентября, когда пройду на Джавараше 20 уровень и получу статус “Продвинутый”. Дальше в планах изучать Spring + Hibernate и сделать свой мини проект до отъезда в Москву, и уже с этим проектом ходить на собеседование, чтобы работодатель видел мой код.

Также сейчас распечатаю оставшиеся вопросы по Java EE (около 300) и начну их изучение. Учился вчера 5.5 часов. Всем удачи и продуктивного дня!
День 76
Вчера не удалось уделить
достаточно времени программированию. В начале я пытался решать задачи на JavaRush. Задачи средней и легкой сложности я решил, потом почитал условия тяжелой задачи и я понял что не смогу ее решить. На этом моменте я отправился изучать доп. материал. Сначала смотрел видео на Ютубе, потом начал читать книгу "Грокаем алгоритмы". И тут, на форуме Джавараша я читаю комментарий такого содержания (в прикрепленном фото). Ситуация очень похожая на мою, и все что нужно, это продолжать дальше учиться, даже если у тебя нет мотивации решать какие то задачки, можно просто включить видео на фон, это будет намного лучше, чем если ты просто будешь ничего не делать.

В общем, на этом все, вчера я учился 3 часа. Всем удачи и продуктивного дня💪
День 77
Красивая цифра:) Не верится что всего 2 с половиной месяца назад я ничего не знал о программировании и о Java в частности, а сегодня уже собираюсь пилить свой проект на Java и фреймворке Spring. Это будет бот который будет работать со сторонним API. Бот будет вполне себе рабочим проектом, не "учебным". Функциональность у него будет одна, но очень важная. Будет интересно, сейчас пока раскрывать не буду идею, ближе к октябрю расскажу.
И вот этот проект хочу добавить к себе в портфолио, чтобы был опыт самостоятельной разработки, что хорошо ценится для Junior специалистов.

Вчера я учился 5 часов. Прочитал пару десятков страниц книги Эффективное программирование, мне понравилось, хотя написана она уже как для профессионалов, более сухая чем все предыдущие книги которые я читал. Также немного читал "Грокаем алгоритмы". Посмотрел еще одно видео собеседование на Junior Java. Когда не понимал или не знал вопроса полностью, ставил на паузу, шел в гугл и читал материал. Так я стараюсь закрывать пробелы.

Еще узнал про 2 книги "Java Persistence JPA и Hibernate" и "Спринг для профессионалов" которые рекомендовали где то в комментариях. Т.к. там больше 1000 страниц в книге, буду их паралельно читать и делать свой проект + гугл + видео Ютуб. Также вчера много читал и смотрел видео про сериализацию и десериализацию. Материал понял, теперь осталось применить его на практике Джавараша. На этом все, всем удачи и продуктивного дня и вечера💪😄
Уже 250 часов. Неплохо...
День 78
Смотрел много видео на ютуб и заполнял свои пробелы по знаниям Java Core. Повторил вопросы по Java собеседованию, уже неплохо знаю сам Java Core. И рассказать то нечего, пока скучно и все повторяется, но сегодня начинаю новую тему фреймворки Spring и Hibernate. Буду их изучать и параллельно делать проект, о котором вчера рассказывал.

Вчера учился 5 часов + смотрел некоторые интервью с историями успеха. Люди с разными возрастами и разных социальных групп устраиваются айтишниками и это мотивирует. Короткий отчет, завтра будет больше😁💪
День 79
Вчера я начал читать 2 книги по Spring и Hibernate. По Hibernate я понял что это такой инструмент для облегчения работы с базами данных. Т.е. можно писать такой java код в перемешку с SQL и все это будет переводится в язык базы данных, разных баз данных, например MySQL postgresql, Ms SQL и т.п. Очень удобная штука которая всегда нужна. Но в том же Spring есть такой же инструмент и я не знаю что чаще используется.

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

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

На этом все, вчера учился 5 часов. Всем удачи и продуктивного дня💪
День 80-81
Решил совместить эти дни в один отчет т.к. ничего особенного сейчас не происходит. Паралельно пытаюсь читать несколько книг по алгоритмам Spring и Hibernate + смотрю видео про Spring Core и вообще как все это работает на практике. Видео с ютуб канала alishev, хорошо объясняет для новичков, но его проблема в том что он совсем не углубляется в тему, показывает как будто это все легко и просто. Также было даже и на его платном курсе продвинутая Java, хотя если покопаться, то все эти темы очень сложные.

На сегодня план купить лицензию IDEA для того чтобы там работать со Спрингом, т.к. бесплатная версия поддерживает только Java код. И самому "пощупать" Спринг и сделать свое веб приложение. Веб приложение я уже делал, но это было на старом Java EE, посмотрим какие отличия здесь есть.

На сегодня все, за эти 2 дня я занимался 8 чистых часов + еще смотрел какие то интервью и читал статьи общие об IT. Всем удачи и продуктивного дня💪
День 82
Вчера целый день изучал Spring по видео из Ютуб
. Сначала скачал среду разработки intelij idea, и как оказалось, за первые 30 дней не нужно было платить. Этому я обрадовался т.к. не хочется платить когда тебе ещё не платят😉 Дальше по инструкции из видео настроил проект через сборщик проектов Maven, зашёл на их сайт и скопировал зависимости со Spring Core и ещё несколькими. Собрал и импортировал модули Спринг.

По самой теме пока материал усваивается процентов на 50, нужно ещё много дополнительного читать, чтобы было полное понимание. На практике сделал бины (объекты) через xml файл и аннотации. Как я понял сейчас везде используются аннотации т.к. они максимально удобны и без лишнего кода.

Вчера занимался 5.4 часов, сегодня планирую 7 и дальше буду набирать обороты т.к. вечно учиться нельзя, нужно применять знания на работе. На этом все, всем удачи и продуктивного дня!
День 83
Вчера был мой рекорд по продолжительности учебы в день — 7.5 часов. Читаю некоторых людей на форумах которые говорят что учатся по 14-16 часов, что я считаю абсолютно невозможным. Или ты убиваешь свое здоровье или ты неправильно считаешь. Убивать свое здоровье конечно можно, но в таком ритме больше нескольких недель находиться нельзя, попадешь в больничку надолго. Я думаю оптимально-максимальный режим это до 7-8 часов чистой учебы (если отвлекаемся, останавливаем время).

Вчера целый день уделил спрингу, в основном это видео с Ютуб и книга "Спринг для профессионалов". Наконец разобрался как работать с аннотациями в Спринге и как вообще работать без устаревшего xml кода. Аннотации это очень крутая штука, которая содержит в себе часть кода. Например, ставишь какую - нибудь аннотацию вида @ Annotation и он может заменить по 20-30 строчек кода и более. Я думаю что это одна из основных фишек Спринга и роста его популярности.

Также, вчера узнал о такой полезной штуке как Lombok. Этот проект также работает с аннотациями и заменяет излишний код в проекте. Например нам очень часто нужны несколько дефолтных методов и конструкторов к классу или полям. Мы просто пишем определенные аннотации и они заменяют нам 100-200 строк так называемого бойлерплейт кода, которые мы в ином случае писали бы вручную.

Это очень облегчает трудности разработчика и ставит обратно Java на равне с новыми языками, которые более удобны - Scala, Kotlin и т.п.

На этом все, всем удачи и продуктивного дня💪😄
День 84

Т.к. в моем графике обучения появился целый большой фреймворк Спринг, который нужно изучать столь же долго и нудно как и Java, я решил разделить эти 2 области по дням. Поочередно по дням буду изучать то Спринг, то Java. Вчера был день Джавы, и начал я с JavaRush. Задачи на 20 уровне очень мутные и не дается какой то конечной цели которую надо решить. Ты должен прочитать код и сопоставить их в логическую цепочку, что дается очень сложно. Так, я первый час пытался вникнуть что от меня хотят и на второй час пошел доучивать теорию по этой задаче, а на 3 час решил ее. Решение буквально до 10 строчек, но чтобы догадаться до них нужно потратить кучу попыток.

На этом я решил что задачек хватит на сегодня и пошел учить теорию и смотреть видео. В принципе, по теории Java, по моему мнению у меня мало пробелов, что касается основ. А вот где у меня пробелы, это те области которые были добавлены в JDK 8. Это касается функционального программирования, Stream API и лямбда, и еще одной областью является Reflection API, который используется в Спринге. Этим 3 темам и еще библиотеки многопоточности Concurrency я хочу уделить особое внимание в дальнейшем.

Занимался вчера 7 часов по помодорро, а сегодня день Спринга. На этом все, всем удачи и продуктивного дня💪😎
День 85-86

Решил не записывать позавчерашний отчет, т.к. получилось бы мало текста. Как я и говорил, я один день учился Спрингу, а другой уделил Джаве. По Спрингу, я в основном смотрел видео на Ютуб и записывал некоторые важные моменты. В текстовом формате по Спрингу не так много информации или она устаревшая. Узнал о таком модуле как Spring Boot который, можно сказать, все делает за тебя. Основа Спринг была в том, что мы выносили в отдельный файл бины и там уже вся магия происходила, и в этом файле нужно было прописывать все свои бины.

В Спринг Буте же, мы можем обойтись без создания этого файла, сам Boot уже делает за нас все. Нам в начале нужно просто импортировать зависимости (ссылки версии из интернета) Spring Boot и все, можно идти делать свое веб приложение. И в этом модуле очень много используется аннотации вида @ Annotation, который прописывается сверху метода, поля или класса, чтобы что то обозначить, например то что этот класс имеет какие то свойства которые другие не имеют. Чтобы точно рассказать об этом, мне еще нужно время покопаться, но аннотаций очень много и их все нужно выучить😃

А вот вчера я серьезно принялся изучать лямбда выражения и Stream API который очень помогает при работе с коллекциями, то есть с массивами данных. Грубо говоря, стримы и лямбда сокращает код Java в 2-3 раза и делает его более удобочитаемым. Вообще эти термины в Java появились недавно и используются 50/50, но в современных проектах все построено на них. Это так называемый функциональный стиль программирования, а не объектно-ориентированный, коим является Java. Из-за этого не все его любят, но как по мне, функциональный стиль это действительно удобно и красиво, нет нагромождения лишнего кода.

За эти 2 дня, в общей сумме, я занимался 13 часов чистого времени. Скрин с помодорро внизу. Мне нравится темп который я набрал, сейчас процесс обучения движется намного быстрее, 1-2 лишних часа это большое преимущество при долгосрочных целях🌝

На этом все, всем удачи и продуктивного дня🦾
День 87

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

Начал я с изучения принципов которые вечно мне попадались в процессе изучения, это SOLID, KISS, DRY и YAGNI. SOLID - это аббревиатура - принципы по которым нужно писать код, расшифровывается так: принцип единой ответственности, принцип открытости и закрытости, принцип подстановки Барбары Лисков, принцип разделения интерфейсов, принцип - модули высших уровней не должны зависеть от модулей низших уровней. Без модели SOLID невозможно написать правильно структуированную, удобочитаемую и лекоизменяемую программу. Но, честно говоря, все это уже изучалось косвенно в книгах и видео, и я так уже интуитивно пишу, поэтому мне эти принципы никаких инсайтов не дали. Но их важно запомнить, помнить и применять.

Остальные принципы маленькие и косвенно повторяющиеся.
Первое KISS - делай короче и проще свой код. DRY - не повторяй код, используй интерфейсы, выноси за пределы класса. А YAGNI - делай так, как сказали. Не надо прикручивать доп. функционал, даже если ты думаешь что это ну уж очень надо.

На этом день начался😃 Следующие 5 с лишним часов я изучал отличия Java EE и Spring, а также основы интернета, как все работает на серверном уровне, и как все это вообще взаимодействует. Много читал про IP, поры, сервлеты, виртуальные машины и еще посмотрел одно видео про Docker, такую модную штуку для развертывания вашего приложения на серверах.

Сегодня день когда я повторяю пройденный материал за неделю. Вчера я занимался 7.2 часа. На этом все, всем удачи и продуктивного дня, ну или отдыха, воскресенье же🦾🙈
Всегда пиши на той же строке🤓
День 88

Опять красивая цифра😃
Вчера был день повторов и такой свободный график по тому что я могу учить. Начал я с решения задач на JavaRush которые остались нерешенными когда-то. Ни одна задача не поставила меня в тупик, хотя в свое время я бросал эти задачи, т.к. не смог решить. Это радует😁. Дальше я начал повторять вопросы по собеседованию. Те вопросы которые я уже учил, на них мог ответить без проблем, может и частично в некоторых деталях, но чтобы я не знаю ничего, такого уже нет.

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

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

Так и прошел день, так и прошла неделя. Учился я вчера 6 часов, а за неделю около 45 часов, что является рекордом🎆. Если такими ударными темпами продолжать, пробелы в знаниях заполнятся очень быстро и можно без труда пройти собеседование. На этом все, всем удачи и продуктивного дня🦾
День 89-90

Как я и говорил в эти дни я чередовал Java и Spring.
В понедельник я решил изучить многопоточность в java, ту ее часть которая содержится в библиотеке concurrent. Честно скажу, тема довольна обширная и сложная, научиться применять ее за день невозможно. В первые часы изучения пытался понять зачем вообще нужна эта библиотека и почему ее так часто используют. Оказалось что это "облегченная" версия синхронизации в Java. Т.е. чтобы не использовать каждый раз ключевое слово synchronized, в этой библиотеке содержатся классы и методы которые уже синхронизированы и могут использоваться сразу в многопоточном приложении. На этом примере все просто, но главная проблема заключается в том чтобы все это запомнить и начать использовать.

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

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

Базу данных Postgres скачал, создал, и прикрутил к своему проекту. Но тут начались проблему, я добавлял какой то текст с сайта и оно не добавлялось в базу данных. После 2 часов с бубнами и с десяток попыток изменения кода, я нашел проблему. В Html коде я не дописал всего 1 букву, вместо messages, я написал message. И из-за этого не проходило сообщение. Вот такой вот урок, нужно внимательно смотреть, что пишешь😄

За эти 2 дня занимался 12.5 часов, на этом все, всем удачи и продуктивного дня!🦾