Тимофей Мартынов
Тимофей Мартынов личный блог
15 июля 2017, 22:37

Гуманитарий начал изучать 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 на ФТК целый практический курс был, который вела Малыхина Галина Федоровна:) В голове вообще не осталось ничего)
86 Комментариев
  • Игорь Полежаев
    15 июля 2017, 22:45
    у php порог входа ниже чем у C#, сейчас модно на python или ruby делать проектики ;) но php старается не отставать со своими фреймворками. по поводу установки на сервер mysql, php это довольно просто, вот тонко настроить тот же apache или nginx на highload уже другой вопрос, но если ты пользуешься хостингом, то тебе не обязательно все настраивать самому. Для тестовых целей можешь себе denwer поставить http://www.denwer.ru/ Там по ключ тебе все есть, просто кликаешь далее, далее. ;)
  • Алексей
    15 июля 2017, 22:54
    почему другие субд не предлагать? для высоконагруженных проектов чаще используют node.js и не надо ничего кэшировать
      • skatino
        15 июля 2017, 23:15
        Тимофей Мартынов, я программист… делаю программы, мне не нужно знать как там процессор выполняет команды. мне гораздо важнее знать как свой говнокод я могу впарить клиенту.
        • b34rcava1ry
          16 июля 2017, 00:12
          skatino, космический фейспалм. Если ты не понимаешь основы архитектуры ОС и ЭВМ, то всю жизнь будешь писать говнокод. И это не имхо.
          Да, для того же пехапе понимать разницу cpu|gpu не особо нужно, но качество кода все равно страдает.
          • skatino
            16 июля 2017, 09:02
            b34rcava1ry, если ты не понимаешь принципов жизни… то разницы не будет пишешь ты правильный код или нет
            • b34rcava1ry
              16 июля 2017, 11:18
              skatino, квалифицированный заказчик с экспертизой просто не купит говнокод, вот и остается только впаривать его лохам. А тут много ума не надо, просто совесть выключить и врать.
              Ну и если ты пишешь хороший код и можешь четко и профессионально описать как он работает, тебя с руками оторвут на рынке.
              • b34rcava1ry, вы прямо как препод из 90-х. Сейчас важнее понимать высокоуровневые абстракции, чем архитектуру эвм.
                • b34rcava1ry
                  16 июля 2017, 14:25
                  Максим Виссарионович, ну тут да, у меня есть проф. деформация, пушто я на самом деле инженер интегральных схем. Но если хочешь могу тебе видео senior scientist'а из intel'а показать, где он тоже самое говорит, но от тоже скорее всего железячник пришедший в ПО.
                  Но если серьезно, я на этом форуме видел людей в заявляющих что роботов нужно писать на асме на уровне ядра (что бы это значило вообще?). Недавно вот человек утверждал что на определение тренда нужно от 10млрд процессорных операций (опять же не ясно это плохо или хорошо). Вот это все результат изучения программирования сверху вниз, а не снизу вверх.
                  • reactorx
                    04 августа 2017, 14:40
                    роботов нужно писать на асме на уровне ядра
                    О да -))) А ничо, что основная часть ядра написана на Си и С++ -)?
                    Школоло детектед.

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

              • skatino
                16 июля 2017, 22:16
                b34rcava1ry, ты живых заказчиков видел?
                мой говнокод покупают по ставке 5к за час.
                причем объясняешь им все как есть… говоришь что плохо это и неправильно. а они покупают и покупают…
                • b34rcava1ry
                  16 июля 2017, 22:25
                  skatino, ну ты уже сам себе противоречишь. То тебе нужны советы как продавать, то оказывается у тебя отбоя от клиентов нет и платят тебе 5*8*20=800к. Чет я запутался…
                  • skatino
                    16 июля 2017, 22:38
                    b34rcava1ry, не… мне советы не нужны. 
                    и 8 часов в день я не работаю))
                    а в остальном все верно…
        • paraFIN
          16 июля 2017, 12:38
          skatino, 
          мне не нужно знать как там процессор выполняет команды.
          так это не программер — это эникейщик…
          • skatino
            16 июля 2017, 22:18
            parafin, не совсем верно… в последнее время программирования у меня все меньше и меньше. это потому что я умнее становлюсь..
            сейчас в основном моя работа состоит в том, что объяснить своему клиенту, что он не прав и это ему не нужно..
            а для эникея у меня другой человек есть
      • Abgar Sargsyan
        16 июля 2017, 09:50
        Тимофей Мартынов, сам осваиваю C# MVC, вот годное видео по основам запросов в SQL https://www.youtube.com/watch?v=AgInTqBSxlk в PHP запросы к базе данных генерируют соответствующий код в SQL а основы показаны в этом видео, если будут вопросы буду рад помочь
    • Игорь Полежаев
      15 июля 2017, 23:00
      Алексей, смарт-лаб я думаю не в дата-центре хостится на 100500 серверах с кучей балансеров, так что :)

  • ау22234
    15 июля 2017, 22:55
     PHP 7 в подлиннике худшая книга 
  • Алексей
    15 июля 2017, 23:00
    и зачем начинать с 7, где большое количество малоиспользуемых функций и ООП
    лучше начать с 4, откопать старинную книгу
  • Игорь Полежаев
    15 июля 2017, 23:06
    по мне дак синергия решает. если есть две сферы типа ИТ и Финансов, то на стыке образуется финтех. так появляются торговые роботы, например ;)

  • sortarray sortarray
    15 июля 2017, 23:09
    так как PHP сам по себе несколько проще

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

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

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

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

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

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

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

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


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

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

          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

          Они там диспетчеризуют все через ветвления. Это профанация, вся суть извращена, там должна быть прямая диспетчеризация
          • b34rcava1ry
            16 июля 2017, 00:17
            sortarray sortarray, в питоне, к сожалению, куча хайпожоров. Услышали что гугл машинлернинг и бигдату на нем делает и давай учить, да к тому же еще и с конца.
  • SonOfKiyosaki
    15 июля 2017, 23:31
    Программирование хорошо развивает мозг и вообще. Но главное чтобы время было.
  • Sergey Dementyev
    15 июля 2017, 23:48
    без обид но поздно. Очень жесткая конкуренция
  • Алексей
    15 июля 2017, 23:51
    книга судя по всему про версию 7.1
  • Александр
    16 июля 2017, 00:09
    Брось это, Тимофей. Смарт-лаб — проект не того уровня, когда владельцу нужно в пхп. КМК лучше потратить это время на совершенствование навыков управления и доходчивого донесения своих мыслей до людей. Ты с нуля просто не сможешь достаточно быстро развиться до того уровня, когда сможешь делать реально что-то полезное, т.е. писать хороший грамотный код, пусть и на пхп.
  • Андрей К
    16 июля 2017, 00:24
    если на твоем языке, то апач — это возможность создания виртуального сервера на твоем же компьютере. И обкатывать php на своем компьютере, а не в интернете.
    есть известный инсталлятор — Denwer. Сразу все ставит. и apache и php и mysql парой нажатием клавиш
    • sortarray sortarray
      16 июля 2017, 00:32
      Андрей К, 
      то апач — это возможность создания виртуального сервера на твоем же компьютере

      Да не, апач — это просто сервер. Не важно на какой машине, локальной или удаленной. «на твоем же компьютере» любой сервак можно запускать, апач просто один из многих(но очень популярный)
      • Андрей К
        16 июля 2017, 00:34
        sortarray sortarray, я знаю.
        Вы тут все общаетесь с Тимофеем с высоты прожитых лет =)). 
        • sortarray sortarray
          16 июля 2017, 00:36
          Андрей К, а, понял, Вы на «его языке». Но боюсь, что такой «его язык» может ввести в заблуждение:)
        • Алексей
          16 июля 2017, 00:40
          Андрей К, но это не с телесуфлера читать. здесь реально прийдется пошевелить извилинами, чтобы что-то сотворить
  • COREz
    16 июля 2017, 01:13
    Хороший программист может рассчитывать на хорошую зарплату. Тимофей сразу «двух зайцев убивает». :)
      • Александр Дорош
        16 июля 2017, 11:33
        Тимофей Мартынов, чтобы «развернуть» sql установи прогу типа xampp, там в одном месте собран виртуальный сервер, sql и php. И посмотри 10 минутный ролик на ютубе как ее установить. Дальше сможешь играться с php видя сразу результаты в субд.
  • Max Xaser
    16 июля 2017, 01:55
    1. выбрать какой-то виртуальный сервер. 
    2. развернуть на сервере PHP. Как это сделать я не знаю. Нужен алгоритм. Судя по тому, как это делается на localhost, это не так сложно.
    3. запустить сервер mySQL. Этого я тоже не умею. Я даже не понял пока как на локалке его запустить. А на виртуалке тем более. 
    скачай Денвер. Установи на комп и он сам всё развернет…
  • R🐼G
    16 июля 2017, 02:43
    Не ставьте Денвер, попробуйте лучше vagrant. можно быстро развернуть практически полный клон сервера. Можно вообще все с помощью puphpet  собрать, даже не разбираясь в администрировании сервера. С удовольствием обменяюсь знаниями
  • aMCa
    16 июля 2017, 07:23
    Нееет, только не ПхП!
    lurkmore.to/Php
    • sortarray sortarray
      16 июля 2017, 08:57
      aMCa, Я не поклонник пыха, но по вашей ссылке такой феерический бред, что любому «пыхеру» до такого убожества мышления как до китая раком. Просто набор расхожих штампов и фантазий молокососов.
      Вот это, например:

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

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

    Книгу, конечно не стоит забрасывать. Особенно, если будешь проходить курсы на русских сайтах. По своему опыту могу сказать, что курсы на той же курсере более замкнутые на себя. То есть, в принципе, тебе для прохожения курса может даже не потребоваться ничего кроме материалов этого курса, что в принципе не плохо, потому что не отвлекает внимание на всякие мелочи.
  • poolrzn
    16 июля 2017, 16:37
    Я за Denwer, он тебе и Apache и MySQL сам поднимет. Потом ставишь WordPress и несколько шаблонов какие понравятся, поковыряйся в исходниках, разберись что там и зачем. Потом для тренировки попробуй свой шаблон нарисовать и всякими плюшками и плагинами его обвешивай потихоньку.
  • Jack Blck
    16 июля 2017, 23:15
    учись студент
  • Кроме Denwer, можно OpenServer. Тоже все вместе апач, php, mysql.

    habrahabr.ru/post/137388/

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

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

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн