Стоит ли смотреть в сторону PHP тому, кто решился только со второй попытки научиться прилично программировать?
Здравствуйте, друзья. С большой осторожностью касаюсь столь холиварной темы, но хочу рассказать свою небольшую историю о том, почему я, будучи уже далеко не в студенческом возрасте, решил всё-таки изучать программирование, и от чего же я собираюсь (о, боже) использовать для реализации своих намерений PHP. Буду рад получить от вас, коллеги по IT-индустрии, ценные советы и наставления.
Забегая вперёд скажу, что в комментариях к топику (кроме холиваров о языках) сказано много полезного. За что огромное спасибо хабровчанам.
Личный опыт
Моя карьера складывалась не самым типичным образом: я постоянно работал сразу в нескольких организациях и почти всегда на свободном графике. Почему меня всюду терпели? Похоже, что за универсальность: мог своими руками проложить сеть, настроить офисный сервер на Debian`е, мог в CorelDraw нарисовать аккуратную листовку, подготовив её к печати с цветоделением, мог обучать пожилых сотрудниц «входить в интернеты», мог нарисовать и сверстать шаблон для CMS и в одиночку за пару недель развернуть для компании небольшой сайт, мог чего-то по месту автоматизировать написанными на коленке программами, когда становилось ясно, что несколько рутинных операций в разы тормозят весь рабочий процесс отдела или конторы в целом. Мог и всё это делал.
Гордиться тут особо нечем, как вы понимаете, узкоспециализированным профессионалом ни в одной из затронутых отраслей я так и не стал, а стал этаким универсальным IT-многоборцем, человеком-окрестром среднего звена, который появляется и максимальную пользу приносит там, где в небольшом коллективе надо решить сразу много проблем. На жизнь, впрочем, вообще не жалуюсь, потому что некоторое время назад удалось запустить свою небольшую, но развивающуюся региональную веб-студию. И там я сам себе проджект-менеджер. Разрабатываем мы, в основном, на CMS Drupal и реже на фреймворке Yii, которые, как известно, на PHP писаны.
Сейчас мне, откровенно говоря, немного неловко управлять парой достойных программистов, чей JS и PHP код я понимаю лишь на 20%.
Университет и многие места работы научили меня основам трёх языков: C++, Java и PHP. Ну, как научили, я всего-то знаком с базовыми алгоритмическими конструкциями, могу отсортировать массив десятком методов (из-за курсовика, написанного по этой теме), понимаю как устроены стеки и очереди, на уровне концепций и учебных задач знаком с ООП. В общем, программированием владею как заурядный, но прилежный студент средненького технического вуза. Зато на практике почему-то меня всегда выручал именно PHP, притом заманивая своими самыми жжёными печеньками с тёмной стороны.
Я писал на PHP шелл-скрипты для коррекции длинных табличных отчётов через PHPExcel, парсил сайты без API сначала регулярками, а потом уж и с использованием phpQuery, быдлокодил (мешая вёрстку с логикой) веб-странички выводящие в интернет актуальные цены из локальной MSSQL-базы складской системы, мастерил всякие конвертеры из разряда «вот сюда вы неправильный файлик загрузите, а потом правильный по этой ссылочке скачаете и там уже сумма будет прописью». В общем, сколько бы я не заставлял себя использовать правильный язык и правильный подход при решении какой-то практической задачи, всегда всё скатывалось к тому, что решение, достаточно быстро и безобразно на уровне архитектуры (без всяких ООП и MVC), создавалось на PHP. При этом снаружи решение выглядело работоспособным и вело себя, увы, тоже как вполне работоспособное. Это всех устраивало, даже меня, потому что придаваться рефлексии и проклинать себя за несоблюдение эстетики — было некогда.
А вот сейчас я решил, что пора остепениться. Мне уже не стать профессиональным программистом, но до уровня junior`а с правильно поставленными мыслями и руками мне бы очень хотелось дойти. Немного времени у меня для самообучения есть, а, главное, я уже умею заставлять себя делать нечто ре-гу-ляр-но, что должно положительно сказаться на образовательном процессе. При этом, я так благодарен много раз выручавшему меня PHP, что хочу теперь по-правильному освоить именно его. Не верю я, что отсутствие строгой типизации, может мне испортить вторую попытку.
Но с чего заново начать, чтобы расти правильным программистом? Вот этого я — не знаю. По PHP я вообще не читал книжек, а учился по коду из статей с комментариями, разбросанному в сети. По Java помню книжку, которая мне понравилась — её автор Хабибуллин. Но эта книжка не учит стилю и правильным подходам, хотя и доступно знакомит с языком и платформой. И книжка не про PHP.
Что делать?
Какой диагноз поставите, коллеги? Можно ли вообще, по вашему мнению, переучиться программировать или, торопясь побыстрее решать рутинные задачи, я бесповоротно сам себя заклеймил на роль вечного «похапэшного быдлокодера»?
Какие первые шаги, по вашему, мне теперь стоило бы совершить: что почитать, какие практические задачи решить, какие табу себе поставить?
P.S. И, чтобы два раза не вставать, задам уж совсем, наверное, смешной вопрос: какую IDE вы посоветуете использовать? Я, стыдно признаться, все мегабайты своего кода написал в PSPad и протестировал в браузере кнопочкой F5, читая про ошибки и нотисы и возвращаясь снова их исправлять в редактор. А как и в чём отладку ведут правильные программисты?
P.P.S. Проще лечить больного по известным симптомам, поэтому, пожалуй, приведу несколько примеров, иллюстрирующих бардак в моей голове. Задам некоторые глупые вопросы, не дающие мне покоя:
1. Приведите минимальный пример, который иллюстрирует модель MVC, так чтобы были видны практические профиты от её применения?
2. Говорят: пишите безопасный код. Но каковы базовые правила? Я, например, понимаю, что если то, что пришло через GET или POST без проверки и обработки отправлять в SQL запрос, то быть беде. Но какие ещё бывают типовые косяки в безопасности, которых стоит сразу же бояться и не допускать как SQL-инъекций?
3. Я встречал несколько разных гайдов по форматированию кода. Они порой постулируют противоречивые вещи. Есть ли где-то хотя бы один русскоязычный гайд, где для каждого пункта приводилось бы пояснение в духе «надо оформлять вот так, потому что это решает такие-то проблемы»?
Промежуточные результаты
В комментариях Juraseg посоветовал «Совершенный код» Стива Макконнелла и сразу несколько человек посоветовали «PHP Objects, Patterns and Practices». К сожалению, английский мой слаб, поэтому буду читать перевод.
Cord дал ссылки на конкретные русскоязычные статьи и даже поделился собственной программой «занятий», по которой готовит свою команду.
Многие люто рекомендуют и поддерживают JetBrains PHP Storm в качестве самой правильной IDE для PHP.
Также многие пишут, что раз у меня и без идейно верного владения программированием всё сложилось, то нечего гневить судьбу, надо продолжать заниматься тем, чем занимаюсь, раскачивая менеджерские скиллы.
Ну, и, многие советуют таки забить на PHP и смотреть в сторону других языков, в основном, в сторону Python. На эту тему понравился философский комментарий от LayneBuchyn о том, что для того, чтобы толсто троллить объективно критиковать PHP, надо отлично знать PHP.
Сложный ли php
Я сейчас изучаю C#, и вот хотел спросить
1) сложный ли php в изучение ?
2) Что ваще пишут на php ?
3) В чем разница между php и JavaScritp ?
4) Есть ли будущее в php ?
Сложный поиск в PHP
Дело в том что например у меня есть файл .txt и в ньом все данные записаны по типа < .
Оптимизировать сложный запрос php+mysql
Ребят сложный запрос к базе(сильно грузит сервер). Сам по себе запрос не очень(не я его делал).
Сложный выбор между PHP 7 и Asp.Net Core
Здравствуйте! Вопрос скорее всего для тех кто программирует и на PHP и Asp.Net Core. Думаю не стоит.
сложный запрос (для меня сложный)
Есть таблица с продажами услуг от разных фирм, есть таблица с оплатой за предоставленные услуги.
1) нет.
2) В основном сайты. Но вообще, на что хватит ума, вплоть до всяких Devel Studio
3) PHP выполняется на сервере, JS у клиента
4) Есть, вопрос только в том, какое..
Сообщение от KOPOJI
1) нет.
2) В основном сайты. Но вообще, на что хватит ума, вплоть до всяких Devel Studio
3) PHP выполняется на сервере, JS у клиента
4) Есть, вопрос только в том, какое..
Сообщение от karandashbest
1. Если ты знаешь хотя бы какой то ЯП (уровня С++, C#) то все остальные ЯП учатся в 500 раз проще, в том числе php. А вообще я бы сказал что мне C# давался проще чем php, в php везде перед переменными надо ставить знак $, а еще эти запросы в базу данных, одним слово C# учить проще
2. php серверный ЯП, работает на стороне сервера, к примеру ты переходишь на страницу и при переходе на нее php определяет зарегистрированный ты пользователь или нет, если да, то показывает тебе одну страницу (для зарегистрированных пользователей), а ели нет, другую (для не зарегистрированных пользователей), а если быть более точным в терминологии не переходишь на страницу, а отправляешь запрос, и не показывает тебе одну страницу, а формирует (создает) соответствующую страницу.
3. JavaScritp это уже ЯП который работает на стороне клиента, допустим ты когда создавал эту тему, мог редактировать текст, делать жирным и т.д., это делается при помощи JavaScritp, сервер в этом ни как не участвует, вообще ответ что к чему можно найти тут — Подскажите по web программированию, что учить
4.Думаю ближайшие лет 20 он будет существовать и доминировать, хотя сейчас бурно развивается ASP.NET, если у тебя есть много времени, то попробуй лучше изучить ASP.NET, в нем как раз применяется C#. Правда по нему очень мало данных, особенно на русском языке, а все книги с пометкой «для профессионалов».
Кстати очень много сайтов крупных организаций, и в первую очередь в IT сфере написаны на ASP.NET.