Задать вопрос
  • Сколько времени в среднем проходит для освоения программирования с нуля и возможностью заработка?

    FirstX
    @FirstX
    .net developer
    На самом деле кол-во таких вопрос действительно зашкаливает, потому что беспокоит многих, но каждый считает, что именно ему ответят каким-то уникальным образом. К сожалению нет, не ответят, универсальных рецептов нет. Я сам одно время, брался за одной, брался за другое, загорался и снова перегорал. Потом приходит понимание, что топчешься на одной месте, даже совершая "гипер прыжки" в кратчайшее время, такие переключения с новым "гипер-прыжком" отбрасывают сильно назад. Это как вектор, который резко меняет направление. Сумма таких векторов может не порадовать точно :)

    Вроде выбрал, вроде решил, начал углубляться, но смотришь по сторонам и начинаются сомнения, а то ли ты выбрал, а насколько это будет актуально, а насколько будет интересно дальше и так далее. Например, мне импонирует разработка под мобильные платформы, но нет работы на местном рынке. Возникает разумное сомнение, выбрать то, что нужно здесь и сейчас, но не особо перспективно, либо... либо... и еще много разных либо.

    Какой же выход из этого порочного круга. Наверное составить Roadmap, где придется проверить свою силу воли. Составить карту планов на год. Проанализируйте такие вопросы как:

    1. Что интересно
    2. Что проще всего дается
    3. Что востребовано на местном рынке
    4. Рассматривается ли возможность переезда
    5. Что востребовано на фриланс биржах и каков уровень конкуренции в данном сегменте

    Нарисовали - пошли добивать, и не метаться. Метания - ваш тормоз. Юношеский максимализм, когда хочется всего и сразу, в этом плане не помощник. Нужно иметь определенный фокус, тогда будет результат. Ну и как минимум лучше всего начать работать хоть с чего-то.

    Теперь ответ на ваш вопрос: время освоения программирования с нуля и возможность заработка никак между собой напрямую не связаны. То есть ответа конкретного никто не сможет дать.

    Можно всю жизнь программировать, но не зарабатывать на этом. Может повезти устроиться с нулевым опытом, и вы зарабатываете почти тут же. Это как вопрос, сколько надо забить гвоздей, чтобы начать на этом зарабатывать. Утрирую? - да. Но вы так же можете отбивать себе пальцы молотком, но зарабатывать какую-то копеечку, а можете профессионально дома с закрытыми глазами вбивать одним ударом гвоздь, но не иметь с этого ни рубля.

    Бывает человек 10 лет программирует, но качество кода остается на уровне джуниора и решать задачи в написании серьезных приложений на фрилансе он не сможет. Получается в локальном вопросе, для конкретной компании этот человек может продать свою работу и получает за это деньги, в более масштабном плане - ему будем сложно себя продать и соответственно шансы на заработок не так велики. Это же и объясняет тот факт, что не всегда умные люди добиваются успеха в компаниях. Человек может быть не самым полезным, не самым эффективным, но грамотный "само-маркетинг, нетворкинг ака полезные связи" бывает творят чудеса.

    Единственное, что я могу однозначно рекомендовать даже для программиста - это так называемые soft skills. Навыки общения, коммуникации, понимание идей бизнеса и так далее. Напрямую с программированием не связано, но вопросы настолько универсальные, что пригодятся в любой работе.
    Ответ написан
    Комментировать
  • Yii: rules и очень много сценариев, в которых чёрт ногу сломит?

    zetamen
    @zetamen
    В поисках нового
    Можно скомпоновать правила по сценариям, в вашем примере это выглядело бы так:
    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'),
    	);
    }


    В чем фишка всего этого? Кода, по сравнению с вашим примером, стало больше, но и его читаемость возросла.
    Ответ написан
    3 комментария
  • Yii: rules и очень много сценариев, в которых чёрт ногу сломит?

    Я использую для подобных дел валидацию обычной модели, а не ActiveRecord. Например, для администратора AdministratorUserEditModel. В ней все правила для администратора. Так же для модератора и обычного пользователя. Получается что вы выносите лишнее проверки в другие классы и в итоге меньше засоряете код модели.
    Ответ написан
    Комментировать
  • Yii: rules и очень много сценариев, в которых чёрт ногу сломит?

    metamorph
    @metamorph
    Совершенно необязательно городить весь огород в одной модели.

    К примеру, все телодвижения с емейлом/паролем (смена, напоминалка итд) отлично укладываются в обычную модельную форму.

    Детально не смотрел, но местами кажется, что Вы прописываете некоторые поля для ВСЕХ сценариев. Это необязательно.

    Вообще, проблема ада сценариев отлично решена в Yii2 разделением собственно правил валидации и сценариев валидации. С другой стороны, шаблоны приложений yii2 недвусмысленно намекают, что по отдельным формам такие штуки все равно разбивать проще :)
    Ответ написан
    1 комментарий
  • Сколько времени в среднем проходит для освоения программирования с нуля и возможностью заработка?

    После откола от хабра, тостер превратился в сборник вопросов и разряда "Хай, пасаны! Вы тут прогеры все крутые? Какую мне книжку почитать минут на 15, что бы завтра мульёны зарабатывать?"
    Ответом должно быть: Карл Маркс "Капитал", Дэн Ариели "Предсказуемая иррациональность", Стив Бланк "Четыре шага к озарению" и ещё тысячи книг по экономике. Не ту область выбираете.
    Ответ написан
    4 комментария
  • Сколько времени в среднем проходит для освоения программирования с нуля и возможностью заработка?

    Хорошим программистом можно стать только если это занятие нравится. По крайней мере в первые годы это занятие должно приносить удовольствие само по себе. Это должно быть стремление, страсть, талант. Если бы у вас это было, вы бы вопросы здесь не задавали, а просто программировали. Не важно что.

    То, что вам, похоже, нужно - это быстрый заработок. Для этого нужно изучить спрос, и сопоставить его с вашими возможностями. Здесь уже писали, что хороший источник статистики спроса - это фриланс-биржи. Смотрите заказы, ищете наиболее популярные темы. Всякие там Wordpress и django с RoR для веб, а может что-то по мобильной разработке, но это уже сложнее. Смотрите, что это такое (по попсовым темам очень много материалов), изучаете (попсовые темы потому и попсовые, что легки в освоении) и практикуетесь.

    С выходом на фриланс лучше повременить. Не имея опыта можно сходу угробить себе репутацию, а исправить это тяжело. Лучше пойдите к кому-нибудь в подмастерья. Есть у вас на районе веб-студии небольшие? Вот к ним. У них вечно работы больше, чем исполнителей. И не звездите сразу. Подмастерья зарабатывают мало. Немного опыта на реальных проектах - и вы готовы конкурировать с индусами на фриланс-биржах...

    Ответ написан
    Комментировать
  • Сколько времени в среднем проходит для освоения программирования с нуля и возможностью заработка?

    @Masterme

    Чтобы зарабатывать деньги можно либо выполнять задачи по заказу (проще) либо сделать готовый продукт и продавать (сложнее). Задачи по заказу бывают разного охвата - либо это, например, просто вёрстка (проще), либо это софт под какую-то задачу целиком, с разработкой концепции, тестированием, выкаткой, поддержкой и т.д. (сложнее). То есть, зарабатывать можно в любом случае, но это разные уровни сложности, и, соответственно, разные деньги. Чтобы взять нижнюю ступеньку обычно нужно около года. В дальнейшем всё зависит от того, определитесь ли вы со специализацией.

    Ответ написан
    Комментировать
  • Зачем на сайтах при входе через соцсети просят email/пароль ?

    @darau

    Для последующей рассылки "полезных" писем, по мнению администраторов тех сайтов...

    Ответ написан
    Комментировать
  • Стоит ли делать фреймворк?

    @Aquahawk
    нет, не стоит. Фреймвёрки так не делаются. Вот вы сделайте игру, разочаруйтесь в подходе и архитектуре и сделайте вторую. Потом когда будете делать третью выделите из фторой фреймвёрк и на нём сделайте третью. Вот тогда оно станет нормальным фремвёрком.
    Ответ написан
    3 комментария
  • Как лучше хранить адрес файлов/картинок в базе данных

    @bekbulatov
    Следует иметь в виду, что первый вариант не подойдет, если необходимо хранить много картинок. Поиск в папке будет занимать внушительное время, поэтому лучше разбивать на подпапки и хранить относительный путь в БД
    Ответ написан
    Комментировать
  • Как лучше хранить адрес файлов/картинок в базе данных

    Ogra
    @Ogra
    4й вариант.
    1. В отдельной таблице можно хранить оригинальное имя файла, держа его при этом на сервере с хитрой организацией файлов, вида: /ab/bc/de/abbcde.doc
    2. Оригинальное имя файла хранится, а значит, если пользователь 1 закачал file.doc, а второй пользователь закачал file.doc, то и при скачивании обоих файлов получится file.doc, а не file(1).doc
    3. В таблице можно хранить md5 файла и не забивать место (или даже процессорное время, если происходит обработка картинок/видео) дубликатами.

    Ну в общем, этот слой абстракции — никому не мешает.
    Ответ написан
    7 комментариев