[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Подскажите путь развития, чтобы не переучиваться
Страницы: 1, 2, 3
doubt
Дико извиняюсь если вдруг запостил не там.

Нужна ваша помощь в определении пути изучения PHP, чтобы сразу учиться кодить все правильно, не писать "студенческий" код и не переучиваться потом из быдлокодера

Дано:
Я простой человек, опыт работы с интернет проектами на позиции менеджера 4 года, поверхностно знаю что такое веб сервер, чем GET запрос отличается от POST, что такое сессия и зачем она нужна, писал несколько скриптов на PHP на уровне "получить от API данные, обработать и записать в MySQL"

Цель:
Научиться кодить на PHP для того чтобы реализовывать свои проекты.
При этом хочу учиться сразу правильно, то есть без неуместного хардкода, с правильным использованием классов, правильно спроектированной архитектурой и логикой кода, без лишних дыр и нагрузного кода
php.net вкурил, все понял, вопросов не возникло, но php.net - это все равно что букварь - дает принципы, но не методики

Чем вы можете мне помочь:

Посоветовать пути, методики или книги, которые помогут научиться всему вышеописаному, смогут заложить правильный фундамент в программировании

Накидать примерный путь развития, например:
1) Берешь вот эту книжку, читаешь, вникаешь
2) Береш вот этот движок, изучаешь как он работает
3) Берешь и пробуешь написать что то свое, не сложное например вот это
4) ...

Предполагаю, что мне надо двигаться куда то в сторону паттернов проектирования и Gang of Four, но хотелось быть подтверждения моих догадок и каких то еще материалов, плюс ко всему мне кажеться что Gang of Four это какая то сразу десятая ступень, а мне бы начать с первой

Прекрасно понимаю, что всему вышеописаному люди учатся годами если не десятилетиями и это в общем то за пределами PHP, но все же мне хочется изначально выбрать правильный путь и проходить его, используя PHP как один из вариантов
doubt
Модер, перенеси пожалуйста вот сюда:
http://phpforum.su/index.php?showforum=129

=)))
sergeiss
Как всегда, появляется вопрос: какова цель изучения ПХП, что ты хочешь в итоге достичь? Без понимания цели тебе никто не даст более-менее правильного ответа о пути. Потому что без цели нет и пути - это как и везде в жизни smile.gif

Далее. "Программер PHP" - это на самом деле универсал, общее название для программиста, достаточно хорошо владеющtuj PHP и JS (в т.ч. библиотеки на JS, такие как jQuery и другие). Он также должен хорошо понимать HTML и CSS. Уметь работать с БД (MySQL, PostgreSQL, Oracle, MSSQL...).

Если это слова тебя еще не напугали smile.gif, то тогда для начала напиши, например, гостевую книгу. Чтобы люди могли оставлять отзывы, которые записываются в БД и выводятся (постранично при большом количестве).
Сначала без регистрации. Затем добавь регистрацию юзеров, чтобы только зарегенные могли писать в этой книге. Регистрация должна использовать почту пользователя для подтверждения.
Затем добавь туда аякс, чтобы страница не перезагружалась...

В процессе ты много чего узнаешь и осознаешь. А просто так изучать что-то смысла нет. Если не понимаешь, для чего нужно что-либо, ты просто не запомнишь.

PS. Ну, и на форум заходи, спрашивай, если что-то сам не поймешь.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Zzepish
sergeiss
Тебе нужно в универе преподавать с твоим подходом smile.gif
sergeiss
Цитата (Zzepish @ 1.09.2014 - 01:33)
sergeiss
Тебе нужно в универе преподавать с твоим подходом

Ты не поверишь... Но пока я работал в сотовой связи, то преподавал там... А теперь в политехе местном 1-2 раза в год читаю небольшой курс лекций smile.gif По сотовой же связи.
А чего ж отказываться, коли бабки платят? Да и мозги встряхиваются неплохо smile.gif

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Zzepish
sergeiss
Просто в основном учат тупо по учебнику, а ты расказываешь механику самого понимания предмета)
doubt
Спасибо, sergeiss

HTML, CSS я знаю, да что там знать то? =)))

MySQL, MSSQL - так же работаю достаточно часто на уровне анализа данных

JS, jQuery - тут тоже ничего сложно мне кажется нет.

И все же ты не написал ни одного источника информации, откуда можно понять "Как правильно"

Написать гостевую книгу, чтобы она работала - это я могу.

Написать гостевую книгу ПРАВИЛЬНО - я не могу
sergeiss
Цитата (doubt @ 1.09.2014 - 11:01)
И все же ты не написал ни одного источника информации, откуда можно понять "Как правильно"

Тут, опять же, зависит от поставленной цели smile.gif "Как правильно написать" - это пусть достижения цели. Так какая цель-то? Даже с гостевой книгой она должна быть. Небольшая, но цель.
Как она будет работать, твоя гостевая? Будет ли постоянно перезагружаться или будешь использовать аякс? А может, websocket? Выбор из этих вариантов уже даст разные пути решения.

И ты так и не ответил на вопрос, какова у тебя цель изучения программирования? Кстати, ты прав - сложного в нем ничего нет smile.gif До тех пор, пока не начнешь связывать всё воедино.

Насчет источников "откуда можно понять как правильно". Еще раз подчеркну, что в зависимости от цели путь "правильности" может меняться. Поэтому, лучше на форум заходи, спрашивай - разберемся в каждом конкретном случае. Как глобально, так и для мелких задач.

Цитата (doubt @ 1.09.2014 - 11:01)
HTML, CSS я знаю, да что там знать то? =)))

HTML5: локальные хранилища данных, canvas, web-сокеты, многопоточность для JS - ты это всё хорошо знаешь, умеешь использовать? Можешь сверстать любой макет, прямо так "с пол-пинка", да так, чтобы он был кросс-браузерный?

Цитата (doubt @ 1.09.2014 - 11:01)
MySQL, MSSQL - так же работаю достаточно часто на уровне анализа данных

Это хорошо smile.gif И ты также хорошо знаком с репликациями? Можешь "с ходу" написать сложный запрос с джойнами, делающий выборку из пары десятков таблиц?
А если рассмотреть PostgreSQL (да и MSSQL), то там можно очень многое сделать внутри БД, выдавая вовне только результат обработки. В MySQL поменьше возможностей.

Цитата (doubt @ 1.09.2014 - 11:01)
JS, jQuery - тут тоже ничего сложно мне кажется нет.

Сложного ничего. До тех пор, пока ты пишешь 5-10 строк. Но если делаешь веб-приложение, в котором сотни-тысячи строк и множество объектов, то там уже появляются свои, специфические проблемы. Тут без ООП не обойтись никак. А в JS у ООП своя специфика, сильно отличающая его от ООП в ПХП и других языках.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
doubt
Ну мы все таки говорим про сервер сайд разработку, все что ты описал про front end - это уже глубокая специализация, и есть отдельные люди, которые делают именно фронт энд.

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

Цель простая:
Появилась у меня допустим необходимость сделать какую то серверную логику, вот щас, например, есть цель написать скрипт для АБ тестирования который будет рандомно скидывать пользователя либо на основной домен либо на поддомен с другим дизайном, а потом считать, откуда больше продаж.

Попробую перефразировать цель еще вот так:
Получить знания, как самому писать необходимые мне проекты, они не очень сложные, но я хочу чтобы они были написаны правильно, могли легко масштабироваться и не имели адского количества детских ошибок, и чтобы если я потом отдам проект на поддержку профессиональному разработчику он не сказал "что за хрень, тут надо все переписывать с нуля"

Теоретически, я понимаю, что алгоримт простой:
1) Проверяем, есть ли куки АБ теста
2) Если нет, рандомно ставим куки и шлем на соответствующий домен
3) При оформлении заказа вытаскивем куку и пишем в БД

И теоретически я могу написать один большой код, в котором это все будет делать при каждом обращении, но фактически я понимаю, что все должно быть более правильно, тоест должен быть какой то класс, внутри которого должен быть метод проверки этой куки, класс должен подключаться где то на уровне контроллера, ошибки должны обрабатываться и не рушить систему итд итп

Вот именно этому я и хочу научиться чтобы знать не на уровне "Наверное должно быть как то так" а четко зная, как это должно быть

Тоесть у меня нету цели "Я хочу понять как мне сделать гостевую книгу"
Как ее сделать я примерно понимаю, и при желании напишу код для этого, но это будет очень плохой код новичка, а я хочу изначально учиться делать правильный, чистый, разумный код

Вот нашел книгу Макконела, это примерно о направление в котором надо копать?
sergeiss
Цитата (doubt @ 1.09.2014 - 14:56)

Тоесть у меня нету цели "Я хочу понять как мне сделать гостевую книгу"
Как ее сделать я примерно понимаю, и при желании напишу код для этого, но это будет очень плохой код новичка, а я хочу изначально учиться делать правильный, чистый, разумный код

Для этого тебе надо сначала написать так, как получится smile.gif Потому что, как ты ни делай, но сразу хорошо сложно сделать. Только на своем опыте.
Любой разработчик, и я в том числе, могут сказать однозначно: когда открываешь свой "старый" код, написанный 1-2-3 года тому назад, то всегда хочется его переделать, сделать более оптимальным smile.gif А иногда думаешь "какой же недоумок его написал?" wink.gif

Что касается "гостевой книги", почему я про нее говорю. Это просто очень хороший пример, на котором можно отработать многие элементы. Ввод-вывод данных, работа с БД, CSS, аякс... Много чего. Самое главное, что сначала можно сделать в очень простом варианте и оно будет работать! Буквально 50-100 строк кода. Затем ты будешь делать всё более и более сложные вещи в той же книге. И потом, в реальных проектах, ты уже будешь знать, что и как можно сделать, какие плюсы/минусы у разных вариантов.

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

Цитата (doubt @ 1.09.2014 - 14:56)
Ну мы все таки говорим про сервер сайд разработку, все что ты описал про front end - это уже глубокая специализация, и есть отдельные люди, которые делают именно фронт энд.

Почитай описания вакансий типа "программист ПХП". И ты поймешь, что обычно хотят видеть программиста-универсала. Практически никому не нужен узкий специалист, знающий только ПХП, но не понимающий JS, CSS, HTML.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
bestxp
что такое красиво и что такое не красиво, что такое правильно и что такое неправильно.


Например понять смысл Agile методологии разработки через итерации и прототипирование

Понять что такое рефакторинг и как он делается и для чего он нужен

Понять что такое проектирование по модели и разработка через тестирование

Поидее как раз таки от одного перейдешь к другому и повысишь скилл

А вот как сделать?

Первое поставить цель сделать проект который решает какую-то проблему
Делать его с использованием Agile итерационной методологии
Отрефакторить и понять что не хватает TDD ( автоматических тестов )
и тд

нет такого выучи книгу и получишь лвл-ап скорее только разжевывание того чего ты не понимал
inpost
doubt
У меня есть курс, но он вообще для самых маленьких, как раз рассказывается о запросах к БД, сессиях и т.д.
Собственно советовать его не могу, так как не знаю твоего уровня. Думаю, что можно было бы оценить уровень твой, реализуй простую задачу:
Скрипт отзывов (комментирования):
1) Все комментарии храниться в БД,
2) Выводить на странице по 10 комментариев,
3) Добавлять комментарии при помощи Ajax (без перезагрузки страницы),
4) Форма комментирования должна содержать логин, e-mail, и текст сообщения, все это выводиться на экран.
______________________________

Сделай, выстави тут. Поможет понять, что тебе на твоём уровне стоит советовать.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
sergeiss
Цитата (inpost @ 3.09.2014 - 00:41)
Скрипт отзывов (комментирования):....

Примерно то же самое, что и я предложил в этой же теме, сразу после ее создания smile.gif Дак не хочет он! Говорит, мол, "написать могу, но хочу не просто написать, а чтобы сразу идеально было". В итоге пока не делает ничего.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
inpost
sergeiss
Если твои слова правдивы, то мне такой ученик не нужен ph34r.gif

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Arh
doubt
Дополню.

1. Гуглить на всевозможные темы безопастности веб приложений.
- SQL инъекции, межсайтовый скриптинг и т.д.
чтобы не было такого
$query = mysql_query("SELECT * FROM table WHERE text =  '".$_POST['text']."'");

а что бы было хотя бы так
$sql[':text'] = $_POST['text'];
$query = $pdo->prepare("SELECT * FROM table WHERE `text` = :text");
$query->execute($sql);


2. Гуглить на тему стандартов написания кода.
- желание переписать код чаще всего возникает, когда стиль кода не однотипный (то переменные с большой буквы называют, то с маленькой, то скобки IF ставят с новой строки как C++)
допустим так плохо
$val_name = 'Вася';
//Проверяем имя
if (!empty($val_name)) {
$valSurname = 'Сидоров';
}

#Проверяем фамилию
if(empty($valSurname) == false)
{

}


а так уже лучше
$val_name = 'Вася';
#Проверяем имя
if (!empty($val_name)) {
$val_surname = 'Сидоров';
}

#Проверяем фамилию
if(!empty($val_surname)) {

}


я к тому что стиль может быть не такой как у меня или у кого то другого, главное что бы твой стиль всегда был один.

3. Гуглить на тему MVC, страшная аббревиатура, а статьи пытающиеся объяснить еще более страшнее и запутывающие (какойто контроллер, модель, представление), но когда осознаешь что это такое, будет +
По сути контроллер это index.php, который использует модели/библиотеки (набор классов или функций) для реализации каких то действий типа добавления/удаления комментарий, а потом их выводит в шаблон (представление)

4. Гуглить на тему ООП и начать его использовать, для начала хотя бы как сборник тематических друг другу функций (методов) в классе

5. Гуглить ЧПУ и .htaccess

6. JQuery, AJAX

блин так можно бесконечно писать, в общем нет такой литературы (ИМХО), где вам расскажут как правильно, просто такая книга не поместилась бы у тебя шкафу =) это во первых, а во вторых "правильное программирование" не всегда правильно.
То есть вы прочитаете книгу, там будет написано что ООП это хорошо, MVC это хорошо, PDO это хорошо, и вы будете везде это использовать, даже там где это не только не нужно, но и противопоказано.
Встречал кучу движков и проектов где ООП используется ради ООП, сайт лагает, в коде без сто грамм не разберёшься, но зато ООП, "да неудобно, да нужно 4 года что бы изучить мануал и привыкнуть, да медленно, но зато MVC/ООП"

Начните с малого как советовали выше, но просто гостевая книга это не то, начните свой небольшой проект, даже не ради прибыли, просто хобби, но что бы в проекте было и регистрация пользователей и гостевая книга/комментарии, загрузка файлов, загрузка изображений (аватарок допустим), вложенные категории новостей, чат, опросы, отправка почты, кеширование.
Тут всё приходит с опытом и к сожалению нет лайфхаков, которые обучат вас быстро и качественно.
Либо быстро/поверхностно и говнокод, либо глубокий опыт/знания и медленно.
Это уже вам решать что нужно. Кстати люди-"быстро/говнокод" чаще зарабатывают куда больше, чем люди-"медленно-качественно", потому что заказчик не понимает и хочет дёшего и быстро, что очень тормозит и раздражает идеалистов типо меня =(.

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.