Путь программиста
40 subscribers
50 photos
12 links
Каждый день пишу отчёт о проделанной работе💪
Download Telegram
День 66
Со здоровьем все восстанавливается, а вот с рабочим временем нет. Вчера я учился около 2 часов, но это были очень продуктивные два часа. Сначала утром я посмотрел видео по собеседованию java программиста (это не считается за учебу), и там много вопросов было про алгоритмы. И я понял, что мало разбираюсь вообще во всем это и паралельно задал вопрос в форуме Javarush “А спрашивают ли про алгоритмы новичков?”. И мне ответили что про алгоритмы сортировки не так часто, а вот про алгоритмы поиска почти на каждом собеседовании. И я начал искать материалы на эту тему.

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

Также вчера я сделал резюме на hh. Сегодня утром прилетело приглашение на позицию тимлида, но я думаю что еще не готов😁. Требуемый опыт 3-6 лет. На несколько вакансий откликнулся, будем смотреть что напишут в понедельник.

Сегодня мне намного лучше, постараюсь учиться 5 и более часов по помодорро. Я учитываю только учебу, а так я почти весь день что то смотрю и читаю по теме, например интервью или интересные статьи, но я их не учитываю в учебе. На этом все, подписывайтесь, всем продуктивного дня💪
День 67
Вчера был хороший день, особенно по сравнению с предыдущими. Учился я 5.2 часа и наработал за эту неделю всего 28 часов, что мало, нужно хотя бы 30 часов в неделю, чтобы не отставать от графика и освоить весь материал. Вчера смотрел видео, где человек говорил о том что, чтобы стать программистом с нуля нужно 1000 часов. Я думаю это приближено к правде, но мне хочется устроится на работу на уровне 500-700 часов. Да, такой человек не будет супер специалистом, но я не имеет смысла ждать, когда же все выучишь. Следует уже на таком уровне начать ходить на собеседование.

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

Но до этого вчера я продолжил учить алгоритмы. Там же на hh был вопрос про сбалансированное дерево, на который я не знал ответа и в интернете тоже мало информации об этом. Просто многие сразу имеют ввиду именно это дерево, но как бы говоря про обычное, которое никуда не годится и вот если бы мне задали этот вопрос, я бы не знал что отвечать, но на самом деле нужно было просто рассказать про “обычное бинарное дерево” которое по умолчанию есть в Java. Сбалансированное дерево это АВЛ дерево или еще бывает красно-чёрное дерево. Все они меняют свои так скажем ветки, при условии добавлении новых элементов с какой-то математической формулой. Благодаря этому, не получается так, что древовидная структура превращается в список.

Сегодня я стал на год взрослее, поэтому не знаю, смогу ли много времени уделить учебе, но наверстаю за последующую неделю. Всем продуктивного дня, подписывайтесь!
Тут показано, как меняется АВЛ дерево при добавлении нового элемента
Какие книги изучать?
Вот список по фундаменту в Java и SQL:
Кэти Сиерра, Берт Бейтс — Head First Java;
Брюс Эккель — «Философия Java»;
Гербер Шилдт — «Java 8, Руководство для начинающих»;
Роберт Лафоре — «Структуры данных и алгоритмы Java»;
Алан Бьюли — «Изучаем SQL».
День 68
В связи в др вчера не удалось поработать в полную силу (4 чистых часа по системе помодорро). Я просмотрел 8 видео про Java EE который используется в больших компаниях, и все выполнил на редакторе + создал свой локальный сайт и экспериментировал с ней. Ссылка на плейлист. Java EE это набор спецификаций для работы на высоконагруженных серверах.Простыми словами, мелкие веб приложении (aka сайты) используют Java SE, т.к. еще мощности и удобства им хватает. А сайты по типу Сбербанка не могут себе таким пользоваться. Им нужен более мощный инструмент. Основная цель спецификаций — обеспечить масштабируемость приложений и целостность данных во время работы системы. Также в дополнение к этому здесь есть такая штука как JSP, в который можно одновременно писать и HTML код и Java код. Так, я вчера тоже познакомился немного с HTML, хотя и до этого много раз его видел.

А вот уже на Java EE накладывается фреймворк Spring для облегчения работы с ней, т.к. Java EE очень замороченная. Spring вообще сейчас много чего делает, и базы данных и веб приложения и много еще чего, но пока я в этом не так глубоко разобрался. Мне сегодня осталось досмотреть 2 видео по Java EE, дальше собираюсь прогнать вопросы по собеседованию и если останется время, то еще немного решу задач по SQL.

Также, всем кто смотрит Twitch, рекомендую посмотреть методики этого стримера по обучению (в описании, текст на английском). Я его включаю на фоне, чтобы мотивироваться учиться (он каждый день учиться по 14+ часов). Подписывайтесь, и всем кто пришел вчера Привет! Всем продуктивного дня💪
День 69

Т.к. вчера должен был по семейным обстоятельствам отойти, я очень быстро выучил 10 вопросов и посмотрел ещё 2 видео плейлиста по Java EE. На все про все ушло 2 часа и на этом учеба закончилась.

Сегодня и ещё несколько дней буду занят, но я постараюсь пару часов уделять учебе, а дальше уже нужно наверстать упущенное и с двойной силой больше учиться. Надеюсь все ещё успеть в установленный срок устроится на работу, до 1 декабря.

Всем желаю удачи и продуктивного дня!
День 70
Впервые за 70 дней я не занимался программированием. Были очень срочные дела. В пятницу начну догонять свой же график. Надеюсь сегодня тоже получится немножко поработать. Но я создал и наполнил контентом инстаграм Путь программиста prog.way, что тоже неплохо 😄. Всем продуктивного дня!
День 71
Вчера у меня было ограниченное время для учебы и я решил поучить вопросы к собеседованию. Кстати, если вам нужны эти вопросы, я их нашел тут javastudy.ru/interview/list-of-question-java-interview . Может быть тут не те вопросы которые будут задавать на реальных собеседованиях, но я думаю тут охвачено 90% из них. Выучил 10 вопросов. Первые 5 были на тему Объектно-Ориентированного программирования. Там были вопросы по типу “Что такое интерфейс”, “Для чего он нужен”, про final и static в интерфейсах а также про виды классов в Java. Вторые 5 вопросов были из темы Работа со строками. Вопросы такого порядка “Как сравнить значение двух строк”, “Как перевернуть строку”, “Как работает сравнение двух строк” и все это с практическими примерами.

На все это я выделил 2 часа, т.к. больше времени вчера физически у меня не было. Вот такой итог дня, сегодня изучаю SQL на одном классном сайте, завтра скину ссылку💪
День 72
В этот день я решил возобновить решение
практических задач. 1 час я уделил JavaRush, решил 1 сложную задачу, где нужно было работать с таким шаблоном проектирования как адаптер. Адаптер — это структурный паттерн проектирования, который позволяет объектам с несовместимыми интерфейсами работать вместе. Проще говоря, это такой класс прослойка, который один формат например, xml переводит в другой, например json. Очень полезный паттерн, нужно его выучить, применяется он часто.

2-3-4 час я занимался на классном сайте, о котором прочитал на форуме . Сайт вроде бесплатно-платный, но именно вот этот курс по SQL пока бесплатный, я на пункте 1.3. Всего 145 лекций, которые объясняют основы этого языка для базы данных и конечно же упражнения по окончании лекции. Некоторые упражнения проще простого, а по некоторым мне пришлось гуглить.

И наконец, 5 час вчерашних занятий я посвятил чтению литературы. Мне много раз попадалось на глаза такая книга как “Грокаем алгоритмы” и все ее нахваливали. Да, эта книга действительно достойна всех похвал, пока я дочитал до 45 страницы, все очень просто и интересно объясняется с кучей рисунков, о том как алгоритмы и структуры данных работают. Вообще эта книга может быть интересна и не программистам, всем рекомендую прочитать хотя бы пару страниц, затягивает.

На этом все, я пошел дальше учиться и развиваться, всем продуктивного дня💪
День 73
Ух и денек был, вроде я
поставил рекорд вчера, 6.4 часа чистой учебы по системе помодорро. Но доволен ли я проделанной работой, как бы не так. Начал я вчерашнее обучение опять с SQL. Все на том же сайте я пытался решать упражнения и читать лекции по этому языку. Решил около 15-16 задач без подсказок и в которых полностью вник, и вроде понял тему. Уже довольно неплохо ориентируюсь в базах данных, как выбирать тот или иной столбец, по критерием как определять и т.п.

Также где - то на форуме увидел книгу по SQL Алан Бьюли — «Изучаем SQL». Недавно я рекомендовал эту книгу вместе с остальными, и рекомендация оказалась не напрасной. Книга действительна легко читается и запоминается, также как и “Грокаем алгоритмы” с кучей иллюстрацией. Как я понял писательница которая написала эту книгу писала и серию книг Head First, которую многие рекомендуют, там также много иллюстраций

Еще немного времени опять уделил алгоритмам, чуть более часа я читал “Грокаем алгоритмы” и пытался вникнуть в материал. Там даются интересные математические задачки, которому и самому интересно решать. Материал подается очень разжевано, но и поразмышлять также заставляет.

И тут, в конце дня, я решил посмотреть учебное собеседование и опять там были вопросы на которые я не знал ответа, например, что такое композиция в Java. Я быстренько нагуглил решение и прочитал материал про это. В общем, еще учиться и учиться. Успею ли я найти работу до 1 декабря, вот это уже вопрос. Если только повезет и меня возьмут для того чтобы под себя подготовить. Но как бы ни было, рано или поздно, я все равно устроюсь на эту работу. Можно тупо сходить на 100 собеседований и знать уже наизусть все что будут задавать и пройти. Но это худший сценарий, и я постараюсь побыстрее стать разработчиком, до 10 собеседований.

На этом все, всем удачи и продуктивного дня!
День 74
Вчерашний день начал с повторения пройденных вопросов
за прошлую неделю. Задавал себе вопрос и отвечал как смог, по собственным оценкам, материал знаю на 80%, что довольно неплохо. Проблемы у меня вызывают не столько понимание вопроса, сколько развернутое объяснение ответа. Нужно будет подтягивать этот аспект.

Еще решил вчера закрыть свои пробелы в некоторых вопросах, которые давно хотел изучить. Например, что такое атомарность, композиция, агрегация и сериализация. Эти вопросы всегда где-то всплывались, но я не решался их изучать. Еще меня всегда преследуют темы Stream API, Лямбда выражение (хотя и их и изучал, но уже подзабыл из-за неиспользования), нереляционные базы данных и еще некоторые темы. Также я посмотрел видео про REST API, xml, json. REST API это некие правила-принципы по которым ты должен строить свое приложение, чтобы другие приложения могли с ним взаимодействовать. XML это расширенная версия HTML (как я понял). Json из той же серии, только JavaScript, но который используется и в других языках.

На сегодня план посвятить время JavaRush и вопросам, где у меня есть пробелы. Всем удачи и продуктивного дня. Скрин работы за вчера⬇️
День 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 страниц в книге, буду их паралельно читать и делать свой проект + гугл + видео Ютуб. Также вчера много читал и смотрел видео про сериализацию и десериализацию. Материал понял, теперь осталось применить его на практике Джавараша. На этом все, всем удачи и продуктивного дня и вечера💪😄