1

Step 1

Расписать цель

2

Step 2

Погружаюсь в ООП

3

Step 3

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

4

Step 4

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

5

Step 5

Сети, протоколы, сервера

6

Step 6

Linux, командная строка

7

Step 7

Тестирование

8

Step 8

Базы данных

1

Step 1

Расписать цель

2

Step 2

Погружаюсь в ООП

3

Step 3

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

4

Step 4

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

5

Step 5

Сети, протоколы, сервера

6

Step 6

Linux, командная строка

7

Step 7

Тестирование

8

Step 8

Базы данных

18 October 2020 31 December 2022
The goal is overdue by 675 days

Goal abandoned

The author does not write in the goal 3 years 10 months 20 days

Goal author

mxmilyasov

Belarus, Минск

4 years old

General

Путь к Middle PHP Developer

Всем привет!

Меня зовут Максим, мне 27 и я хочу стать крутым разработчиком.

Желание попасть в IT появилось еще в 2015 году. Тогда я пошел на крутые курсы Java-разработки, но что-то пошло не так и я потерпел фиаско. Подробнее рассказывал тут.

Годы шли, а я все так же мысленно представлял себя работающим над интересным проектом в модном офисе за столом с двумя мониторами. В течение 5 лет я тусовался в IT-кругах: писал много текстов, администрировал проекты в E-commerce, занимался дизайном, самую малость верстал и даже примерил лычки проджект-менеджера. Но все это было не то, а серьезной разработкой даже не пахло. И вот в конце февраля 2020 года решил пойти на курсы. При выборе курсов оценивал перспективы, порог вхождения и количество вакансий. Конечно, выбрал PHP.

Курсы проходил онлайн, там отдельная история с запашком говна, о которой быть может напишу позже. Я ставил себе цель закончить обучение и начать стучаться в конторы к концу августа, но вышло чуть раньше. Бывший руководитель, узнав о моем стремлении стать PHP-разработчиком, предложил попробовать свои силы в тестовом задании на открытую в их новом проекте вакансию. Сдав успешно тестовое задание, меня благополучно приняли на испытательный срок в 3 месяца. Испытательный срок закрыл успешно, работаем дальше.

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

Для углубления своей экспертизы планирую:

  • подтянуть ООП;
  • постичь паттерны;
  • найти дзен в структурах данных и алгоритмах;
  • нормально так разобраться с сетями, протоколами, серверами и Linux;
  • полюбить писать тесты;
  • подтянуть SQL.

Что ж, буду херачить. По настроению буду делиться успехами, неудачами и размышлениями.

 Goal Accomplishment Criteria

Получил не менее 5 оферов на позицию Middle PHP Developer

 Personal resources

Тут будут ресурсы

  1. Расписать цель

    Как и многие, я люблю откладывать дела на потом. У меня есть намерение расписать эту цель на подробные этапы и подэтапы, о достижении которых я регулярно хочу отписывать.

    Однако для начала необходимо спланировать эти самые этапы. Разумеется, все в одночасье расписать не выйдет, многие шаги будут появляться по мере достижения цели, но есть некоторые базовые вещи, которые уже сегодня можно зафиксировать.

    Итак, первый пункт — расписать базовые этапы цели.

    1. Добавить описание.

    2. Добавить основные этапы.

    3. Определиться с форматом постов.

  2. Погружаюсь в ООП

    Каждый день я работаю с ООП, пишу на PHP под Symfony и не могу сказать, что я совсем профан в ООП. Однако иной раз могу тупить. Хочется разобраться настолько, чтобы не иметь ну совсем никаких вопросов. А потому планирую повторить то, что уже изучал – главы по ООП в книге «PHP 7 в подлиннике», а так же добавить в копилку прочитанного что-то из классики на выбор:

    • Б. Маейер, «Объектно-ориентированное конструирование программных систем»;
    • М. Фаулер, «Предметно-ориентированные языки программирования».

    Что посоветуете из этих двух, или быть может есть книги пиздатее? Буду рад любой инфе.

    1. PHP7 в подлиннике. Глава 22: Объекты и классы.

    2. PHP7 в подлиннике. Глава 23: Наследование.

    3. PHP7 в подлиннике. Глава 24: Интерфейсы и трейты.

    4. PHP7 в подлиннике. Глава 25: Пространство имен.

    5. PHP7 в подлиннике. Глава 26: Обработка ошибок и исключения.

    6. Проглотить что-то из классики.

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

    Следом за ООП идут, конечно, паттерны. Я уже сталкивался с некоторыми, зашитыми в ORM или в саму Symfony. Хорошо было бы получить более целостное понимание того, какие существуют, когда лучше использовать и глянуть на лучшие практики.

    В этот этап засуну некоторые статьи и мощную книгу от «Банды четырех», которая, по словам многих, должна быть в копилке у каждого — «Приемы объектно-ориентированного проектирования. Паттерны проектирования».

    А вот и статьи:

    1. Прочесть и разобрать статьи.

    2. Приемы объектно-ориентированного проектирования. Паттерны проектирования.

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

    Две большие темы, важность которых сложно переоценить. Я уже хорошенько так их нюхал, когда проходил курс GetJavaJob, но то было давно. Сильно глубоко копать не буду, так, вспомнить, понять, принять.

    Здесь будут несколько статей, курс от Яндекса, книга «Грокаем алгоритмы» и 12 глава «Совершенного кода» Стива Макконнелла.

    Ссылки на инфу по алгоритмам:

    1. Прочесть и разобрать статьи.

    2. Положить в копилку «Грокаем алгоритмы».

    3. Соверешенный код. Глава 12: Основные типы данных.

    4. Курс от Яндекса: Алгоритмы и структуры данных поиска.

  5. Сети, протоколы, сервера

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

    Тут будет несколько статей по HTTP, книга Э. Таненбаума и Уэзеролла «Компьютерные сети» (5 изд.), а так же платный курс Протокол HTTP (Hexlet).

    Статьи:

    1. Прочесть и разрбрать статьи.

    2. Осилить книгу «Компьютерные сети».

    3. Пройти курс по протоколу HTTP.

  6. Linux, командная строка

    Дома я разрабатываю на маке, окружение поднимаю в докере. А на работе у меня стоит Linux, на который я сел совсем недавно. Хочется больше понимать об этой ОС и научиться базовому администрированию.

    О линухе и командной строке в сети полно информации, но я выбрал одну книгу, которой мне должно быть достаточно. Все таки я не сисадмин и не DevOps.

    Книга: «Операционная система UNIX», Андрей Робачевский, Сергей Немнюгин, Ольга Стесик.

    Ссылки:

    1. Прочесть книгу Операционная система UNIX.

    2. Пройти курс Bash: Основы командной строки.

  7. Тестирование

    Почему-то тесты всегда лень писать. Да, я понимаю всю важность процесса тестирования, но вот как-то не пошло. Буду исправляться. Особо углубляться в тестирование не буду, никаких TDD, BDD и иже с ними. Просто поднять знания по PHPUnut и начать покрывать весь код тестами.

    Нужно поискать какой-то курс по тестированию. Мб это будет платный курс PHP: Автоматическое тестирование (Hexlet) или же что-то другое найду.

    1. Пройти курс по тестированию.

  8. Базы данных

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

    Даже не знаю с чего начать, но скорее всего возьму ту же стратегию, что и на GetJavaJob - буду проходить учебник Сергея Моисеенко. Там и учебник норм, и достаточно много задач. Я уже не помню сколько нужно было прорешать на курсе задач, но буду идти, пока не взорвется голова от сложности. Торопиться не буду, дело вдолгую.

    Сюда так же добавлю и следующие важные темы:

    • нормализация;
    • денормализация;
    • индексы;
    • оптимизация;
    • транзакционность.
    1. Пройти учебник.

    2. Решить 50 задач на SQL-ex.

    3. Решить 100 задач на SQL-ex.

    4. Решить 200 задач на SQL-ex.

    5. Разобраться с нормализацией и денормализацией.

    6. Индексы и с чем их едят.

    7. Оптимизация: оптимизируй меня полностью.

    8. Стать богом транзакций.

  • 1010
  • 18 October 2020, 12:07
Sign up

Signup

Уже зарегистрированы?
Quick sign-up through social networks.
Sign in

Sign in.
Allowed.

Not registered yet?
 
Log in through social networks
Forgot your password?