SHARE
TWEET

Untitled

a guest Jun 14th, 2016 299 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Добро пожаловать в наш уютный тред. Тут мы изучаем язык PHP (а также JS/CSS/HTML/SQL), решаем задачки и даже делаем простые сайты! Зачем? Кто-то хочет научиться программировать, кто-то - делать сайты, кто-то - просто размять мозги и заняться чем-то полезным.
  2.  
  3. Это не чат! Пожалуйста не флудите, а старайтесь постить только вопросы, решения и ответы. Сколько лет вы не можете найти работу никому не интересно. Высказывайтесь одним большим постом а не цепочкой мелких
  4.  
  5. Это тред для начинающих. Не написал за свою жизнь ни одной программы? Ты наш человек.
  6.  
  7. Устанавливать пока что ничего не требуется, разве что редактор кода вроде Sublime Text 3, Notepad++, Netbeans PHP или PhpStorm (с ним будет удобнее).
  8.  
  9. Предыдущий тред был тут: >>729430 (OP)
  10.  
  11. Что самое главное для программиста? Умение аккуратно оформлять код (читай второй пост прежде чем писать код).
  12.  
  13. Почему PHP? Потому что фейсбук и википедия на нем написаны, и вакансий море, и учить легко.
  14.  
  15. Правила: ведем себя воспитанно, помогаем новичкам, постим ссылки на решения задачек, ОП их проверяет и дает советы и замечания. ОП заходит редко, где-то раз в 2-3 дня, у него мало времени, не жди его, решай задачки дальше. ОП отвечает на все вопросы по его задачкам и учебнику, а вот насчет каких-то других вещей - только если останется время. Но в треде немало анонимных экспертов разного уровня, так что вряд ли вопрос останется без ответа.
  16.  
  17. У нас есть уроки по основам PHP, они собраны и выложены по адресу http://archive-ipq-co.narod.ru/ Это учебник для изучающих с нуля, то есть если ты вообще ничего не знаешь, то надо начать с него. Он простой и понятный (по крайней мере в начале). Там есть задачи, их надо решать обязательно (чтобы стать программистом, надо писать код — иначе никак). Пости ссылки на решения в тред, мы их проверим, напишем замечания и дадим советы по улучшению.
  18.  
  19. Если не знаешь как решать, запости код, напиши в каком месте остановился и попроси подсказку.
  20.  
  21. Ты прошел весь учебник? Молодец, но это были лишь основы языка PHP, этого недостаточно. Вот что в идеале надо изучить еще: ООП, как работает веб-сервер, HTML/CSS, SQL, PDO, работа с таблицами в БД, работа с формами, MVC, git, composer, JS, фреймворки, автоматизированное тестирование.
  22.  
  23. Надо переходить к более серьезным задачкам, которые научат тебя всему этому.
  24.  
  25. - для начала прочти урок https://github.com/codedokode/pasta/blob/master/soft/web-server.md
  26. - установи Апач + PHP (советы выше и ниже) и читай туториал http://php.net/manual/ru/tutorial.php
  27. - Учи HTML/CSS и SQL, PDO, хотя бы основы
  28. - Далее простая, но полезная задача сделать список студентов, в ней много полезных советов: https://github.com/codedokode/pasta/blob/master/student-list.md
  29. - Более сложная задача сделать файлообменник на микрофреймворке Slim: https://gist.github.com/codedokode/9424217
  30. - Еще более сложная и долгая задача на Yii/Yii2: https://gist.github.com/codedokode/8733007
  31. - После нее можно изучать автоматизированное тестирование
  32. - Если ты все решил, переходи к Symfony 2/Doctrine 2
  33. - Почитать про паттерны http://designpatternsphp.readthedocs.org/ru/latest/README.html (если ты не изучил ни одного фреймворка, то это будет рановато), тут с примерами кода http://designpatternsphp.readthedocs.org/ru/latest/README.html . Имей в виду что без примеров использования их учить бесполезно - не поймешь, хочешь увидеть примеры использования паттернов - ковыряй исходники Симфони, например Symfony Forms. Не заучивай паттерны - смотри код и думай, зачем тут они использованы.
  34.  
  35. Чтобы делать эти задания, тебе надо установить Апач + PHP (можно заодно сразу и MySQL) на компьютер. Вот полезные инструкции:
  36.  
  37. https://github.com/codedokode/pasta/blob/master/soft/php-install.md
  38. https://github.com/codedokode/pasta/blob/master/soft/apache-install.md
  39.  
  40. Может тебе понадобится пользоваться командной строкой, вот гайд https://github.com/codedokode/pasta/blob/master/soft/cli.md
  41.  
  42. Решения задач лучше показать мне, особенно на ООП,так как сам ты вряд ли увидишь все ошибки. Пости свой код на гитхаб и вкидывай ссылку в тред по мере решения. Я прокомментирую и укажу на ошибки.
  43.  
  44. Также, у нас есть задачи которые позволят тебе изучить или подтянуть до нормального уровня знания JS/HTML/CSS/SQL. Решай их параллельно с задачами выше.
  45.  
  46. - HTML/CSS: https://github.com/codedokode/pasta/blob/master/html/html.md
  47. - JS: https://gist.github.com/codedokode/ce30e7a036f18f416ae0
  48. - SPA (сложно): https://github.com/codedokode/pasta/blob/master/js/spa.md
  49. - Проверялка решений на JS: http://dkab.github.io/jasmine-tests/
  50. - MySQL: https://gist.github.com/codedokode/10539213
  51.  
  52. Что почитать
  53.  
  54. - Мануал по PHP — http://www.php.net/manual/ru/langref.php
  55. - Сайт phptherightway (перевод на русский: http://getjump.me/ru-php-the-right-way/ )
  56. - По PHP: Профессиональное программирование на PHP Джордж Шлосснейгл
  57. - По PHP: Мэтт Зандстра — PHP: Объекты, шаблоны, методики программирования
  58. - JS: learn.javascript.ru
  59. - Про Git: https://git-scm.com/book/ru/v1
  60.  
  61. Нужен ли ООП, фреймворки, MVC, git, composer? — Да, однозначно. Посмотри любую вакансию.
  62. Сайт опять упал!!!!! — Не паникуй, а открой http://rghost.ru/6bfCY9lfl и получи личную немного устаревшую оффлайновую копию сайта (можно читать хоть на андроиде без интернета)
  63. Оформляй код аккуратно!!! — например пропусти через phpformatter.com . Также, если ты пользуешься IDE вроде PhpStorm, Netbeans, Eclipse, то в них эта опция встроена, подробнее: https://gist.github.com/codedokode/8759492
  64. ОП, сделай за меня мою работу или домашнее задание? — Это конечно, хорошая идея, но нет.
  65. Подскажи сайты для поиска работы, я не умею гуглить? — hh.ru, geekjob.ru, moikrug.ru (склеен с brainstorage.me), fl.ru, upwork.com (бывший одеск). Имей в виду, что кроме фриланса есть еще постоянная удаленная работа (remote job) когда тебе не надо тратить время на поиск заказов и переговоры с неадекватными заказчиками.
  66.  
  67.  
  68.  
  69. ВАЖНО!
  70.  
  71. Код нужно писать не как попало, а аккуратно и по правилам. Почему? Потому, что на неакуратно написанный код не хочется даже смотреть.
  72.  
  73. Если тебе лень выравнивать код руками, закачай его на http://beta.phpformatter.com/ и нажми «format». Робот исправит выравнивание и отступы в мгновение ока (да, прогресс не стоит на месте). Если ты используешь мощную IDE вроде PhpStorm, там тоже есть функция форматирования кода.
  74.  
  75. Горячие клавиши для форматирования кода в разных IDE: https://gist.github.com/codedokode/8759492
  76.  
  77. Вообще, в PHP долгое время не было единого стандарта оформления кода, все писали как попало и было много бардака, но сейчас дело лучше — есть стандарты PSR-1 и 2. Вот как надо оформлять код:
  78.  
  79. - переменные и функции пишутся с маленькой буквы, подчеркивание не используется, используется camelCase, пример: $x, $numberOfPeople, printResults()
  80. - Название функции начинается с глагола, в стиле «сделайЧтоТо»
  81. - не знаешь английский? Не беда, в 21 веке есть решение этой проблемы. Не пиши транслитом, открой лучше Гугл Транслейт или slovari.yandex.ru и найди название для переменной там
  82. - в именах классов используется CamelCase, первая буква большая, «_» может использоваться
  83. - мы предпочитаем подстановку переменных вместо конкатенации строк: "I am $age years old" — хорошо, 'I am ' . $age . ' years old' — плохо из-за обилия точек и кавычек
  84. - мы используем для отступов 4 пробела (можно настроить редактор, чтобы при нажатии Tab он вставлял 4 пробела)
  85.  
  86. Вот ссылка на стандарты, где все это описано подробнее и даны примеры оформления:
  87.  
  88. PSR-1: https://github.com/php-fig/fig-standards/blob/master/accepted/ru/PSR-1-basic-coding-standard.md
  89. PSR-2: https://github.com/php-fig/fig-standards/blob/master/accepted/ru/PSR-2-coding-style-guide.md
  90.  
  91.  
  92. ------------------
  93.  
  94. Итак, ты зашел в тред и решил помочь какому-то анону, дав ему совет или подсказку. Спасибо! Но прочти сначала эти напоминания, чтобы твоя помощь действительно была полезной.
  95.  
  96. Давай удочку, а не рыбу
  97.  
  98. Лучше не давать готовое решение проблемы, а рассказать как его искать. Может дать ключевые слова для гугла или ссылку. Но помогай, а не пытайся показать превосходство. Если даешь ссылки на нерусскоязычные статьи, упомяни об этом.
  99.  
  100. Будь доброжелателен
  101.  
  102. Не годится: «Ты мануал хоть раз в жизни открывал, обезьяна?»
  103. Не годится: «В гугле забанили?»
  104. Не годится: «Твой код плохой»
  105. Хорошо: «Вот, как можно улучшить этот код: ...»
  106. Хорошо: «Ты неправильно используешь функцию abc(). Вот ее описание: ссылка, и как видишь ей надо передать строку, а не массив»
  107.  
  108. Не придирайся к знанию английского языка.
  109.  
  110. Объясняй
  111.  
  112. Не очень хорошо: «сделай как в этом коде»
  113. Хорошо: «если ты вставляешь текст от пользователя в SQL запрос, то получается SQl-инъекция, которая позволяет взломать твой сервер (ссылки). Чтобы этого избежать, надо вставлять данные с помощью плейсхолдеров (ссылки)»
  114. Хорошо: «Помни, что код пишется для людей. Если писать такие большие функции, то в них становится трудно разобраться...»
  115.  
  116. Не проповедуй
  117.  
  118. Мы учим использованию самых распространненных подходов, стандартов, библиотеки фреймворков. Если ты не любишь ООП, пробелы в коде, jQuery, сам PHP, то рассказать об этом стоит в каком-нибудь другом треде.
  119.  
  120. Не придирайся к знанию английского языка, анон пишет как умеет.
  121.  
  122. Ах да. Если тебе кажется, что что-то в учебнике или задачах можно сделать лучше — пиши, обратная связь всегда очень полезна.
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top