Сначала - учебник программирования. Потом - опыт работы на языках с сильной статической типизацией (C - с его крайне слабой типизацией - идёт лесом). И только после этого переход на языки, провоцирующие написание говнокода (среди которых и PHP, и, особенно, JavaScript).