Что надо знать хорошему php разработчику?
но не могли бы вы дать список
если вы в состоянии написать сортировку вставками - этого достаточно. Ближе к мидлу уже было бы неплохо знать как работают основные структуры данных (хэш-мэпы, списки, деревья и т.д.) и какова сложность вставки/поиска в этих структурах (что бы понимать зачем каждая нужна).
В целом же знание алгоритмов на начальном этапе вам не понадобится, вы просто должны понимать как строить алгоритмы. Я вот Кормена так и не дочитал... Тут суть в том что на PHP редко пишут что-то, где важна скорость вставки или поиска, обычно все сложное делается на уровне базы данных. Потому PHP разработчику остается только сформировать запрос в базу и получить ответ. Больше работы именно по архитектуре самого приложения.затем начну изучать базы данных и буду понимать что такое CGI,
CGI не трогайте, это весьма старая штука. Просто разберитесь с SAPI (Server API) и примерным флоу что происходит между приходом HTTP запроса на сервер и вызовом PHP с уже заполненными суперглобальными массивами. Ну и да, с самим HTTP тоже разберитесь сначала, что бы понимать что такое куки и как они передаются с клиента на сервер и обратно, что такое сессии, как получить тело запроса и т.д.
Так же, так как речь идет о PHP, вам так или иначе придется изучать ООП. На процедурном пыхе далеко не уедешь.
p.s. Еще рекомендую почитать чего по управлению проектами, по методологиям разработки. Ознакомьтесь с XP (причем лучше читать на английском), почитайте про технический долг и т.д.
эм, ответ на вопрос твой в этой статье. 
p.s. ищу компаньона для совместного учения.