Если хотите писать свое родное.С самого начала нужно наработать алгоритмическую базу, что бы при уходе вашей любимой технологии или фреймворка в небытие, вы не были выгнаны на мороз с голой жопой. А уже потом брать сначала язык программирования (притворимся что вы взяли не php) и напилить костылей своих с велосипедами, по общим задачкам (строки, данные, графы, хэш таблицы и т.д.), пробуете сортировать без встроенных функций. Вы спросите, а нафиг оно мне нужно? Я крутой прогер хочу сайты клепать, а не ваши алгоритмы учить. Сделано это для того что бы быть программистом а не кодером , и при надобности скакать по технологиям которые вам нужны (как по пикам, или что там вам по душе) с минимальными затратами на изучение. После этого вы пишите своего франкенштейна с руками из сфинктора и глазами на них же(свой MVC фреймворк) костылям позавидует трвмпунк, потом смотрите на чужие костыли в виде фреймворков(в отличии от ваших костылей, эти отлажаны как нужно и протестированы не одну сотню раз, а так же признаны и используються в широком кругу) и допилить свои костыли до вменяемого состояния. Но не советую, используйте отлажаные и протестированые костыли. Время на изучение, с лихвой окупятся и не только временем но и деньгами.