finikoviy

finikoviy

На Пикабу
200 рейтинг 0 подписчиков 3 подписки 3 поста 2 в горячем
2

Когда "Я знаю PHP" перестало означать, что ты знаешь PHP⁠⁠

Лет десять назад фраза «я знаю PHP» звучала довольно понятно. Можешь принять форму, сходить в MySQL, что-нибудь записать, что-нибудь вывести, натянуть шаблон на Wordpress, где-то поправить чужой код - всё, уже можно было пытаться зарабатывать. Иногда код выглядел так, что его лучше было никому не показывать, но главное - сайт работал и заказчик был доволен.

Сейчас открываешь описание какой-нибудь вполне обычной PHP-вакансии и начинается веселье. PHP, понятно. Потом MySQL или PostgreSQL. Git. Redis. Docker. Symfony или Laravel. Иногда RabbitMQ. REST. Linux. Тесты. И где-то после двадцатой строчки уже хочется спросить: а сам PHP-то нам ещё понадобится или мы его чисто по старой памяти в название вакансии добавили?

Но чем дольше на это смотришь, тем больше понимаешь, что ничего особо странного тут нет. Сам PHP действительно стал чуть ли не самой простой частью работы. Написать $user = User::find($id) большого ума не надо. Веселье начинается, когда этот запрос внезапно выполняется 800 раз на одной странице, Redis решил прилечь, очередь накопила 300 тысяч сообщений, а контейнер в проде почему-то вообще не тот, который ты вчера собирал.

И вот тут заканчивается «я выучил PHP» и начинается обычная веб-разработка. Потому что сайту пофиг, насколько красиво ты знаешь синтаксис языка. Он либо работает, либо клиент уже пишет в чат «У НАС ВСЁ ЛЕЖИТ!!!», обязательно капсом и желательно через семь минут после деплоя.

Из интереса полез посмотреть, что сейчас реально чаще пишут в требованиях. Картина примерно такая же: PHP, MySQL, Git, Symfony, PostgreSQL, Redis, RabbitMQ, Docker, Laravel, SQL. Если кому интересно, вот здесь есть сама свежая выборка по вакансиям. Ничего неожиданного, но хорошо видно, что современный PHP-разработчик - это уже давно не мужик, который сидит в index.php и через mysql_query() собирает интернет-магазин.

Особенно весело новичкам. Человек только разобрался с массивами и классами, приходит смотреть вакансии, а там на него вываливают Docker, очереди, кеши, фреймворк, SQL, Git и ещё половину зоопарка. И первая мысль вполне логичная: «Да идите вы нахрен, я вообще-то PHP пришёл писать». Проблема только в том, что без всего этого PHP сейчас особо негде жить. Ну кроме совсем древнего проекта, который лучше лишний раз не трогать, потому что последний разработчик уволился в 2019 году и унёс знание бизнес-логики с собой.

При этом пытаться сначала выучить вообще всё тоже идея так себе. Я бы шёл от обратного. Сделал простую хрень на чистом PHP. Стало неудобно - взял Laravel или Symfony. База начала тормозить - полез разбираться с индексами и запросами. Надо что-то кешировать - вот тебе Redis. Появилась долгая задача - здравствуй очередь. Захотелось, чтобы у тебя и у коллеги оно запускалось одинаково - добро пожаловать в Docker. Когда технология решает уже существующую проблему, она почему-то запоминается в сто раз лучше, чем когда просто прошёл очередной видос «Redis за 40 минут».

И наверное поэтому меня немного забавляют споры «стоит ли учить PHP в 2026». Сам по себе вопрос какой-то кривой. Можно выучить PHP и потом вообще ничего на нём толком не уметь сделать. А можно знать язык довольно средне, но нормально понимать HTTP, базы, кеш, очереди, Linux и как вообще живёт приложение - и от такого человека пользы будет сильно больше.

Короче, PHP никуда особо не делся. Просто раньше он был почти всей профессией, а теперь стал одним из инструментов в довольно большом ящике. И, если честно, по-моему так даже интереснее. Хотя иногда открываешь старый проект, видишь HTML, SQL и PHP в одном файле на 1700 строк и на секунду начинаешь скучать по временам, когда всё было проще. Потом закрываешь файл и перестаёшь.

Показать полностью
68

Когда уже можно сказать "Я знаю Питон" а не "я прошёл курс"?⁠⁠

Периодически вижу одно и то же: «Выучил Python, что дальше?» Начинаешь выяснять, что значит «выучил». Ну переменные знаю, циклы знаю, функции знаю, классы проходил. Списки, словари, кортежи - всё было. Отлично. Открываем пустой файл и говорим: ну сделай теперь хоть что-нибудь сам. И тут всё, приехали. Белый экран смотрит на тебя, ты смотришь на белый экран.

Python в этом плане вообще подлый язык. Он слишком быстро создаёт ощущение, что ты уже программист. print() написал - работает. Цикл написал - работает. Функцию сделал - вообще красавец. А потом пытаешься написать не очередное «угадай число от 1 до 100», а какую-нибудь нормальную фигню для себя, и внезапно оказывается, что сам Python был самой простой частью.

Допустим, захотел сделать скрипт, который раз в час дёргает API, смотрит, что там поменялось, и кидает тебе сообщение. Казалось бы - ну что там писать. А потом полезли запросы, JSON, авторизация, база, даты, таймауты, логирование. API один раз вместо нормального ответа прислал какую-то хрень. Интернет моргнул. База залочилась. Скрипт ночью сдох. И вот ты в три часа дня следующего дня смотришь лог и пытаешься понять, почему эта зараза 14 часов ничего не делала и даже не удосужилась нормально упасть.

Вот где, по-моему, и начинается настоящее обучение. Не когда ты знаешь, что у списка есть .append(), а когда перед тобой какая-то непонятная хрень и ты способен её постепенно расковырять. Загуглил. Документацию прочитал. Попробовал. Сломал. Получил traceback на пол-экрана. Матернулся. Прочитал traceback ещё раз. Оказалось, что там буквально написано, где ты обосрался.

При этом если открыть вакансии, там тоже довольно быстро становится понятно, что одного «я знаю Python» всем как-то маловато. Полез смотреть ради интереса - даже в обычной выборке вакансий рядом с Python довольно быстро появляются базы, Git, API, Docker, фреймворки, тесты и ещё вагон всякого добра. То есть работодателю почему-то недостаточно знать, что ты умеешь написать красивый list comprehension. Вот сволочи.

Поэтому после первого курса я бы вообще не шёл на второй курс «Python PRO SUPER MEGA DEVELOPER». Лучше сделать какую-нибудь свою бесполезную фигню от начала до конца. Бота, парсер цен, сортировщик фоток, счётчик расходов, программу, которая переименовывает 300 файлов, потому что руками лень. Вообще неважно. Главное - чтобы не было видео, где мужик впереди тебя пишет ровно тот же самый код.

И пусть сначала это будет один файл на 500 строк. Плевать. Пусть там будет if внутри if, внутри ещё одного if, переменная a2_final_new и функция на 80 строк. Говнокод, который ты написал сам и понимаешь, полезнее идеального проекта, который ты перепечатал за чуваком с YouTube. Потом сам же задолбаешься искать нужный кусок - поймёшь, зачем нужны модули. Скопируешь одну функцию пятый раз - поймёшь, зачем её вынести отдельно. Поломаешь уже работающий код - внезапно появится интерес к тестам.

Меня вообще всегда веселит обучение в обратную сторону. Сегодня изучаем декораторы. Зачем? Ну потому что глава 14. Завтра генераторы. Послезавтра какой-нибудь __slots__. Человек всё это честно конспектирует, а потом ему надо прочитать JSON из файла, и он идёт гуглить «python open json example». Не потому что тупой. Просто мозг довольно плохо хранит инструменты, которыми ни разу не пришлось реально воспользоваться.

Поэтому для меня «знает Python» - это вообще не человек, который на память расскажет разницу между list, tuple и set. Это человек, которому можно сказать: вот задача, вот документация, интернет не отключаем - иди сделай. И он не обязательно сделает красиво. Может сначала написать лютую дичь. Но через пару часов оно хотя бы заработает, а когда сломается - он не удалит Python и не уйдёт выращивать картошку.

Вот и интересно: что бы вы дали сделать человеку, который говорит «Python знаю», чтобы минут за 20-30 стало понятно - реально знает или просто курс досмотрел до конца?

Показать полностью
33

А Linux вообще обязательно ставить к себе домой, если хочешь с ним работать?⁠⁠

После последних постов про Linux на десктопе подумал вот о какой штуке. Почему-то когда человек говорит, что хочет изучить Linux для работы, ему довольно быстро советуют снести винду, поставить Linux основной системой и начать страдать по-настоящему. Мол, пока не пользуешься им каждый день - ничего не выучишь. И вот с этим я не совсем согласен.

Домашний Linux и рабочий Linux - всё-таки две довольно разные истории. Дома тебе нужно, чтобы запускалась игра, работал привычный софт, определялся принтер, не отваливался Bluetooth и вечером не приходилось читать форум из 2017 года потому, что после обновления пропал звук. На работе всем в общем-то плевать, на какой системе ты вечером смотришь YouTube.

Там внезапно выясняется, что надо понять, почему не поднялся сервис, посмотреть логи, поправить права, разобраться с сетью, найти забитый диск, настроить SSH, сделать бэкап и не положить при этом что-нибудь ещё. И вот это уже действительно знание Linux. А не сам факт наличия пингвина на домашнем ноутбуке.

Ради интереса посмотрел, насколько Linux вообще пересекается с обычным системным администрированием сейчас. Получилась забавная картина: среди вакансий системных администраторов Windows Server явно указан 269 раз, Linux - 255. Почти один в один. Цифры отсюда, выборка по вакансиям HH. То есть работодатели, кажется, давно решили великий вопрос «Windows или Linux?» наиболее скучным способом. Им нужны оба.

Что, в общем-то, совершенно логично. Где-то AD и куча виндовых рабочих мест. Где-то Linux-сервера. Где-то виртуалки. Где-то старое добро, которое никто не трогает последние восемь лет, потому что человек, который его настраивал, уже уволился, а оно всё ещё работает. И новому админу вряд ли скажут: - Так, сначала покажи нам свой домашний Arch. Скорее дадут очередную железку или виртуалку со словами: - Вот это почему-то не работает. Разберись.

Поэтому человеку, который хочет именно научиться, я бы вообще не советовал начинать с мучительного выбора между Ubuntu, Debian, Fedora, Mint и ещё двадцатью дистрибутивами. Поставил виртуалку - и вперёд. Поднять nginx. Зайти по SSH. Создать пользователя и потом самому же сломать ему права. Посмотреть, куда сервис пишет логи. Сделать свой systemd unit.

Забить диск. Посмотреть, что начало умирать. Настроить сеть криво. Починить сеть. Сделать бэкап. Удалить что-нибудь не то и попробовать восстановить. После пары таких вечеров Linux узнаешь гораздо лучше, чем после месяца браузера, Telegram и Steam под Ubuntu.

А уже если понравилось - тогда почему бы и не поставить его основной системой. И тут, кстати, как раз начинается совсем другой разговор. Потому что Linux как рабочая среда для админа я понимаю прекрасно. Linux как лучший десктоп вообще для любого человека - уже намного меньше.

И это не потому, что Linux плохой. Просто ОС - инструмент. Если человеку под его задачи удобнее Windows - пусть будет Windows. Если Linux - отлично. Если macOS - ну, бывает и такое. Странно, когда выбор операционной системы превращается чуть ли не в характеристику человека.

Показать полностью
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества