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 844 days

Goal abandoned

The author does not write in the goal 4 years 4 months 7 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. Стать богом транзакций.

  • 1160
  • 18 October 2020, 12:07

Goal diary

60day
mxmilyasov16 Dec 2020, 18:42

Мысли и методы

Раньше в дороге по маршруту дом/работа/дом читал книгу, однако в последнее время переключился на подкасты. А потому поделюсь подкастом, который слушаю в последние дни — «Мысли и методы». Это подкаст авторства одного из создателей Хекслета — Давлеткалиева Рахима. Чувак не только с ясной головой, но и с крутым голосом.

Рекомендую к прослушиванию.

48day
mxmilyasov4 Dec 2020, 12:40

Завязываю дружбу с терминалом

Познакомился поближе с командной строкой. Закончил «Основы командной строки» на Hexlet. Очень беглое знакомство, конечно, но всяко лучше, чем ничего. Так что для первых шагов в bash рекомендую.

У меня стоит оболочка zsh, на которую накрутил ohmyzsh. Причем и на рабочую машину, и на домашний мак поставил. Круто, что можно кастомизировать терминал, добавить подсветку синтаксиса, иконки, шрифты, есть нормальный автокомплит, нет проблемы с потерей истории и прочее. На хабре можно почитать о плюсах zsh в сравнении с bash.

Теперь приступлю к книге «Операционная система UNIX». Буду неспешно читать, погружаться, просвещаться.

Вы знаете, почему у радуги семь цветов? Потому что в BTS семь мемберов.
41day
mxmilyasov27 Nov 2020, 18:06

Из объятий СИКПа пост

Шел 41 день... Еще 10 дней назад успешно закрыл испытательный срок. Теперь могу смело называться перспективным младшим разработчиком. Дальше – больше.

Из того, чем занимаюсь в свободное от работы время:

  • читаю «Код. Тайный язык информатики»;
  • медленно продвигаюсь по книге «Структура и интерпретация компьютерных программ», она же СИКП (SICP). Параллельно вот этот курс смотрю и вот здесь прогресс прохождения книги отмечаю.

Выучил язык Racket, это диалект Lisp, если чО. Оч простой язык, на котором можно писать очень сложные штуки. Но я пока сложного не пишу еще, конечно :). Нравится, что очень много приходится подумать. Прям постоянно.

Да-да-да, СИКП для современного разработчика вряд ли актуальная штука, но для того, чтобы стать лучше и круче варенного яйца — многие рекомендуют. Занимаюсь этим не потому что надо, а потому что могу и интересно. Люблю стенать по ночам и чувствовать себя тупым и безнадежным. Лол.

19day
mxmilyasov5 Nov 2020, 12:27

Оп! Этапы готовы.

Расписал этапы. Быть может еще их подкорректирую, но в целом получилось как планировал. Понятное дело, это не константы, со временем они будут дополняться, меняться, редактироваться. За основу брал эту карту. Есть еще вот такая таблица, сюда тоже полезно посматривать и что-то брать за ориентир в развитии.

В целом вышло немало тем, на охват которых уйдет дохуя часов. Но кто говорил, что стать крутым просто, верно? Со многим тут я знаком, многие темы для меня не новые, но хочется быть более крепким в своих знаниях.

Все этапы будут сопровождаться практикой: задачи, проекты, разбор примеров, собственные реализации. Мб создам проект на GH, куда буду выкладывать весь код, что будет появляться по мере продвижения. Не уверен в том, какой это формат будет: один проект или несколько; все таки темы довольно разные, хоть и собираются воедино, как пазл. Подумаю, короче. Если есть предложения — пишите, обмозгую.

Пошел работать, всем мир!

Всегда выбирайте самый трудный путь — на нем вы не встретите конкурентов.
18day
mxmilyasov4 Nov 2020, 19:11

Начало большого пути!

Я просыпаюсь и рад всем, кто подписался и высказал желание следить за моим прогрессом. Категорически вас приветствую!

Долго собирался с мыслями, да и времени для SP что-то все никак не удавалось найти. Но я сел, захерачил описание, тем самым положив начало этому паблику. Завтра начну расписывать пункты, а это значит — цель будет жить!

На ютюбе просят подписаться, поставить лайк, написать коммент и нажать колокольчик (заебали, не правда ли?). Тут же я просто буду рад любой активности. Добро пожаловать!

Что бы нам не подвалило — талант или технология, — мы всегда найдем способ все обосрать.

You can publish
your goal here

We can help you achieve it!

310 000

like-minded

tools

for an exciting achievement

Join us!
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?
Mr De
Monica
Илья
skitalec
Валентин
Алёна
Валентин
Валентин
Валентин
Freeland
Alina
Валентин
Freeland