<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>developers.org.ua &#187; Алексей Колупаев</title>
	<atom:link href="http://www.developers.org.ua/archives/author/kolupaev/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.developers.org.ua</link>
	<description>сообщество программистов</description>
	<pubDate>Fri, 21 Nov 2008 11:16:07 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>Легендарная книга &#8212; за отзывы о новом стартапе</title>
		<link>http://www.developers.org.ua/archives/kolupaev/2008/08/13/maanimo-book/</link>
		<comments>http://www.developers.org.ua/archives/kolupaev/2008/08/13/maanimo-book/#comments</comments>
		<pubDate>Wed, 13 Aug 2008 07:30:55 +0000</pubDate>
		<dc:creator>Алексей Колупаев</dc:creator>
		
		<category><![CDATA[Книги]]></category>

		<category><![CDATA[Новости]]></category>

		<category><![CDATA[конкурс]]></category>

		<category><![CDATA[стартап]]></category>

		<guid isPermaLink="false">http://www.developers.org.ua/index.php?p=1428</guid>
		<description><![CDATA[Мы приглашем вас познакомиться с нашим детищем, и рассказать о своих впечатлениях, чтобы мы смогли исправить свои ошибки к финальной версии, сделав сайт удобнее и полезнее. Автору самого справедливого из гневных комментариев мы подарим легендарную книгу <a href="http://www.amazon.com/review/product/1590597141/ref=cm_cr_dp_all_summary?_encoding=UTF8&#038;showViewpoints=1&#038;sortBy=bySubmissionDateDescending">«Founders at work» Джессики Ливингстон</a>.


Related posts:<ol><li><a href='http://www.developers.org.ua/archives/a4/2008/04/22/investicii-bez-granits-anons/' rel='bookmark' title='Permanent Link: Проходит конкурс венчурных проектов «Инвестиции без границ»'>Проходит конкурс венчурных проектов «Инвестиции без границ»</a> <small>Компания “Евроконсалтинг» объявляет о проведении третьего открытого международного конкурса венчурных...</small></li><li><a href='http://www.developers.org.ua/archives/ili/2007/06/07/igra-temple-of-the-sun-ot-sun-microsystems/' rel='bookmark' title='Permanent Link: Игра Temple of the Sun от Sun Microsystems'>Игра Temple of the Sun от Sun Microsystems</a> <small>Думаешь, что знаешь C/C++? Проверь себя в игре Temple of...</small></li><li><a href='http://www.developers.org.ua/archives/max/2007/07/02/bayview-seminar-2/' rel='bookmark' title='Permanent Link: Семинар &#8220;Oпыт создания софтверной компании с привлечением венчурного капитала&#8221;'>Семинар &#8220;Oпыт создания софтверной компании с привлечением венчурного капитала&#8221;</a> <small>Компания BayView Innovations совместно с венчурным предпринимателем Юрием Бойко продолжают...</small></li></ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<h3>Тот самый стартап, или что могут сделать люди, умеющие поворачивать строку задом наперед</h3>
<p>Привет всем читателям ДОУ, доброе утро и &#8212; помогите нам, пожалуйста.</p>
<p>Я уже не раз рассказывал о том, что мы делаем стартап, и, как многие помнят, <a href="http://www.developers.org.ua/archives/kolupaev/2008/06/12/startup-interview/">искали единомышленников</a> среди сообщества. Могу наконец с чистой совестью сказать, что все было не зря, что мы наши тех самых людей (но поиски не остананавливаем!), и, наконец-то, дожили до бета-версии. Ее можно увидеть по адресу <a href="http://maanimo.com/">maanimo.com</a>. Она еще нежная и беззащитная, и в ней есть недостатки, но ведь на то она и бета, не так ли? <img src='http://www.developers.org.ua/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Попытаюсь описать в двух словах цель, которую мы преследовали:</p>
<p>Новый портал Maanimo.com  должен помочь людям, неискушенным в финансах, разобраться в вопросах управления деньгами. Также у нас можно будет найти лучшие продукты и сервисы, предлагаемые сегодня в Украине многочисленными финансовыми организациями (банками, инвестиционными и страховыми компаниями, брокерами, кредитнымии союзами и т.д.). </p>
<p>На сайте можно найти как статьи образовательного характера, так и аналитические материалы, прогнозы, советы экспертов и просто свежие новости в мире финансов. Кроме того, в каталоге депозитов можно сориентироваться и сделать выбор среди депозитных программ десятков украинских банков, число которых на нашем сайте постоянно растет.</p>
<p>Мы приглашем вас познакомиться с нашим детищем, и рассказать о своих впечатлениях, чтобы мы смогли исправить свои ошибки к финальной версии, сделав сайт удобнее и полезнее. Автору самого справедливого из гневных комментариев мы подарим легендарную книгу <a href="http://www.amazon.com/review/product/1590597141/ref=cm_cr_dp_all_summary?_encoding=UTF8&#038;showViewpoints=1&#038;sortBy=bySubmissionDateDescending">«Founders at work» Джессики Ливингстон</a>, под влиянием которой мы решили делать этот стартап.</p>
<p>Всем заранее большое спасибо, и &#8212; судите строго и справедливо!</p>
<p>P.S. RSS и поиск сейчас отключены намерено &#8212; появится на следующей неделе.</p>
<p>P.P.S. Тотальная AJAX-ификация интерфейсов также планируется.</p>
<br/><a href="http://www.developers.org.ua/archives/kolupaev/2008/08/13/maanimo-book/#ratings">Оценить статью на сайте</a> | <a href="http://www.developers.org.ua/archives/kolupaev/2008/08/13/maanimo-book/#comments">28 комментариев</a>]]></content:encoded>
			<wfw:commentRss>http://www.developers.org.ua/archives/kolupaev/2008/08/13/maanimo-book/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Нехитрый вопрос на собеседовании или как не попадают в стартапы</title>
		<link>http://www.developers.org.ua/archives/kolupaev/2008/06/12/startup-interview/</link>
		<comments>http://www.developers.org.ua/archives/kolupaev/2008/06/12/startup-interview/#comments</comments>
		<pubDate>Thu, 12 Jun 2008 07:00:45 +0000</pubDate>
		<dc:creator>Алексей Колупаев</dc:creator>
		
		<category><![CDATA[О работе]]></category>

		<category><![CDATA[Разработка]]></category>

		<category><![CDATA[Учеба]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[задача]]></category>

		<category><![CDATA[собеседование]]></category>

		<category><![CDATA[стартап]]></category>

		<guid isPermaLink="false">http://www.developers.org.ua/index.php?p=1342</guid>
		<description><![CDATA[Мне довелось поработать в интересных местах, со многими интересными людьми и провести, наверное, около сотни собеседований, в основном, PHP-программистов. Пользуясь случаем, хочу поблагодарить всех, кто приходил ко мне на собеседования – вы многому меня научили. И я хочу поделиться со всеми одной из своих самых любимых задачек для собеседования.


Related posts:<ol><li><a href='http://www.developers.org.ua/archives/a4/2008/07/14/hard-interview-questions-7/' rel='bookmark' title='Permanent Link: Трудный вопрос на собеседовании #7'>Трудный вопрос на собеседовании #7</a> <small>Учитывая пожелания участников, озвученные в комментариях к предыдущей задаче, мы...</small></li><li><a href='http://www.developers.org.ua/archives/max/2008/04/25/weekly-linkdump-122-2/' rel='bookmark' title='Permanent Link: Weekly linkdump #123'>Weekly linkdump #123</a> <small>Интересные ссылки за неделю: Отчеты с прошедшей в Москве конференции...</small></li><li><a href='http://www.developers.org.ua/archives/a4/2008/06/02/hard-interview-questions-1/' rel='bookmark' title='Permanent Link: Трудный вопрос на собеседовании #1'>Трудный вопрос на собеседовании #1</a> <small>developers.org.ua решили опубликовать замечательный цикл "Трудные вопросы на собеседовании" на...</small></li></ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Всем привет, меня зовут Алексей Колупаев, и мне посчастливилось познакомиться с людьми, которые изменили мою профессиональную жизнь: <a href="http://webdev.org.ua/node/523">я делаю новый стартап</a>. Именно от меня будет зависеть вся техническая часть нового народного финансового портала. И, на данном этапе, это означает, что мне нужно собрать убийственную команду и так построить процесс, чтобы добиться суперэффективности.  Есть мнение, что собрать классную команду очень нелегко. Мне довелось поработать в интересных местах, со многими интересными людьми и провести, наверное, около сотни собеседований, в основном, PHP-программистов. Пользуясь случаем, хочу поблагодарить всех, кто приходил ко мне на собеседования – вы многому меня научили. И я хочу поделиться со всеми одной из своих самых любимых задачек для собеседования.</p>
<p>Придумал ее, разумеется, не я, а прочитал, кажется, у <a href="http://joelonsoftware.com/">Джоела Спольски</a>. Слышал, что ее дают на собеседовании в Microsoft.  В коротком варианте она звучит так: «как повернуть строку задом наперед?».  Подозреваю, что в Microsoft не ожидают ее решения на PHP, а вероятно, на С или С++. Прелесть задачи состоит в том, что она мало говорит о языке и много – о программисте. В моем варианте она звучит так:</p>
<pre><code>&lt;?php
$a = 'abcdefgh';
// Напишите здесь недостающий код, чтобы результатом работы скрипта была строка $a, повернутая наоборот
echo $a;
?&gt;</code></pre>
<p>То есть, этот скрипт должен выдавать</p>
<pre><code>hgfedcba</code></pre>
<p>Вот в этом месте предлагаю всем читателям, владеющим PHP, решить эту несложную задачку. А я поделюсь с вами тем спектром решений, которые я получал во время проведения собеседований.</p>
<p>Нет, правда, попробуйте.</p>
<p>Итак, буду оглашать и комментировать варианты ответа в порядке моего личного, субъективного, наверняка в чем-то ошибочного понимания правильности решения.</p>
<p><strong>5. Номер пять в моем хит-параде занимает ответ «я не знаю, и не буду это писать».</strong> Иногда с вариантом «что за дурацкая задача, в жизни такого не бывает». Слив, как говорится, засчитывается сразу.</p>
<p><strong>4. Номер четыре занимает вариант «В PHP вроде должна быть такая функция…».</strong> Что ж, справедливости ради, должен сказать, что в PHP действительно есть такая функция. Названия ее, конечно же, никто не помнит. Это нормально. Но неужели вы думаете, что я задавал эту  задачку, чтобы услышать такой ответ? Следом за таким ответом предлагаю реализовать эту функцию самостоятельно. То есть, как отмазка не канает, надо писать.</p>
<p><strong>3. Место номер три уходит семейству решений под девизом «ну, как-то через массивы».</strong> Код при этом, разумеется, выглядит по-разному, и до победного конца (работающего и выполняющего задачу скрипта) добираются не все адепты массивных решений.  Функции explode() и, соответственно,  implode() приходят в голову далеко не всем, а уж что пытаются делать между ними – прямо стыдно рассказывать. Даже сортировку. Решение с массивами формально годится, задача должна быть в первую очередь решена, а потом уже можно и заняться оптимизацией, и поговорить о производительности, и так далее. Нюанс в том, что решить задачу через массивы не так уж легко, потому что массивы тут не нужны. Есть у меня подозрение, что такое решение говорит о том, что человек недостаточно работал с примитивными типами данных, а был в детстве  ранен в мозг простотой и легкостью динамических массивов в PHP. Но человека, более-менее писавшего, например, на С, таким не обмануть.  Так что в целом – подходу незачот.</p>
<p><strong>2. Следующее решение – минимально адекватное для того, чтобы я рассматривал человека всерьез:</strong></p>
<pre><code>$b = '';
for ($i = strlen($a)-1; $i&gt;=0; $i--)
    $b .= $a[$i];
$a = $b;</code></pre>
<p>Возможны, понятно, некоторые вариации.</p>
<p>Такое решение встречается в большинстве случаев, не всегда с первого раза, правда. В этом решении есть нескольно важных мест:</p>
<ul>
<li><code>strlen()</code> вынесен из тела цикла и выполняется один раз (есть ли понимание того, что это зло?)</li>
<li>минус один от длины строки (сколько шишек об это уже набито?)</li>
<li>как там с ноликом – больше или больше-равно? (те же, в принципе, шишки)</li>
</ul>
<p>Так как часто это задание я предлагаю решить на бумажке, сразу видно, что человек учитывает сходу, а что «подтачивал» бы по результату.</p>
<p><strong>1. Джедайские техники.</strong> Чемпионов видно по джедайским техникам решения задач, хочется верить, что такие люди хотя бы листали Кнута. Мне известно только две, на собеседовании я встретил их буквально один или два раза. Первая, которую я таки встречал (Вадим, привет) заключается в том, чтобы использовать цикл вдвое меньшей длины и менять местами соответствующие символы:</p>
<pre><code>$b = '';
$l  = strlen($a)-1;
for ($i = 0; $i &lt; $l/2; $i++) {
    $b = $a[$i];
    $a[$i] = $a[$l-$i];
    $a[$l-$i] = $b;
}
</code></pre>
<p>Вторая джедайская хитрость состоит в том, чтобы поменять местами символы в строке без использования третьей переменной. Очень сильно удивлен, что многие не знают, как это сделать даже для чисел. А тут – символы. А так хотелось бы, что-то кто-то написал что-то вроде</p>
<pre><code>$a[$i] = $a[$l-$i]^$a[$i];
$a[$l-$i] = $a[$l-$i]^$a[$i];
$a[$i] = $a[$l-$i]^$a[$i];</code></pre>
<p>Задачка, конечно, «плюшевая». Я сам могу придумать десяток причин, по которым она плоха – не отражает знание PHP, не соответствует реальной жизни, что вообще она показывает, бла, бла, бла.  Как, например, понять, догадался человек о таком решении или просто читал о нем где-то еще? Неважно. Уверяю вас – пользуясь этой задачкой (и, конечно, еще многими другими) я еще ни разу серьезно не ошибся с кандидатом. Ведь формальное знание PHP в кандидате – поверьте, далеко не главное. Значительно важнее – отношение к своему занятию, стремление к развитию, способность играть в команде, видение мира, если угодно. Мне гораздо интереснее, как человек решает задачу, чем ее фактическое решение. Грань между этими вещами довольно тонка, но мне кажется – она есть, и понять, что за ней, не так уж просто.</p>
<p>А всем, кто дочитал до этого драматического места, я напоминаю, что наш проект ищет людей, которые обладают талантами PHP-программистов, которые в начале этой статьи все-таки решили эту задачку и ответ находится в первой или второй группе решений. Таким программистам мы хотим рассказать о прелестях работы в стартапе, о чудесах, на которые способна маленькая но мощная команда, вооруженная разносторонними знаниями, оснащенная лучшими средствами производства гениальных проектов и мотивированная нашими, украинскими, реальными рыночными целями. Если вы хороши, действительно хороши в PHP, и это не единственный  ваш язык программирования, если у вас есть свое мнение относительно модели MVC и пара серьезных проектов за спиной, если вам не все равно как происходит развитие проекта, и вы болеете душой за agile, scrum и xp, если вы еще недостаточно закостенели и готовы броситься с головой в проект, где надо будет реально показать то лучшее, на что вы способны – то у нас есть к вам предложение мечты. Но задачка на собеседовании будет другая <img src='http://www.developers.org.ua/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p class="right">Алексей Колупаев,<br />
kolupaev@gmail.com</p>
<br/><a href="http://www.developers.org.ua/archives/kolupaev/2008/06/12/startup-interview/#ratings">Оценить статью на сайте</a> | <a href="http://www.developers.org.ua/archives/kolupaev/2008/06/12/startup-interview/#comments">142 комментариев</a>]]></content:encoded>
			<wfw:commentRss>http://www.developers.org.ua/archives/kolupaev/2008/06/12/startup-interview/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
