public function rules()
{
return array(
array('phone', 'length', 'max' => 12),
array('icq', 'length', 'max' => 9),
array('email', 'email'),
array('login', 'length', 'max' => 80),
array('email', 'length', 'max' => 200),
//registration
array('login, email, password, retypePassword', 'required', 'on'=>'registration'),
array('login, email', 'unique', 'on'=>'registration'),
array('login', 'match', 'pattern' => '~^[\da-zа-яёА-ЯЁ\.\-@_\+]+$~i', 'on'=>'registration'),
array('retypePassword', 'compare', 'compareAttribute' => 'password', 'on'=>'registration')
//updateByAdmin
array('login, email, password, retypePassword', 'required', 'on'=>'updateByAdmin'),
array('login, email', 'unique', 'on'=>'updateByAdmin'),
array('login', 'match', 'pattern' => '~^[\da-zа-яёА-ЯЁ\.\-@_\+]+$~i', 'on'=>'updateByAdmin'),
array('retypePassword', 'compare', 'compareAttribute' => 'password', 'on'=>'updateByAdmin')
//updateByModerator
array('email', 'required', 'on'=>'updateByAdmin'),
array('login', 'match', 'pattern' => '~^[\da-zа-яёА-ЯЁ\.\-@_\+]+$~i', 'on'=>'updateByAdmin'),
array('email', 'unique', 'on'=>'updateByAdmin'),
//changePassword
array('password, currentPassword, retypePassword', 'required', 'on'=>'changePassword'),
array('currentPassword', 'passwordValidator', 'on'=>'changePassword'),
array('retypePassword', 'compare', 'compareAttribute' => 'password', 'on'=>'changePassword')
//changeEmail
array('email, currentPassword', 'required', 'on'=>'changeEmail'),
array('email', 'unique', 'on'=>'changeEmail'),
array('currentPassword', 'passwordValidator', 'on'=>'changeEmail'),
);
}
Хорошим программистом можно стать только если это занятие нравится. По крайней мере в первые годы это занятие должно приносить удовольствие само по себе. Это должно быть стремление, страсть, талант. Если бы у вас это было, вы бы вопросы здесь не задавали, а просто программировали. Не важно что.
То, что вам, похоже, нужно - это быстрый заработок. Для этого нужно изучить спрос, и сопоставить его с вашими возможностями. Здесь уже писали, что хороший источник статистики спроса - это фриланс-биржи. Смотрите заказы, ищете наиболее популярные темы. Всякие там Wordpress и django с RoR для веб, а может что-то по мобильной разработке, но это уже сложнее. Смотрите, что это такое (по попсовым темам очень много материалов), изучаете (попсовые темы потому и попсовые, что легки в освоении) и практикуетесь.
С выходом на фриланс лучше повременить. Не имея опыта можно сходу угробить себе репутацию, а исправить это тяжело. Лучше пойдите к кому-нибудь в подмастерья. Есть у вас на районе веб-студии небольшие? Вот к ним. У них вечно работы больше, чем исполнителей. И не звездите сразу. Подмастерья зарабатывают мало. Немного опыта на реальных проектах - и вы готовы конкурировать с индусами на фриланс-биржах...
Чтобы зарабатывать деньги можно либо выполнять задачи по заказу (проще) либо сделать готовый продукт и продавать (сложнее). Задачи по заказу бывают разного охвата - либо это, например, просто вёрстка (проще), либо это софт под какую-то задачу целиком, с разработкой концепции, тестированием, выкаткой, поддержкой и т.д. (сложнее). То есть, зарабатывать можно в любом случае, но это разные уровни сложности, и, соответственно, разные деньги. Чтобы взять нижнюю ступеньку обычно нужно около года. В дальнейшем всё зависит от того, определитесь ли вы со специализацией.