• Как научиться решать задачи на PHP?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Старайтесь разбивать задачу на маленькие подзадачи, их проще решать. Достаточно маленькие задачи решаются гуглением. Так же если задачу не выходит решить довольно долгое время - постарайтесь отвлечься на какое-то время (например на часик прогуляться отойти) и пробовать уже на свежую голову, тогда вероятность что в голову придут новые идеи чуть выше.
    Ответ написан
    1 комментарий
  • Действительно ли back-end разработка более консервативна, чем front-end?

    hrls
    @hrls
    Половина ответа в вопросе, но дьявол в мелочах.
    Действительно, для относительно продуктивной backend-разработки практически на любом языке программирования необходимо знать несколько базовых фреймворков и тулов, которые решают большинство задач. Это скелет ~90% приложений сложнее hello world. Хотя и этот скелет меняется и развивается, пусть и не так быстро как хотелось бы, как разнообразные отростки (не консервативность, но более долгий жизненный цикл). Суммарный вес технологий и инструментов не меньше, и уж точно не менее динамично изменяющийся, чем у frontend-разработчиков.
    Далее личный опыт на примере Java.
    Лет 7-8 тому достаточно было знать Spring, Struts, Hibernate да Apache Commons в довесок для разработки большинства решений. Ну и J2EE-стек для задач Enterprise-уровня.
    В году 2014 Spring, Hibernate все также в арсенале программиста, но появилась куча абсолютно новых вещей вроде AMPQ, Hadoop, Netty, Scala с функциональной парадигмой, мультиязычные окружения с Clojure/Groovy/JRuby; стали чаще встречаться альтернативные реализации популярных библиотек (например Guice / Guava); старые технологии вроде J2EE стали использоваться несколько реже. А одних только Key-Value хранилищ, кэшей и прочих NoSQL как грязи. Изменился даже сам подход к построению приложений – мало кто в 2005 слышал про asynchronous event-driven модели и отталкивался при проектировании от REST-стиля (собственно, там и корни frontend-девелопера как отдельной специализации). Про эволюцию систем сборок, VCS, бенчмарков и прочих "микро"-элементов можно расписывать не одну простыню.
    И да простят меня frontend-товарищи за, возможно, чванливый тон, но раскурить тонкости работы async IO в зависимости от ОС-специфики вроде epoll/kqueue или учитывать CAP-теорему при построении middleware-кэша это уровнем сложности повыше, чем новый CSS-препроцессор и CoffeeScript c очередным MVC / MVVM-фреймворком. Некоторые задачи, вроде синхронизации потоков, так и вообще лежат большей частью в области математики.
    Уверен, что и в frontend-разработке существуют задачи сложнее и интереснее поехавшей на пиксель верстки и обновления полей после парсинга JSON, но ИМХО backend-разработка ближе к системному программированию старой школы, в то время как frontend суть прикладное программирование с примесями дизайна.
    Frontend-инструментов больше, backend-инструменты сложнее.
    Ответ написан
    4 комментария
  • Действительно ли back-end разработка более консервативна, чем front-end?

    0neS
    @0neS
    И да начнется холивар!
    Ответ написан
    Комментировать
  • Действительно ли back-end разработка более консервативна, чем front-end?

    iiil
    @iiil
    Инженер и вэб-дизайнер, рисую.
    Очень похоже на правду, не так ли? То, чего не видят рядовые пользователи, не должно отвечать моде.
    Ответ написан
    4 комментария
  • Как писать оптимальный PHP код?

    golotyuk
    @golotyuk
    99% оптимизации PHP это
    - обязательно использовать APC (или opCache в новых версиях)
    - использовать ООП только там, где это реально нужно
    - использовать кэширование
    - здравый смысл (не загружать списки из 100 элементов, если нужно только 10 и т.п.)

    Поддерживаю Fesor - микрооптимизация - это скорее привычки, но никак не методы решения каких-то реальных проблем со скоростью работы.

    Что почитать:
    - Общие правила оптимальной работы PHP на практике
    - Howto по производительности PHP с внутренностями
    - 50 micro tips для оптимизации PHP (англ.)
    Ответ написан
    5 комментариев
  • Каков план личностного развития PHP программиста с нуля?

    @nikita-b
    Все это сильно зависит от того, что вы знаете сейчас. Английский знаете? Если нет, то это первое, что стоит изучить, хотя бы на уровне чтения.

    0. Допустим если вы не знаете английский.
    lingualeo.com
    Русский сервис, где можно читать тексты и смотреть разные видео на английском. Очень удобен.
    https://www.duolingo.com/
    Похожий сервер, чуть проще. У него очень интересный принцип работы и замысел почитайте.

    1. Допустим вы знаете/изучили английский. Нужны только самые основы вы их разовьете в процессе изучения онлайн-курсов. Что такое онлайн-курсы? Это сервисы, где вам через видео, книги, тесты предлагают знания. Университет онлайн.
    Это очень хороший способ, потому что у них уже есть набор тем, которые вам требуется изучить.
    Есть такой сервис на русском:
    htmlacademy.ru
    Я не пробовал, но в целом рекомендуют. Он не совсем бесплатный, но там 100 рублей в месяц. Это совсем мелочи.
    Есть еще:
    proglive.ru
    Но он если честно слишком дорогой. Я смотрел там несколько вэбинаров и не был особо впечатлен. но может кто-то там учится подскажет. Может в интернете найдете информацию о нем.

    Есть более продвинутые аналоги на английском:
    www.codecademy.com
    Бесплатный набор курсов по очень-очень большому спектру тем. Достаточно высокого качества.

    Еще
    https://teamtreehouse.com
    https://teamtreehouse.com (Без моей реф. ссылки)
    Этим я сейчас пользуюсь сам. Курсы более подробные и приятные. Хотя если, что-то знаете то могут показаться зануднее. Есть еженедельное шоу, где рассказывают о всяких новых технологиях и течениях. Часто появляются новые курсы. Можно задать вопросы на форуме. Он правда платный. Около 1000 рублей в месяц, но он того стоит.
    https://www.udacity.com/
    Еще один бесплатный аналог. Не пробовал.

    2. Допустим вы прошли курсы по html,css, js, jquery, php. Я рекомендую уже с этого момента выполнять платные работы.
    Есть много разных мест, где можно найти работу:
    Русский: fl.ru
    Английские: www.freelancer.com
    https://www.odesk.com
    В англоязычном секторе зарплаты намного приятнее. Для жителей регионов в особенности.
    Вы можете брать дешевые проекты и предлагать низкую цену. Практика очень важна.

    Впрочем можно и попробовать найти работу(Не фрилансером), но я считаю, что это сильно ограничит ваш прогресс на данном этапе.

    3. Несмотря на то, что этот пункт идет третий он должен идти параллейно со вторым. А возможно и первым. Но в целом это все не обязательно, просто так вы повышаете свой уровень.
    3.1 https://www.edx.org/course/mitx/mitx-6-00-1x-intro...
    Это очень хороший курс от крутейшего в мире универа по теме IT. Сначала кажется, что легкий, а потом внезапно начинается ад. Пройдя его вы наверно будете знать больше, чем большая часть людей, которые заканчивают российские вузы)
    Там правда Python, но знать его не надо, все объяснят.
    Зато очень рекомендуется математика.
    Для начинающих несмотря на название достаточно сложен.
    3.2 https://www.class-central.com
    Список курсов, которые проводят крупнешие университеты мира.
    Вам нужно многое из того, что касается программирования, алгоритмов, математики.
    Ищите, что вам интересно и вперед.
    Я советую:
    3.3 https://www.coursera.org/course/algs4partI
    И вторую часть.
    Там правда используется Java, но нужны только основы.
    3.4 https://www.edx.org/course/linuxfoundationx/linuxf...
    Курс по основам Linux. Не пробовал.
    3.5 Математика. От простого к сложному:
    https://www.coursera.org/course/algebra
    https://www.coursera.org/course/precalculus
    https://www.coursera.org/course/calcsing
    https://www.coursera.org/course/calc1
    https://www.coursera.org/course/sequence
    Не все курсы проходят, так что надо искать аналоги. Там были и более сложные. Так же важны курсы по теории вероятности.

    Что осталось за скобками? Придется изучить систему контроля версий. Я люблю Git. Вот хорошая книга:
    cloud.github.com/downloads/GArik/progit/progit.ru.pdf
    Совет: Не берите больше 3-4 курсов. Не справитесь. Хотя бы уж в начале не берите.

    Если пройдете все это, поздравляю, вы стали программистом причем достаточно высокого уровня.
    То есть подведем итоги. Вам надо:
    1. html, css. Не надо в них углубляться. Просто основы.
    2. js, jquery. Тоже на начальном этапе не углубляйтесь.
    3. php и какой-нибудь фреймфорк. Symfony или Yii. И какая-нибудь база данных.
    3.1. Узучение какой-нибудь CSS. Drupal например. Или Wordpress.
    4. Система контроля версий. Git.
    5. Математика.
    6. Алгоритмы.
    7. Computer Science в целом. Linux, шифрование, механика работы баз данных и серверов и т.д.
    При этом по сути для трудоустройства хватит первых трех, что бы там кто не говорил.
    Ответ написан
    7 комментариев
  • Каков план личностного развития PHP программиста с нуля?

    butteff
    @butteff
    Раз в тысячу лет заправляю свитер в носки
    В общем, вот мой совет, после третьего пункта порядок можно брать уже любой, смотря что надо для решения задач, т.е. важна практика.

    1. Начать надо с основ - html/css
    2. Затем учить php + пару CMS (только хороших, я думаю это cms made simple, livestreet, wordpress)
    3. Узнать про базы данных, начать с MySQL, перейти в noSQL базы данных (например mongo db)
    4. Начать учить фрэймворки (Symfony2 и Yii)
    5. Изучить серверные технологии (Apache + nginx, linux различные, работу с командной строкой, ssh и ftp на уровне настройки и поднятия этих протоколов, права доступа и прочие фишки, вроде sphinxsearch)
    6. Узнать про кэширование и проникнуться этим, угореть по хайлоад
    7. Изучить еще пару скриптовых языков и фреймворков (Rubу + Ruby on rails, python + django)
    8. Угореть по IT security, penetration testing
    9. Изучить еще больше фронтэнда - javascript + jquery, Angularjs, html5/css3;
    10. Угореть по всяким системам контроля версий, git, jira

    Сдать на ZCE и получить как можно больше международных сертификатов, на случай, если хотите мигрировать.
    Ответ написан
    4 комментария
  • Кто начинал программировать с 20-ти лет и старше?

    У меня есть знакомый, который в 40 лет начал разрабатывать сайты на Ruby On Rails (до этого вообще не работал в сфере IT), нашел хорошую работу, всем доволен) Все в ваших руках!
    Ответ написан
    1 комментарий
  • Существуют ли мониторы retina для Windows?

    @AlexDstszi
    Retina - маркетинговое имя для дисплеев в продукции apple.
    Логично, что искать нужно у них. https://www.apple.com/ru/displays/
    Вот только еще понадобится переходник dvi>displayport или hdmi>displayport. Видео карта тоже должна поддерживать разрешение: 2560 x 1440 пикселей. Кстати, этот экран не имеет ретина названия, но имеет разрешение аналогичное ретина экранам от Apple.
    Ответ написан
    2 комментария
  • Jquery validation?

    MonkAlbino
    @MonkAlbino
    Фронтенд разработчик
    Не знаю, о каком именно плагине-валидаторе форм на jQuery вы говорите, но обычно подобные плагины лишь проверяют правильность ввода данных в форме. Отправкой почты занимает скрипт на стороне сервера, которому посылаются данные из формы.
    Ответ написан
    3 комментария
  • Где можно потренироваться написанию "идеального кода"?

    Популярные фреймворки написаны весьма неплохо, их следует изучить (что-то можно почерпнуть из Zend'а, что-то из Yii и т.д.).

    Из книг, которые просто не могут не помочь: "Совершенный код" (Макконнелл), "Рефакторинг. Улучшение существующего кода", "Архитектура корпоративных программных приложений" (обе — Фаулер).
    Ответ написан
    1 комментарий