1

Этап 1

Освоить Java Core

2

Этап 2

Освоить JAVA EE

3

Этап 3

Maven

4

Этап 4

SQL и PostgreSQL

5

Этап 5

Spring Framework

6

Этап 6

Паттерны проектирования

7

Этап 7

JUnit

8

Этап 8

Git

9

Этап 9

HTML/CSS

10

Этап 10

JavaScript

11

Этап 11

Алгоритмы и структуры данных.

12

Этап 12

Методологии SCRUM

1

Этап 1

Освоить Java Core

2

Этап 2

Освоить JAVA EE

3

Этап 3

Maven

4

Этап 4

SQL и PostgreSQL

5

Этап 5

Spring Framework

6

Этап 6

Паттерны проектирования

7

Этап 7

JUnit

8

Этап 8

Git

9

Этап 9

HTML/CSS

10

Этап 10

JavaScript

11

Этап 11

Алгоритмы и структуры данных.

12

Этап 12

Методологии SCRUM

19 июля 2020 15 июня 2021
Цель завершена 4 октября 2023
Карьера и работа

Трудоустройство на позицию Java Junior

САМОЕ ВРЕМЯ СТАНОВИТЬСЯ ЛУЧШЕ

С чего обычно начинаются подобные посты? f09fa494.png Думаю, в них говорится о том, что кто-то проснулся однажды утром и понял, что нужно что-то менять в своей жизни. Лично для меня, это был процесс далеко не одного дня и даже не недели, я считаю, что это заняло у меня где-то пару лет.

1. Кто я такой и зачем это делаю?

Думаю, ответ на вопрос "зачем?" достаточно очевиден. Я хочу изменить себя в лучшую сторону. А вот вопрос о том, кто я такой, достаточно не очевиден. Да и ещё долгое время будет таковым.

Я простой паренёк (а может весьма и не простой) из простого "среднестатистического села с дорогами". Здесь, в моём городе, всем лишь бы погулять да напакостить. Людей, с которыми мне было бы по пути, или кто хотя бы как-то пытался вырваться из жизни "гопника", я на данный момент времени не встречал (в рамках своего города).

Я учусь в университете на программиста. И должен признать, получается у меня весьма хорошо. Однако, я столкнулся с такой проблемой (думаю, любой человек из маленького города сталкивается с ней), что все мои знания просто никому не нужны, я знаю "всё обо всём, но ничего в общем". Безусловно, у меня хорошее образование, однако я никогда не задумывался над тем, что всем нужен человек, который сможет делать одно (!) дело, но делать его хорошо. Вот я и решил стать профессионалом своего дела.

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

2. В чём польза от меня?

Здесь я буду описывать свой путь развития в профессиональной сфере, а получается, у меня будет возникать множество вопросов, я буду узнавать множество различного материала, буду стараться его как-то систематизировать и донести до Вас. Всё очень просто. Да и к тому же, говорят, что если объяснять что-то другим людям, то это лучше усвоится. Чуть не забыл упомянуть о том, что у меня есть группа ВКонтакте, в которой я по сути описываю все то же самое, но еще и делюсь с Вами лекциями, которые я делаю по Java. Что-то подучил/закрепил и делаю лекцию, вот ссылка: ЖМЯК

3. Хотите пройти этот путь со мной?

Думаю, из вопроса выше всё понятно. Давайте вместе будем проходить этот путь. Да, я понимаю, что мне придётся столкнуться с морем хейта и не понимания. Я готов мужественно переносить все тяготы данного пути f09f91a8e2808df09f8e93.png

4. Каков план, капитан?

Итак, мы уже определились с тем, пойдёте ли Вы со мной или нет. Но следовать за капитаном, который не знает куда идёт – глупо, согласны?
Так вот, я знаю, куда я хочу придти и знаю (ну или так думаю), как туда придти. Остаётся просто делать. Лично для себя я решил, что моя глобальная цель – трудоустройство по специальности. Кажется немного тупой целью, ведь наверняка, если Вы живёте не в "селе с дорогами", то Ваш ВУЗ позаботился об этом. Но у меня немного иная ситуация.

Для себя я чётко определил, что хочу быть так называемым Java Developer (но это только для начала). И вот как я собираюсь это сделать:

  • захожу на сайт похожий на hh (или на него же);
  • ищу там должность, которую хочу занимать;
  • смотрю требования (стек технологий);
  • учу этот стек.

Спустя некоторое время таких "походок" я определился с технологиями и путём их изучения:

  1. Java Core.
  2. Java EE.
  3. Разумеется, куда же без идеальных знаний SQL (PostgreSQL).
  4. Hibernate.
  5. Spring.
  6. Maven (иногда Ant).
  7. Методологии SCRUM и т.д.
  8. Паттерны проектирования.
  9. JUnit.
  10. Log4J, Slf4J и т.д.
  11. Git/SVN.
  12. HTML/CSS.
  13. JavaScript.
  14. Tomcat/JBoss.
  15. Ну и куда же без алгоритмов и структур данных.

И это только ориентировочный список. Разумеется, такие понятия как ООП я даже не оговариваю, это и так понятно.

Должен сказать, что я начинаю не с нуля. Я уже успел написать диплом на Java с использование JavaFX. Это был голосовой мессенджер (ясен пень серверная и клиентская часть), в котором я разрабатывал свой сигнальный протокол (кто в теме, тот поймет, а кто нет – гугл в помощь). И невероятное множество разнообразных приложений на любом языке программирования (начиная от библиотеки на ассемблере, заканчивая курсовым по криптографии). Но знаний по чёткой технологии оно мне не дало, скорее всесторонне развило. Со временем диплом, который я описал, и некоторые из проектов появятся на гитхабе.

Всё было бы хорошо, только если бы не подводные камни...

Со стороны может показаться, что все легко - беру и учу. Делов то. Я сейчас не давлю на жалость и все такое, просто хочу донести мысль о том, что все не так просто. Вкратце: я из неполноценной семи, меня здесь не особо понимают, вечно давят что нужно куда-то устроиться, каждые минут 15-20 отвлекают, требуют что-то сделать, в общем просто ужас. Своей комнаты нет, приходится как-то концентрироваться и все такое. А еще сейчас лето, невыносимо жарко, кондиционера и т.д нет, это тоже создает трудности, нереально трудно думать в таких условиях. Затем снова начнется ВУЗ, там будет лабораторные, курсовые, потом диплом - все это будет отнимать время, а следовательно - я смогу уделять меньше времени своему развитию. В общем, это создает определенное давление и препятствия. Это пожалуй является мои главным препятствием на этом пути.

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

 Критерий завершения

Работа в компании на позиции Java Junior разработчик (или выше)

 Личные ресурсы

Понимание ЧЕГО и КАК я хочу достичь, информация (я знаю что мне учить, и примерно понимаю где это находить)

 Экологичность цели

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

  1. Освоить Java Core

    Первый пункт из описанного выше списка необходимых технологий для изучения.

    Примерный план составлял сам, не уверен в правильности. Но уверен в том, что хоть некоторые пункты не относятся к Java Core но выучить их нужно.

    1. Введение в ООП

    2. Наследование. Абстракция

    3. Полиморфизм. Работа с исключениями

    4. Интерфейсы

    5. Enumerations

    6. Структуры данных

    7. Collections Framework

    8. Сериализация

    9. Многопоточность

    10. Апплеты

    11. Inner classes

    12. Mutable/Immutable объекты

    13. Анонимные классы

    14. Функциональные интерфейсы

    15. Потоки ввода-вывода

    16. java.lang.Object

    17. Generics and Collections

    18. Java 8 Stream API

    19. Хэш таблицы. Map

    20. Работа с сетью

    21. Создать проект, показывающий что я освоил Java Core

    22. Ответить правильно как минимум на 85% вопросов с сайта https://javastudy.ru/interview/list-of-question-java-interview/

  2. Освоить JAVA EE

    Честно говоря, на данный момент не особо понимаю, что туда входит. Но немного погуглив выяснил примерный план

    1. Java Servlets

    2. JavaServer Pages (JSP)

    3. Enterprise JavaBeans (EJB)

    4. Contexts and Dependency Injection (CDI)

    5. JSON Processing (JSON-P)

    6. JSON Binding (JSON-B)

    7. WebSocket

    8. Java Message Service (JMS)

    9. Security API

    10. Java API for RESTful Web Services (JAX-RS)

    11. JavaServer Faces (JSF)

    12. Reflection API

    13. JSTL

    14. JPA + Hibernate

    15. Написать проект, который показывает уровень владения JAVA EE

  3. Maven

    Хотя, вроде как Maven в некоторой степени можно отнести к JAVA EE, или нет. Не знаю. Вынес в отдельный пункт.

  4. SQL и PostgreSQL

    Изучить SQL, разобраться с PostgreSQL (знаю что там есть трудности с правами для пользователей)

    1. Простые запросы с SELECT

    2. Joins - Соединения

    3. Подзапросы

    4. DDL

    5. Проектирование БД

    6. Views (Представления)

    7. CASE, COALESCE и NULLIF

    8. Функции SQL и pgSQL

    9. Ошибки и их обработка

    10. Приведение типов данных

    11. Индексы

    12. Массивы

    13. Пользовательские типы

    14. CUBE и ROLLUP

    15. Импорт данных

    16. CTE

    17. Оконные функции

    18. Транзакции

    19. Триггеры

    20. Безопасность в postgresql

    21. На сайте sql-ex.ru достигнуть какого-нибудь хорошего уровня

    22. Возможно, создать что-то сильно связанное с SQL

  5. Spring Framework

    Грубо говоря - позволяет делать бэкенд на Java

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

    1. Конфигурация Spring приложений

    2. AOP, Spring AOP

    3. Spring Boot

    4. Spring Security

    5. Написать проект на Spring

  6. Паттерны проектирования

    Самый интересный этап. Или не самый. Но интересный.

    Его можно разделить на три этапа. Но я понятия не имею как это сделать на этом сайте, поэтому здесь будет всё вместе. Паттерны бывают:

    • Порождающие
    1. Фабричный метод
    2. Абстрактная фабрика
    3. Строитель
    4. Прототип
    5. Одиночка
    • Структурные
    1. Адаптер
    2. Мост
    3. Компоновщик
    4. Декоратор
    5. Фасад
    6. Легковес
    7. Заместитель
    • Поведенческие
    1. Цепочка обязаностей
    2. Команда
    3. Итератор
    4. Посредник
    5. Снимок
    6. Наблюдатель
    7. Состояние
    8. Стратегия
    9. Шаблонный метод
    10. Посетитель
    1. Фабричный метод

    2. Абстрактная фабрика

    3. Строитель

    4. Прототип

    5. Одиночка

    6. Адаптер

    7. Мост

    8. Компоновщик

    9. Декоратор

    10. Фасад

    11. Легковес

    12. Заместитель

    13. Цепочка обязаностей

    14. Команда

    15. Итератор

    16. Посредник

    17. Снимок

    18. Наблюдатель

    19. Состояние

    20. Стратегия

    21. Шаблонный метод

    22. Посетитель

  7. JUnit

    Тестирование в Java. Вроде должно быть легко

  8. Git

    Система контроля версий. Должно быть тоже легко. Даже не буду описывать этапы.

  9. HTML/CSS

    Здесь всё неоднозначно. Я же не собираюсь быть верстальщиком. Как дойду до этого этапа опишу подробнее что мне нужно делать.Мне будет достаточно поверхностных знаний.

  10. JavaScript

    То же, что и с HTML/CSS. Я не собираюсь быть верстальщиком. Будет достаточно не глубоких знаний. Тоже опишу подробнее, когда дойду

  11. Алгоритмы и структуры данных.

    На этом этапе все очень размыто. Ведь их невероятное множество. Вынесу в этапы основные по моему мнению. Хотя это может быть и не верно.

    1. Эффективность алгоритма

    2. Базовые структуры данных

    3. Алгебрарические алгоритмы

    4. Сортировка вставками

    5. Сортировка Шелла

    6. Сортировка выбором

    7. Пузырьковая сортировка

    8. Пирамидальная сортировка

    9. Сортировка слиянием

    10. Быстрая сортировка

    11. Сортировка подсчетом

    12. Поразрядная сортировка

    13. Блочная сорировка

    14. Внешняя сорировка

    15. Двоичные деревья поиска

    16. Декартовы деревья

    17. АВЛ-деревья

    18. Красно-черные деревья

    19. Расширяющиеся деревья

    20. Рандомизированные деревья

    21. B-деревья

    22. B+ деревья

    23. Деревья отрезков

    24. Таблицы с прямой адресацией

    25. Хэш-таблицы

    26. Хэш-функции

    27. Метод цепочек

    28. Различные виды хэширования

    29. Поиск в ширину

    30. Поиск в глубину

    31. Алгоритм Косарайю

    32. Топологическая сортировка

    33. Еще нужно что-то по графам. Пока не знаю что точно.

  12. Методологии SCRUM

    Больше она необходима для тим-лидов, вроде как. Это некий способ организации рабочего процесса

  • 1271
  • 19 июля 2020, 13:44
Регистрация

Регистрация

Уже зарегистрированы?
Быстрая регистрация через соцсети
Вход на сайт

Входите.
Открыто.

Еще не зарегистрированы?
 
Войти через соцсети
Забыли пароль?