Проблема следующая. Немного знаю PHP, полез сразу на фреймворки (Laravel), но когда что-то хочу реализовать, заметил за собой что не знаю как это сделать и лезу на StackOverflow. В итоге получается по кускам собранное "чудо", хоть и работающее.
Хочется набить руку именно в написании какой-то более-менее сложной логики самостоятельно, а не копипасте, пусть и с пониманием кода.
Просмотр видеоуроков или семинаров это конечно хорошо, вроде всё понятно, но без практики написания кода получается та же ситуация "на языке крутится, а сказать не могу". В книжках, которые я встречал также, теория, примеры кода, всё понятно, но по итогу бесполезно.
Возможно есть какие-то задачники, с примерами хорошего кода в качестве ответов. То есть чтобы была возможность сверить свой говнокод с решениями автора и что-то дельное от этого почерпнуть. И чтобы было от простых задач к более сложным, либо по темам (массивы, циклы, классы ООП)?
Многие рекомендуют ставить себе самому задачу (написать приложение) и только так, якобы, лучше всего получать знания. Но по опыту всё сводится не к программированию, а к гуглению и выдергиванию кусков кода из разных источников, чтобы это всё заработало. По-моему это не лучший подход к обучению.
Так в чём проблема - прочитай одну или две книжки по ПХП, и всё. Там и задачки будут. А дальше, уже с хорошей базой, можно клепать мощные приложения разных уровней сложности.
А по поводу качества - без кода ревью никак. Ищешь ментора, или обращаешься к старшему товарищу, и он смотрит твой код, и отмечает недостатки, недочёты, некрасивости и прочее. Плюс есть книги, статьи и даже целые сайты по паттернам, антипатернам и качеству кода (тот рефакторин кода Фаулера или там всякие чистые или совершенные кода (автором не помню)).
Задачники - фигня оторванная от реальности. И не только в программировании. По задачникам в лучшем случае вы научитесь решать известную вам и четко сформулированную задачу и быстро утратите этот навык ввиду неактуальности.
В реальном мире разработки нет идеальных решений, иногда даже нет правильных и ваша задача - найти оптимальный компромисс.
Есть хорошие практики и вы не должны их изобретать, вы должны именно перенимать чужой опыт.
Если вы только что начали изучение программирование, задачи с которыми вы встречаетесь - мелкая рутина. Обучение на этом этапе заключается в изучении инструментов, понимании того, что происходит в коде. Даже если у вас есть собственные идеи по решению задач, вы всё равно сейчас должны сверять свои решения с решениями более продвинутых программистов.
В целом же, те самые продвинутые тоже не горят желанием столкнувшись с новой для них проблемой ломиться изобретать что то свое. В первую очередь всегда проводится исследование вопроса, какие есть наработки в этой области, готовые решения, что думают люди занимавшиеся подобным.
Так что расслабьтесь, гуглите почаще, быстрее впитаете в себя чужие знания. И да, больше практикуйтесь, реализуйте свои фановые проекты, переписывайте их, через несколько итераций заметите что желания погуглить появляется реже.
Для общего развития почитайте общую литературу по программированию. Начните с книги Совершенный код.
Вы хотите пропустить этап страдания, так не бывает. Нужно переписать пару раз чтобы понять почему нужно так.
От ответов от других есть толк только тогда, когда вы разобрались почему ответить нужно было так, а не просто скопировать и забыть.
Пару раз переписать что?
То есть выполнить задание по-своему, увидеть что автор сделал более изящно и переписать (чтобы запомнилось) тоже самое самому?
Nikolino, нету никакого смысла в том что вы перепишите то что в книге .. вам нужно понять почему именно так написано
Под переписать - это этап развития, когда через пол года смотришь свой код и думаешь .. как оно вообще работало