dr-mart

Гуманитарий начал изучать php. Какие я делаю шаги?

Наверное оффтоп конечно, но в целом думаю некоторое отношение к теме смартлаба имеет, ибо показывает как я пытаюсь решать проблему. Итак, смартлаб у нас весь состоит из php, и я к своему стыду совсем его не знаю. Это плохо и я решил досконально во всем разобраться. Разобраться мне надо и для того, чтобы делать самому какие-то простые формальные вещи (например править шаблоны) и лучше понимать программиста на уровне постановки задач.

Сначала я плотно засел за учебник PHP 7 в подлиннике. Вроде из того что есть на русском, по отзывам самое лучшее.
Гуманитарий начал изучать php. Какие я делаю шаги?
200 первых страниц пошло легко. Легко все делается и проверяется. Что нового я примерно узнал?
  • PHP довольно прост, книга идет намного легче, чем Изучаем C#  — вот там у меня реально кипел мозг
  • Однако в отличие от Стилмена, эта книга меньше практикум и больше нудный учебник
  • Я осознал что сервак и юзер общаются друг с другом через запросы по протоколу http
  • Понял что такое ip, порты, DNS, DNS сервер
  • Понял как устроен синтаксис PHP, как он связан с HTML
  • Стало понятно как писать программы, как создавать-заполнять-отправлять формы
  • Понял как делать вычисления 
Возможно книга легко читается именно после C#, так как PHP сам по себе несколько проще… Правда прочтя 200+страниц, стало скучновато… Посмотрел = впереди 466 страниц там всякой теоретической номенклатуры, без создания интересных практичных вещей. То есть чтобы создавать вещи, мне нужно знать как программа общается с СУБД, а это только на 666 странице. Иначе ты никак не сохранишь данные своих программ.

А мне бы хотелось читать-изучать и параллельно практиковать-внедрять, создавая какую-то веб-страницу на php.
Но это не сделать, так как книга начинается с теории, а ответ на вопрос — как это все запустить на серваке идут ровно в конце книги, на 1000 странице.
Для того, чтобы создать самый простой но полезный сайт в интернете, надо:
  1. выбрать какой-то виртуальный сервер. 
  2. развернуть на сервере PHP. Как это сделать я не знаю. Нужен алгоритм. Судя по тому, как это делается на localhost, это не так сложно.
  3. запустить сервер mySQL. Этого я тоже не умею. Я даже не понял пока как на локалке его запустить. А на виртуалке тем более. 
Как PHP общается с mySQL вроде понятно. Нагуглил типовые запросы. Но как развернуть SQL пока не ясно.

Итак, мне кажется, что все что мне нужно на начальном этапе, чтобы читать книгу и параллельно чото-кодить с пользой, описано в пунктах 1-3.
Насколько я понимаю, вещи там не совсем тривиальные, иначе бы не держали отдельно системных администраторов серверов.
В общем, думаю, вы мне поможете советами How to start:) Тем более я уверен среди вас есть много талантливых людей с соответствующей экспертизой, что приятно.

p.s.
  • я пока не знаю что такое nginx и apache
  • другие субд (не SQL) и языки (не PHP) просьба пока не предлагать
p.p.s.
  • кстати говоря, я думаю, если начать простого и изучить сначала простые вещи, вроде HTML и CSS, а потом постепенно усложнять, освоить JavaScript и PHP ты постепенно учишься разговаривать с машиной на ее языке и со временем и торговых роботов писать научишься. Я кстати знаю несколько передовых hft, которые начинали с того, что делали сайты за деньги.
p.p.p.s.
  • последним откровением для меня было то, что база данных, это не просто файл database.db а то, что это некий «сервер». Который чето оперирует с базами данных в соответствии с запросами, и которым ты управляешь командами извне. Мне стыдно в этом признаваться конечно, т.к. у нас по базам данных SQL на ФТК целый практический курс был, который вела Малыхина Галина Федоровна:) В голове вообще не осталось ничего)
★15
86 комментариев
у php порог входа ниже чем у C#, сейчас модно на python или ruby делать проектики ;) но php старается не отставать со своими фреймворками. по поводу установки на сервер mysql, php это довольно просто, вот тонко настроить тот же apache или nginx на highload уже другой вопрос, но если ты пользуешься хостингом, то тебе не обязательно все настраивать самому. Для тестовых целей можешь себе denwer поставить http://www.denwer.ru/ Там по ключ тебе все есть, просто кликаешь далее, далее. ;)
OSENY, у меня есть чувство что если я не освою эти вещи, то просру смартлаб рано или поздно
Тимофей Мартынов, главное не просрать жизнь…
avatar
Тимофей Мартынов, лучше выкинь эту книгу (ну или там если подпереть нада шкаф какой используй). Рекомендую найти где-нибудь O’Reilly PHP: Cookbook (или, если проблема с английским, то Ее перевод на русский).
avatar
Тимофей Мартынов, А как же турбины..?
avatar
Тимофей Мартынов, привет! Я давно занимаюсь разработкой, разрабатывал на С++, PHP, писал большие сложные системы, сам умею настраивать сервера под большую нагрузку, был опыт администрирования и развития 2х больших интернет проектов, но моя роль ограничивалась технической частью. Сейчас разрабатываю свой интернет проект. Есть предложение бартера. Я тебе доходчиво опишу про PHP, что такое сервер, какие они бывают, как они взаимодействуют с PHP, что такое ООП, как работает БД, какие они бывают и в чем разница, например тех же nosql от sql БД (а ещё есть inmemory, всякие memcached и т.д). А ты мне в обмен ответишь на ряд вопросов по маркетингу и развитию ресурса, как ты ищешь рекламодателей, какие подводные камни есть и т.д. Как тебе? Мой ресурс спортивной тематики, конкуренции с твоей стороны нет. В личку написать не хватает рейтинга
почему другие субд не предлагать? для высоконагруженных проектов чаще используют node.js и не надо ничего кэшировать
avatar
Алексей, я блин еще не дорос до того, чтобы осознать смысл ваших слов. Я знаю что смартлаб юзает SQL поэтому мне надо сначала понять как строить запросы
Тимофей Мартынов, я программист… делаю программы, мне не нужно знать как там процессор выполняет команды. мне гораздо важнее знать как свой говнокод я могу впарить клиенту.
avatar
skatino, космический фейспалм. Если ты не понимаешь основы архитектуры ОС и ЭВМ, то всю жизнь будешь писать говнокод. И это не имхо.
Да, для того же пехапе понимать разницу cpu|gpu не особо нужно, но качество кода все равно страдает.
avatar
b34rcava1ry, согласен
b34rcava1ry, если ты не понимаешь принципов жизни… то разницы не будет пишешь ты правильный код или нет
avatar
skatino, квалифицированный заказчик с экспертизой просто не купит говнокод, вот и остается только впаривать его лохам. А тут много ума не надо, просто совесть выключить и врать.
Ну и если ты пишешь хороший код и можешь четко и профессионально описать как он работает, тебя с руками оторвут на рынке.
avatar
b34rcava1ry, вы прямо как препод из 90-х. Сейчас важнее понимать высокоуровневые абстракции, чем архитектуру эвм.
Максим Виссарионович, ну тут да, у меня есть проф. деформация, пушто я на самом деле инженер интегральных схем. Но если хочешь могу тебе видео senior scientist'а из intel'а показать, где он тоже самое говорит, но от тоже скорее всего железячник пришедший в ПО.
Но если серьезно, я на этом форуме видел людей в заявляющих что роботов нужно писать на асме на уровне ядра (что бы это значило вообще?). Недавно вот человек утверждал что на определение тренда нужно от 10млрд процессорных операций (опять же не ясно это плохо или хорошо). Вот это все результат изучения программирования сверху вниз, а не снизу вверх.
avatar
роботов нужно писать на асме на уровне ядра
О да -))) А ничо, что основная часть ядра написана на Си и С++ -)?
Школоло детектед.

b34rcava1ry, если Вам начинают втирать такие вещи, то знайте перед вами либо троль, либо школьник, либо идиот.

avatar
b34rcava1ry, ты живых заказчиков видел?
мой говнокод покупают по ставке 5к за час.
причем объясняешь им все как есть… говоришь что плохо это и неправильно. а они покупают и покупают…
avatar
skatino, ну ты уже сам себе противоречишь. То тебе нужны советы как продавать, то оказывается у тебя отбоя от клиентов нет и платят тебе 5*8*20=800к. Чет я запутался…
avatar
b34rcava1ry, не… мне советы не нужны. 
и 8 часов в день я не работаю))
а в остальном все верно…
avatar
skatino, 
мне не нужно знать как там процессор выполняет команды.
так это не программер — это эникейщик…
avatar
parafin, не совсем верно… в последнее время программирования у меня все меньше и меньше. это потому что я умнее становлюсь..
сейчас в основном моя работа состоит в том, что объяснить своему клиенту, что он не прав и это ему не нужно..
а для эникея у меня другой человек есть
avatar
Тимофей Мартынов, сам осваиваю C# MVC, вот годное видео по основам запросов в SQL https://www.youtube.com/watch?v=AgInTqBSxlk в PHP запросы к базе данных генерируют соответствующий код в SQL а основы показаны в этом видео, если будут вопросы буду рад помочь
avatar
Алексей, смарт-лаб я думаю не в дата-центре хостится на 100500 серверах с кучей балансеров, так что :)

 PHP 7 в подлиннике худшая книга 
avatar
Скоро, почему?:) а какая лучшая?:)
Тимофей Мартынов, при чём тут Внешэкономбанк? по ссылке нажимал кто нибудь?
avatar
Lekrus, кстати, да.
avatar
Lekrus, спасибо, поправил
OSENY, по мне дак лучше альтернатива пивку, шашлам, любовным романом. как завещает илон маск, если человек не найдет свою нишу в эру роботизации, наступит коллапс. 
о мне дак лучше альтернатива пивку, шашлам, любовным романом

Игорь Полежаев, вот-вот, я тоже так думаю
и зачем начинать с 7, где большое количество малоиспользуемых функций и ООП
лучше начать с 4, откопать старинную книгу
avatar
OSENY, проблема в том, что я не до конца могу контролировать программиста)) плюс задач у нас уже столько, что 1 программист не справляется явно
по мне дак синергия решает. если есть две сферы типа ИТ и Финансов, то на стыке образуется финтех. так появляются торговые роботы, например ;)

так как PHP сам по себе несколько проще

Точней говоря, там порог входа ниже, как у любого динамического языка, но это не значит, что на нем проще программировать, как раз наоборот, C#(и его близнец — JAVA) создавались с целью совместной корпоративной разработки, и рассчитаны на массового программиста. Там большинство ошибок типизации ловятся на этапе компиляции, поэтому отладка там, как правило, намного проще. Но это сказывается на выразительных возможностях
То есть чтобы создавать вещи, мне нужно знать как программа общается с СУБД, а это только на 666 странице. Иначе ты никак не сохранишь данные своих программ

В принципе, это не обязательно. Вы можете сохранять данные программ в текстовых файлах и работать только через чтение/запись.
Я начинал с простейшего приложения, гостевой книги (можно делать параллельно с чтением книг) — 20 лет назад.

Чтобы не натыкаться на грабли, есть такой ресурс: http://www.phptherightway.com/ (там объясняют, например, почему надо использовать pdo драйвер вместо mysql).
На security надо обязательно внимание обратить, чтобы сайт не взломали.

Также есть такой список хороших ресурсов по php: https://github.com/ziadoz/awesome-php

Там есть ссылки на обучающие ресурсы, например такие: https://www.phpschool.io/
avatar
nk1, пхпрайтвэй точно норм идёт?
Тимофей Мартынов, скажем так, там много инфы полезной по поводу современного пхп, ее придется изучать так или иначе (но не всю).
И нет причин его не читать.
avatar
Тимофей, если задач настолько много, что один программист не справляется, и вы надумаете искать второго с опытом и в теме СЛ, обращайтесь :)
Вам правильно выше сказали, что 7ку зря начали изучать. СЛ наверняка вертится на 4 или 5 версии пыхи — с нее лучше и начать, без лишних нововаедений ООП и прочей ненужной обычным сайтам мути. А практику лучше всего брать с того же СЛ — попросить знающего развернуть локальную версию у вас на домашнем сервере и на ней практиковаться и с запросами и с шаблонами и с изменением кода пхп. Сделали — посмотрели результат, не заработало — переделали. Это лучший опыт практикума, который не даст ни одна книжка с бессмысленными примерами на уровне 1+2*3.
avatar
развернуть на сервере PHP. Как это сделать я не знаю. Нужен алгоритм. Судя по тому, как это делается на localhost, это не так сложно.

Гуглите denwer. Там простенький набор как раз для домашней веб-разработки.

Как PHP общается с mySQL вроде понятно. Нагуглил типовые запросы. 

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


Вообще, программирование хорошо тем, что оно модульное, и за десятилетия этих модулей в инете завались накопилось. Практически что угодно можно найти бесплатно, остаётся только собрать воедино и подпилить под себя.
avatar
Денис Г., денвер на пятом php. Достаточно виртуал бокс поставить, туда установить убунту и базовый пакет lampa, из коробки все сразу будет работать. Либо через докер сделать, тогда виртуал бокс не нужен.
avatar
0KDQuNC90LDRgg==, я денвер использовал лет 10 назад :) Но стоит ещё уточнить, какой именно пхп на сервере СЛ, далеко не всегда сервера держат прям последнюю версию lamp.
avatar
Денис Г., тут лив стрит, она под php 5 и спокойно будет работать на php 7. 
avatar
не понимаю почему народ накинулся на ООП, удобная штука вообще-то :)

Игорь Полежаев, Потому что его почти никто толком не понимает. Это бесит народ.
sortarray sortarray, ахах. ну просто те кто начинал с php наверное не понимают) в том же python у меня не возникло проблем с пониманием ;)
Игорь Полежаев, не знаю. Я за питонистами тоже особо продвинутого понимания не замечал. К примеру, многие примеры ООП-паттернов на википедии на питоне написаны без понимания этих паттернов, попросту ошибочные.
Вот например.

ru.wikipedia.org/wiki/%D0%9F%D0%BE%D1%81%D0%B5%D1%82%D0%B8%D1%82%D0%B5%D0%BB%D1%8C_(%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)#Python

Они там диспетчеризуют все через ветвления. Это профанация, вся суть извращена, там должна быть прямая диспетчеризация
sortarray sortarray, в питоне, к сожалению, куча хайпожоров. Услышали что гугл машинлернинг и бигдату на нем делает и давай учить, да к тому же еще и с конца.
avatar
Программирование хорошо развивает мозг и вообще. Но главное чтобы время было.
avatar
без обид но поздно. Очень жесткая конкуренция
avatar
книга судя по всему про версию 7.1
avatar
Брось это, Тимофей. Смарт-лаб — проект не того уровня, когда владельцу нужно в пхп. КМК лучше потратить это время на совершенствование навыков управления и доходчивого донесения своих мыслей до людей. Ты с нуля просто не сможешь достаточно быстро развиться до того уровня, когда сможешь делать реально что-то полезное, т.е. писать хороший грамотный код, пусть и на пхп.
avatar
если на твоем языке, то апач — это возможность создания виртуального сервера на твоем же компьютере. И обкатывать php на своем компьютере, а не в интернете.
есть известный инсталлятор — Denwer. Сразу все ставит. и apache и php и mysql парой нажатием клавиш
avatar
Андрей К, 
то апач — это возможность создания виртуального сервера на твоем же компьютере

Да не, апач — это просто сервер. Не важно на какой машине, локальной или удаленной. «на твоем же компьютере» любой сервак можно запускать, апач просто один из многих(но очень популярный)
sortarray sortarray, я знаю.
Вы тут все общаетесь с Тимофеем с высоты прожитых лет =)). 
avatar
Андрей К, а, понял, Вы на «его языке». Но боюсь, что такой «его язык» может ввести в заблуждение:)
Андрей К, но это не с телесуфлера читать. здесь реально прийдется пошевелить извилинами, чтобы что-то сотворить
avatar
Алексей, это точно
OSENY, у меня креативом весь таскменеджер переполнен. И них** не делается. Все висит
Хороший программист может рассчитывать на хорошую зарплату. Тимофей сразу «двух зайцев убивает». :)
avatar
COREz, до хорошего программиста мне ещё оч далеко
Тимофей Мартынов, чтобы «развернуть» sql установи прогу типа xampp, там в одном месте собран виртуальный сервер, sql и php. И посмотри 10 минутный ролик на ютубе как ее установить. Дальше сможешь играться с php видя сразу результаты в субд.
Александр Дорош, спасибо
  1. выбрать какой-то виртуальный сервер. 
  2. развернуть на сервере PHP. Как это сделать я не знаю. Нужен алгоритм. Судя по тому, как это делается на localhost, это не так сложно.
  3. запустить сервер mySQL. Этого я тоже не умею. Я даже не понял пока как на локалке его запустить. А на виртуалке тем более. 
скачай Денвер. Установи на комп и он сам всё развернет…
avatar
Max Xaser, попробую
Не ставьте Денвер, попробуйте лучше vagrant. можно быстро развернуть практически полный клон сервера. Можно вообще все с помощью puphpet  собрать, даже не разбираясь в администрировании сервера. С удовольствием обменяюсь знаниями
avatar
Нееет, только не ПхП!
lurkmore.to/Php
avatar
aMCa, Я не поклонник пыха, но по вашей ссылке такой феерический бред, что любому «пыхеру» до такого убожества мышления как до китая раком. Просто набор расхожих штампов и фантазий молокососов.
Вот это, например:

  • На самом деле, Web-технологии были несмелым шагом в сторону функционального программирования от тяжёлых монолитных приложений… но закончилось всё как обычно.

Это о чем вообще?
Хреновая книжка… Мне надо было запустить инет-магазин в 2005году… Купил «РНР для чайников»… За новогодные выходные 2 недели с нуля освоил РНР (общие принципы с практикой), сам скачал шаблон инет-магазина (оскоммерсе), настроил, посмотрел как работает на локалке…  www.denwer.ru/ — Там и локальный сервер и база данных и все основное для запуска и отладки сайтов РНР локально… Потом уже готовое решение с набитой базой загрузил на хостинг и работать!
avatar
Сергей, то, что нужно!
Через 10 лет в очередном Антикризисе: «Жаль, что нельзя вернуться в прошлое и вернуть впустую потраченное время на изучение C#, php и т.д.» :)
avatar
Тимофей, ты все верно делаешь. И твои усилия будет вознаграждены. Помимо книги рекомендую тебе еще пройти пару тройку курсов с coursera, edx. Есть даже российкие курсы такие как на openedu и stepik. Я думаю, что постигать азы программирования с ними будет веселей. В первую очередь из-за того, что после порции материала тебе дадут еще какое-нибудь задание на выполнение для закрепления материала. К тому же вместе с каждым курсом идет некоторое коммунити где сможешь задать более предметные вопросы.

Книгу, конечно не стоит забрасывать. Особенно, если будешь проходить курсы на русских сайтах. По своему опыту могу сказать, что курсы на той же курсере более замкнутые на себя. То есть, в принципе, тебе для прохожения курса может даже не потребоваться ничего кроме материалов этого курса, что в принципе не плохо, потому что не отвлекает внимание на всякие мелочи.
avatar
Coreman Ok, спасибо
Я за Denwer, он тебе и Apache и MySQL сам поднимет. Потом ставишь WordPress и несколько шаблонов какие понравятся, поковыряйся в исходниках, разберись что там и зачем. Потом для тренировки попробуй свой шаблон нарисовать и всякими плюшками и плагинами его обвешивай потихоньку.
avatar
учись студент
avatar

Кроме Denwer, можно OpenServer. Тоже все вместе апач, php, mysql.

habrahabr.ru/post/137388/

Тимофей, книги хорошо, но есть видео курсы с заданиями, есть интерактивные сайты где обучение + задание для проверки материала. 
Для изучения PHP ещё бы неплохо знать CSS3, HTML5
avatar
Николай, css и html я владею
Тимофей Мартынов, тогда посмотри курс PHP на сайте https://ru.hexlet.io там есть неплохой, что-то бесплатно, что-то платно. Если совесть позволяет смотреть пиратский контент с платных курсов, то можно найти неплохие курсы от GeekBrains, LoftShool в свободном доступе. 
Либо вот тут неплохая подборка https://www.youtube.com/playlist?list=PLY4rE9dstrJzujrObAWJGH2kCOLfRExLq   
avatar
думаю, что для продвижения данного сайта как главного вашего актива нужны другие методы и прибамбасы — например качественный контент, а программирование… оно полезно, но только если это твой заработок, а как хобби на здоровье конечно, но пустое
avatar
Тимофей, прочитал ваш пост до конца. Видел, что вы писали о том, что другие языки не предлагать и все же предложу javascript.
Под бекенд nodejs освойте, под фронтенд рекомендую react+redux.
Так же обязательно освойте npm, git.
Из баз данных mysql (sql), mongodb (nosql)
Поверьте разработчику с более чем 15 летним опытом программирования на php и на куче других языков. Не тратьте время на этот мусор.
Порог входа в php ниже плинтуса, но это очень мнимое преимущество. В php натянули кучу приемов и парадигм из разных языков, они не свойственны пхп и после того как начинаешь изучать другие языки (откуда позаимствовали подходы и парадигмы) становится понятно, насколько это реализовано через жопу в пхп.
Освоить пхп честно говоря большого ума ненужно, но это да же не пол дела. Дальше начнется освоения фреймворков, библиотек, подходов организации кода, подходов организации проектов, ...
Большинство из этих моментов были привнесены в пхп из вне и реализованы в пхп очень инородно и криво. 
В общем крайне рекомендую обратить внимание на какой то другой язык, на пример как было сказано кем то выше ruby или python. На худой конец javascript.

Слез с пхп не так давно и перешел полностью на javascript. Не могу нарадоваться. Само собой javascript возможно не лучший из ЯП, но в данный момент крайне распространен как на фронтенде, так и на бекенде.

avatar

теги блога Тимофей Мартынов

....все тэги



UPDONW
Новый дизайн