Сегодня отсобеседовали 4-х кандидатов на должность PHP-программиста.
Дабы в посте были не только эмоции, набросаю сюда список вопросов, которые задавал, мало ли кому пригодиться. Вдохновлялся постом на хабре.
Опыт разработки на PHP. Какие приложения писал?
Почему вы выбрали PHP?
Предпочтительная среда разработки?
Опыт работы с CMS и сторонними библиотеками.
Какие вы знаете типы данных в PHP?
Что такое сериализация?
Как у вас с проектированием БД?
рисуем структуру для банальной гостевухи (конкретное задание ниже),
рассказываем, как будем укладывать в БД категории неограниченной вложенности (обычно предлагают parent_id, узнаем знает ли человек о nested sets).
Что такое нормализация БД?
CSS: В чем разница между записями .my #my
Адекватность оценки времени разработки.
Я предлагал кандидату оценить время разработки вот такого скрипта:
Гостевая книга.
Посетители:
просмотр гостевой книге в виде ленты по 20 постов на страницу;
регистрация.
Пользователи:
авторизация,
восстановление пароля,
добавление постов в гостевуху.
Администратор:
редактирование постов,
добавление ответов на посты (1 пост — 1 ответ).
Адекватным ответом я считал 4 — 8 часов. 16 долго, но в целом адекватно :)
Вот для этой задачи мы рисовали БД выше. Отдельное внимание тому, как кандидат планиирует хранить пароли (в открытом виде или хэш), и тому, как реализуется ответ на посты админом (в отдельной таблице или в той же где посты).
Если бы вам предложили работу сразу в нескольких компаниях, в какую бы вы пошли? (навеяно постом Фрица о мотивации)
Еще ряд вопросов орг. характера (график, например).
Ну и собственно все. Из 4-х кандидатов, прошедших отбор по резюме, с вопросами удовлетворительно справился только один. Все 4 заявляли о знаниях CSS, на простой вопрос №9 уверенно ответил один, второй ответил, но с трудом, двое других не ответили.
О nested sets не знает никто. Сериализация/нормализация — один человек. И один смог примерно сформулировать суть нормализации, не зная что это такое («Я не знаю, но думаю, что это примерно ээ..»). В назначенное время пришел один. Один опазадал на 7 минут, другой на 15, третий пришел вообще на полчаса раньше. Один кстати пришел с другом :) Ну типа просто за компанию...
Все типы данных в php не назвал никто (я бы тоже назвал только 7 из 8ми), лучшие назвали по 6 и двое других назвали 3 и 4.
Удивительно, но все знакомы с линуксами. Причем не только как юзеры, но и как админы. Делаю вывод, что линуксоиды притягиваются :)
В общем и целом, картина не впечатлила. Видимо, мало денег. Серьезные программеры тут хотят получать Питерскую зарплату. А я пока не готов ее платить.
P.S. Все 4 — с опытом админства. И ни одного бородатого. Это не труодмины!!! :-D
Больше года уже прошло с того дня, когда я прекратил делать сайты для клиентов и начал делать свои проекты. Но получалось так, что периодически я все же брал клиентов, кто по старой дружбе попросил сделать сайт, а кому я и сам предлагал, когда были проблемы с наличкой.
Так было и в декабре. Хотелось влить в оборот дополнительные финансы. Я взял два проекта, просрал на них уйму времени, и по сути ничерта не заработал. Кто делает сайты для клиентов, должен знать, что бывают такие неудачные ситуации, когда доделываешь сайт только для того, чтобы доделать и забыть про этого заказчика навсегда. Вот тут получилось аж два раза так.
А у меня один почти дозревший свой проект и один очень перспективный на стадии разработки :(
Конечно, так не всегда бывает. И это скорее исключение, чем правило. Но в этот раз я еще раз для себя убедился, что для меня делать свои проекты выгоднее, чем сайты для заказчиков. И по деньгам, и по количеству затраченных нервов.
В этом посте я хотел бы поговорить о способах монетизации СДЛ-проектов, их плюсах и минусах.
Самым очевидным и простым является контекстная реклама. И под контекстной рекламой я, в первую очередь, подразумеваю РСЯ.
Кстати, отличный повод порекламировать мой любимый Profit-Project и поблагодарить их за своевременные выплаты и приятные подарки. У меня уже три их кружки :-D
Контекст на СДЛ сайтах хорошей тематики приносит хорошие деньги. Многим уже по аське рассказывал, что у меня есть проект, который в январе принес 50 килорублей с РСЯ. Так что в РСЯ деньги есть :)
Проблема с РСЯ в том, что всегда есть вероятность, что ваш проект могут выкинуть из РСЯ и доход вы потеряете полностью. У меня есть конечно соображения о том, почему выкидывают хорошие проекты, но с уверенностью говорить очень сложно.
Другой вариант монетизации — продажа прямой рекламы.
Сейчас набирает обороты продажа не просто баннеров, а готовых лидов. Мне очень нравится реализация такой модели на одном сайте об автостраховании. Пользователь приходит на сайт и заказывает расчет стоимости КАСКО, заполнив форму, есть группа страховых агентов, которые выкатывают свои предложения. Если пользователя заинтересовало одно из предложений, он соглашается на него, раскрывая свои контактные данные для агента. Агенты, если я верно помню, платят некоторую абоненскую плату + за каждого клиента.
Но можно и тупо баннеры продавать.
Кстати, для тех у кого еще нет раскрученных СДЛ проектов, по опыту скажу, что не стоит надеяться на то, что когда ваш сайт раскрутится, к вам сами попрут рекламодатели. К сожалению, этого нет. Приходится активно продавать, как и любую другую рекламу.
Сегодня попытаюсь рассказать, сколько мне стоит разработка среднего СДЛ-проекта.
Я не первый и не последний, кто в эти пару недель писал/напишет об этой теме, но мои коллеги, почему-то учитывают только финансовую сторону, и совсем не затрагивают затраты личного времени.
1) Концепция
Выбор ниши и разработка концепции занимает у меня обычно 2 — 4 часа, если нет какой-нибудь готовой идеи «в загашнике». Потом мы за полчаса с партнером обговариаем имеющиеся варианты и выбираем наиболее интересный.
2) Функциональная спецификация, наметки по дизайну, фишки, структура БД
В сумме уходит еще от 4 до 6 часов, в зависимости от проекта.
3) Дизайн & верстка
Если дизайн я делаю сам, то на это мне необходимо 8 часов. Взять готовый layout, подвести его под цветовую гамму, накидать необходимые блоки, нарисовать логотип.
Если заказываю, то дизайн 5 — 7 килорублей, верстку делает Дима ~ 1500 рублей. Согласование дизайна — еще час времени в сумме.
4) Программирование
Программирование движка для среднего сайта занимает у меня 20—40 часов.
В бытность фрилансером, я за такие проекты брал по $600 — $800. За какую сумму можно нанять фрилансера представляю слабо, ибо программирование никогда не заказывал, и сейчас далек от рынка. Согласование всех вопросов тут — 2 часа.
5) Контент
Сильно зависит от проекта. Есть проекты, которые стартуют с 60к рерайта на борту, есть те, где контент-менеджер месяц работает над наполнением. Считаем по максимуму, 1 месяц работы контентщика — 8 килоруб.
6) Домен
.ru — $4
Итого
Если минимум денег, то 60 часов моего времени и 8 150 руб. Если минимум времени, то 10 часов времени и 33 000 руб.
Я какбэ знал эти цифры, но есть вычесть из второго первое, то получится, что при разработке проектов, мое время как дизигнера/программиста стоит 50 рублей в час! Охренеть можно :)
Сегодня как раз обсуждали стоит ли брать штатного программиста, видимо все же стоит.
P. S. Да и программист из меня слишком увлеченный. Я блин могу зацепиться за какую-н интересную техническую фишку и весь рабочий день просидеть разбираясь с ней, так и не сделав ничего по проекту :)
Я уже не раз упоминал, что я не любитель писать ТЗ для каждого проекта. Муторно это :)
Обычно я пишу функциональную спецификацию, которая состоит у меня из двух простых пунктов.
Типы данных и операции совершаемые над ними.
Какие типы данных будут на будущем сайте? Например так:
пользователи,
категории статей,
статьи,
комментарии к статьям.
Для того, чтобы разметить действия над этими данными, проще всего нарисовать табличку:
Посетитель
Пользователь
Админ
Пользователи
регистрация, логин, восстановление пароля
редактирование профиля
просмотр, удаление
Категории статей
просмотр
просмотр, добавление, редактирование, удаление
Статьи
просмотр
просмотр, добавление, редактирование, удаление
Комментарии
просмотр
просмотр, добавление
просмотр, редактирование, удаление
Плюс отдельным текстом какие-то экстра-фишки, которые не вписываются в общую структуру. Например, гугл-мап на морде, который показывает, куда идти всем недовольным :)
На этом сама функциональная спецификация заканчивается, но я после этого всегда рисую структуру БД. Один тип данных — обычно одна таблица. Остается только указать необходимые поля. Для людей, далеких от программирования, для тех, кто хочет написать ФС для стороннего программера, достаточно указать необходимые свойства каждого типа данных. Например, для пользователя это имя, логин, город, дата регистрации, а для статьи — заголовок, текст статьи, мета-тайтл страницы со статьей, ключевые слова, категория.