<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Работа для  программистов &#187; задачи</title>
	<atom:link href="http://job-interview.ru/articles/post/tag/%d0%b7%d0%b0%d0%b4%d0%b0%d1%87%d0%b8/feed" rel="self" type="application/rss+xml" />
	<link>http://job-interview.ru/articles</link>
	<description>вакансии, вопросы, статьи</description>
	<lastBuildDate>Thu, 29 Mar 2012 20:53:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Как я проводил собеседование</title>
		<link>http://job-interview.ru/articles/post/290</link>
		<comments>http://job-interview.ru/articles/post/290#comments</comments>
		<pubDate>Sun, 23 Jan 2011 17:44:01 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Собеседования]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[вопросы]]></category>
		<category><![CDATA[задачи]]></category>
		<category><![CDATA[собеседование]]></category>

		<guid isPermaLink="false">/articles/post/290</guid>
		<description><![CDATA[Вот уже прошло почти полтора года, как я в поисках работы посещал собеседования в разных компаниях, после чего мною была написана статья Нужны ли логические задачи на собеседованиях?. И вот совсем недавно мне самому пришлось набирать команду программистов и проводить с ними собеседования. Как вы могли бы догадаться, собеседования без задач на логику.  
Так [...]]]></description>
			<content:encoded><![CDATA[<p>Вот уже прошло почти полтора года, как я в поисках работы посещал собеседования в разных компаниях, после чего мною была написана статья <a title="Нужны ли логические задачи на собеседованиях?" href="/articles/post/7">Нужны ли логические задачи на собеседованиях?</a>. И вот совсем недавно мне самому пришлось набирать команду программистов и проводить с ними собеседования. Как вы могли бы догадаться, собеседования без <strong>задач на логику</strong>. <img src='/articles/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Так получилось, что через некоторое время в компании на проекте остался всего один программист — и это был я. Необходимо было в кратчайшие сроки воссоздать команду. <strong>Проведение собеседования</strong> доверили мне. </p>
<p>Цель: <em>найти 2-х программистов, один должен быть опытным, другой начинающим</em>.<br />
<span id="more-290"></span><br />
Хочу сразу сказать, эта статья не содержит никаких советов о том, как проводить «<strong>правильное собеседование</strong>». Здесь я рассказываю о своем опыте проведения собеседований и, как показало время, в моем случае эти собеседования оказались правильными, т.к. я подобрал тех людей, которых и хотел. Но обо всем по порядку.</p>
<p>Началось все с того, что в один прекрасный день ко мне утром подошел мой начальник и сказал, что через 20 минут должен придти соискатель и надо бы подготовить вопросы для него. 20 минут на подготовку вопросов!</p>
<p>Пришлось быстро вспомнить какие вопросы задавали мне на собеседованиях, поискать по интернету и т.д. В общем кое-как я подготовил 7 вопросов. 3 вопроса, на мой взгляд, были вообще элементарными, 2 — довольно простыми при наличии опыта, еще 2 — SQL-запросы, не из самых легких.</p>
<p>Итак, начали собеседование, я дал 15 минут на подготовку ответов на вопросы. По истечении этого времени кандидат дал 3 правильных ответа из 7 — 1 из категории элементарных, 2 из категории «простые при наличии опыта».</p>
<p>Такие ответы не давали полного понимания о знаниях человека. Вроде бы ответил на вопросы, которые должны были показать его опыт, но не ответил на 2 из 3-х элементарных вопросов. А что с SQL? Ответы были неправильными, но и вопросы не из легких.</p>
<p>Очевидно, что мною были неправильно подготовлены вопросы, они не позволяли понять знания кандидата. К слову сказать, в этот же день приходил еще один соискатель, с ним была примерно та же история — правильно ответил на 2 простых вопроса и 1 на проверку опыта.</p>
<p>Теперь мне нужно было подготовить правильные вопросы для проведения собеседования.  На следующий день должны были придти еще программисты, времени на подготовку вопросов было уже предостаточно.</p>
<p>Я решил, что все вопросы нужно разделить на несколько частей:</p>
<ol>
<li> <strong>Пара простейших вопросов, с которыми справится любой программист.</strong></li>
<p>Чтобы сразу же выявить тех, кто по своим знаниям нам точно не подходит. Должен сказать, что из всех собеседуемых таких оказалось 3 человека. С ними я сразу прощался, не переходя к более сложным вопросам.</p>
<li> <strong>Вопросы, на которые ответит любой программист с опытом.</strong></li>
<p>В общем-то это также несложные вопросы, но они показывают на сколько опытен программист. Например, человек, недавно окончивший университет и не работавший еще над более менее серьезными проектами, вряд ли будет знаком с различными <em>методами кэширования</em>, <em>системами контроля версий</em>, вряд ли он работал с <em>высоконагруженными проектами</em>.</p>
<li> <strong>Немного теории и вопросы по проектированию.</strong></li>
<p>Эта часть вопросов должна была показать на сколько человек способен работать самостоятельно, сможет ли он без тотального контроля решить задачу наиболее оптимальным способом. Сюда относятся составление правильной структуры БД еще до начала реализации, написание кода, который хорошо впишется в существующий. И не забываем про нагрузки — задача может быть реализована, прекрасно работать на девелоперских серверах, но после выката на продакшн может положить весь сайт.</p>
<li><strong>Несложные SQL-запросы.</strong></li>
<p>Ну и немного поломать мозг. Но только совсем слегка. Эта часть вопросов на составление <strong>SQL-запросов</strong>, все запросы довольно простые и при знании операторов SQL решаются быстро. Также здесь можно понять на сколько правильно человек выбирает методы решения — при незнании каких-то возможностей SQL, некоторые начинали составлять мегазапросы с огромным количеством подзапросов, join&#8217;ов и т.д.</p>
<li><strong>Вопросы не для всех.</strong></li>
<p>Эти вопросы я задавал только тем, кто с легкостью ответил на все предыдущие вопросы. Если они для соискателя очень простые, то хочется копнуть глубже и понять на сколько хороши его знания. Как правило, положительное решение по кандидатам, дошедших до этой части вопросов, у меня формировалось еще в середине собеседования.</ol>
<p>Первую версию вопросов я подготовил уже на следующий день. Вопросы готовил с той мыслью, что по окончании собеседования у меня должно быть четкое понимание готов ли я работать с этим человеком или нет, никаких сомнений быть не должно.</p>
<p>По началу после 1-2 собеседований я корректировал часть вопросов — некоторые вопросы были не понятны соискателям (криво составлены мной), некоторые я просто заменял, считая, что новые лучше подойдут для собеседования. В результате у меня сформировался список вопросов, с которым я ходил на каждое собеседование.</p>
<p>Для начала человек должен был ответить на 2 простых вопроса из 1-й части:</p>
<ol>
<li> <strong>jQuery</strong>
<ul>
<li>выбрать элементы с атрибутом id=&#8221;myID&#8221;</li>
<li>выбрать элементы с атрибутом class=&#8221;myClass&#8221;</li>
<li>выбрать все input&#8217;ы с атрибутом id=&#8221;myID&#8221;, которые находятся внутри &lt;div class=&#8221;myClass&#8221;&gt;</li>
</ul>
</li>
<li><strong>Javascript</strong>
<p>Необходимо выполнить команду alert(’!’) перед отправкой данных формы нажатием кнопки &#8220;ОК&#8221;.</p>
<p>Какой из перечисленных фрагментов кода позволит решить поставленную задачу?</p>
<ul>
<li>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="html" style="font-family:monospace;"> &lt;FORM ACTION=&quot;test.pl&quot; onSubmit=&quot;alert(’!’)&quot;&gt;
&lt;INPUT TYPE=&quot;text&quot; NAME=&quot;txt&quot;&gt;
&lt;INPUT TYPE=&quot;submit&quot; VALUE=&quot;OK&quot;&gt;
&lt;/FORM&gt;</pre></td></tr></table></div>

</li>
<li>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;FORM ACTION=&quot;test.pl&quot;&gt;
&lt;INPUT TYPE=&quot;text&quot; NAME=&quot;txt&quot;&gt;
&lt;INPUT TYPE=&quot;button&quot; VALUE=&quot;OK&quot; onClick=&quot;alert(’!’);this.submit()&quot;&gt;
&lt;/FORM&gt;</pre></td></tr></table></div>

</li>
<li>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;FORM ACTION=&quot;test.pl&quot;&gt;
&lt;INPUT TYPE=&quot;text&quot; NAME=&quot;txt&quot;&gt;
&lt;INPUT TYPE=&quot;submit&quot; VALUE=&quot;OK&quot; onSubmit=&quot;alert(’!’)&quot;&gt;
&lt;/FORM&gt;</pre></td></tr></table></div>

</li>
<li>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;FORM ACTION=&quot;test.pl&quot; onBeforeSubmit=&quot;alert(’!’)&quot;&gt;
&lt;INPUT TYPE=&quot;text&quot; NAME=&quot;txt&quot;&gt;
&lt;INPUT TYPE=&quot;submit&quot; VALUE=&quot;OK&quot;&gt;
&lt;/FORM&gt;</pre></td></tr></table></div>

</li>
</ul>
</li>
<p>На эти вопросы, думаю, ответит каждый web-программист. Далее я переходил к следующей части вопросов, которые должны были показать на сколько человек опытен:</p>
<li> <strong>Memcached</strong>. Что это такое? В каких случаях применяется?</li>
<p>Здесь я также просил рассказать соискателя вообще о кэшировании: как устроена система кэширования? Что обычно кэшируют? Когда кэширование не применимо?</p>
<p>Подавляющее большинство было знакомо с кэшированием, но никогда не слышали про memcached, и рассказывали о хранении кэша в файлах. В основном соискатели использовали кэширование только результатов SQL-запросов.</p>
<li> Что такое <strong>паттерн проектирования singleton</strong> и как он реализуется?</li>
<p>Стандартный ответ на этот вопрос был такой: «Я слышал про singleton, применяется в ООП, но как реализуется и для чего нужен не помню». Примерно каждый 4-й полностью отвечал на этот вопрос.</p>
<li> Командная строка *nix. Напишите команду, которая убьет все процессы, начинающиеся на «proc».</li>
<p>Из всех кандидатов на этот вопрос правильно ответили 2 человека. В основном все сразу говорили, что с командной строкой не особо знакомы, знают несколько команд, но не более.</p>
<li> Зачем нужен <em>HAVING в SQL</em>?</li>
<p>Для меня это было удивительно, но на этот вопрос правильно ответили лишь человека 2-3. Когда я включал этот вопрос в свой список, у меня были сомнения нужен ли он вообще, но, как оказалось, очень даже нужен и показывает опыт работы с SQL.</p>
<p>После этого один вопрос на теорию, здесь же я пытался выяснить, как человек будет справляться с задачами проектирования.</p>
<li> Что такое <em>нормализация БД</em>? Что такое <em>денормализация БД</em>? Для чего она нужна?</li>
<p>Здесь пополам, кто-то отвечал, кто-то нет. Почти каждого, особенно тех, кто не помнил или не слышал этих слов, после этого вопроса я просил набросать структуру БД для хранения товаров интернет-магазина, у каждого товара может быть от одного и более разделов.</p>
<li> Расскажите о способах хранения <strong>деревьев в таблице</strong>? Например, когда нужно реализовать <strong>древовидные комментарии</strong> к статье.</li>
<p>Большинство отвечали стандартно — у каждого комментария есть поле parent_id и т.д. Некоторые были знакомы с различными методами хранения деревьев, а были люди, которые прямо на собеседовании придумывали эти методы.</p>
<p>Далее следовали вопросы по составлению запросов SQL. Я не задавал ни одного сложного запроса, все они были простые, для правильного ответа требовалось только знание SQL.</p>
<li>Имеется таблица пользователей следующей структуры:

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> users <span style="color: #66cc66;">&#40;</span> 
id INT<span style="color: #66cc66;">&#40;</span> <span style="color: #cc66cc;">11</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> <span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">,</span>
username CHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">16</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">,</span>
city_id INT<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> 
<span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

<ul>
<li>id &#8211; целочисленный первичный ключ последовательной нумерации</li>
<li>username &#8211; логин пользователя</li>
<li>city_id &#8211; город проживания пользователя</li>
</ul>
<p>Необходимо выбрать города, в которых проживает не менее n пользователей</li>
<li>Имеется таблица для хранения информации о посещениях страниц пользователями:

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #ff0000;">`page_visit`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`id`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`user_id`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`page`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">200</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`date`</span> datetime <span style="color: #993333; font-weight: bold;">DEFAULT</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">,</span>
<span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span>  <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span></pre></td></tr></table></div>

<p>Необходимо вывести:</p>
<ol type="a">
<li> последних 10 пользователей, посетивших страницу «/about/»</li>
<li> всех пользователей, посетивших страницу «/about/», с указанием следующих данных:
<ul type="square">
<li>ID пользователя</li>
<li>Количество посещений страницы</li>
<li>Время первого посещения страницы</li>
<li>Время последнего посещения страницы</li>
</ul>
</li>
</ol>
</li>
<li>Есть 2 таблицы:

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> users <span style="color: #66cc66;">&#40;</span>
id INT<span style="color: #66cc66;">&#40;</span> <span style="color: #cc66cc;">11</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> <span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span><span style="color: #66cc66;">,</span>
username CHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">16</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span>
<span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> user_email <span style="color: #66cc66;">&#40;</span>
id INT<span style="color: #66cc66;">&#40;</span> <span style="color: #cc66cc;">11</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> <span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">,</span>
user_id INT<span style="color: #66cc66;">&#40;</span> <span style="color: #cc66cc;">11</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">,</span>
email CHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">16</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span>
<span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

<p>Необходимо вывести все email&#8217;ы пользователей, а также их логины.</li>
<p>Далее был вопрос для тех, кто без особых проблем справился со всеми предыдущими:</p>
<li> Пользовались telnet? Напишите, как при при помощи telnet обратиться к главной странице example.com.</li>
<p>На этот вопрос ответил только один человек из всех соискателей. Кстати, он был сисадмином и решил переквалифицироваться в web-программиста.</ol>
<p>Для последней части, возможно, следовало бы придумать вопросов побольше, но у меня так и не дошли руки до этого, да и задавать их пришлось всего раза 2-3.</p>
<p>Помимо этих вопросов, некоторых соискателей по ходу собеседования я спрашивал о том, с какими <em>фреймворками</em> они работали, работали ли с <em>системами контроля версий</em> (<em>svn</em>, <em>cvs</em>, <em>git</em>), смогут ли настроить web-сервер (<em>nginx</em>, <em>apache</em>).</p>
<p>В итоге мне пришлось провести около 20-ти собеседований, после которых в нашу компанию были взяты на работу 2 программиста. Мне удалось выполнить поставленную цель: один программист — начинающий, сейчас он учится и растет каждый день  нереальными темпами, второй программист — уже поработавший в нашей профессии достаточно времени и в данный момент решает наши повседневные задачи самостоятельно и без чьей-либо помощи, он в ней и не нуждается.</p>
<p>На мой взгляд, все вопросы, которые я задавал, были довольно простыми. Я считаю, что не покажет человек в полной мере своих знаний, если его бомбить <strong>сложными вопросами на собеседовании</strong>.</p>
<p>Мне даже известны случаи, когда сложные вопросы только мешали правильному пониманию возможностей человека. Рассказывал один знакомый, который любит выносить мозг соискателю на собеседовании: к ним приходил человек, ответивший на очень сложный вопрос, вся их команда была удивлена этому факту. В итоге его взяли, а потом пришлось уволить, т.к. этот новый сотрудник начал просто разрушать их проекты своим качеством кода, неправильным подходом в самом начале задачи. Проще говоря, за ним нужен был глаз да глаз, что не входило в планы команды.</p>
<p>Простые вопросы сразу дают ответ, знает человек тот или иной вопрос или нет. Для ответа на сложные вопросы, как правило, необходимо обладать знаниями из разных областей, да еще надо пораскинуть мозгами и правильно применить эти знания — нет четкого понимания о знании или незнании конкретного вопроса, а это мешает правильно оценить человека.</p>
<p>Сложные вопросы требуют много времени на ответ, кроме того такими вопросами можно довести кандидата до того состояния, когда он уже не в готов ответить даже на то, что знает. Этим можно пропустить, возможно, неплохого программиста в будущем.</p>
<p>Итак, мой вывод: на <strong>собеседовании</strong> нужно задавать только <strong>простые вопросы</strong>, <strong>сложным вопросам</strong> тут не место. Этим я и руководствовался, общаясь с программистами, теперь по истечении времени я понимаю, что такое собеседование в моем случае оказалось правильным, т.к. своих целей я добился.</p>
<p>А что вы думаете о простых и сложных <strong>собеседованиях для программистов</strong>? Каким оно должно быть?</p>
]]></content:encoded>
			<wfw:commentRss>http://job-interview.ru/articles/post/290/feed</wfw:commentRss>
		<slash:comments>195</slash:comments>
		</item>
		<item>
		<title>Нужны ли логические задачи на собеседовании?</title>
		<link>http://job-interview.ru/articles/post/7</link>
		<comments>http://job-interview.ru/articles/post/7#comments</comments>
		<pubDate>Sun, 28 Jun 2009 11:51:16 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Собеседования]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[вопросы]]></category>
		<category><![CDATA[задачи]]></category>
		<category><![CDATA[собеседование]]></category>

		<guid isPermaLink="false">/articles/?p=7</guid>
		<description><![CDATA[Не так давно я занялся поисками работы на должность web-программиста. Скажу сразу, что мой опыт работы в этой области составляет 2 года. Я просмотрел все имеющиеся вакансии в интернете, разослал свое резюме.
Ответ не заставил себя долго ждать, уже через 2 дня меня пригласили на собеседование.
В вакансии от соискателя требовался стандартный набор навыков:

PHP
MySQL
JavaScript
ООП

Думаю каждый web-разработчик обладает [...]]]></description>
			<content:encoded><![CDATA[<p>Не так давно я занялся <em>поисками работы</em> на должность <strong>web-программиста</strong>. Скажу сразу, что мой опыт работы в этой области составляет 2 года. Я просмотрел все имеющиеся <em>вакансии в интернете</em>, разослал свое резюме.</p>
<p>Ответ не заставил себя долго ждать, уже через 2 дня меня пригласили на <strong>собеседование</strong>.<br />
В вакансии от соискателя требовался стандартный набор навыков:</p>
<ul>
<li><em>PHP</em></li>
<li><em>MySQL</em></li>
<li><em>JavaScript</em></li>
<li><em>ООП</em></li>
</ul>
<p>Думаю каждый <strong>web-разработчик</strong> обладает этими навыками. Однако времени на подготовку и повторение всего того, что я знаю, у меня совсем не было, да и на первое собеседование я шел скорее с целью &#8220;разведать обстановку&#8221; — какие <strong>вопросы на собеседованиях</strong> сейчас задают я совершенно не знал.</p>
<p>Интерес к этой вакансии у меня был огромный &#8211; в описании к ней было указано, что компания работает в игровой индустрии и производит различные MMORPG и <a href="http://igruli.com.ua/">flash игры</a>, а к играм я с детства неравнодушен.</p>
<p>Добираясь до офиса я прокручивал у себя в голове все возможные вопросы, которые мне могут задать. Мысленно я для себя готовил ответы на различные вопросы, связанные с тем, что было перечислено в вакансии.</p>
<p>Придя в офис, меня сразу же направили к старшему программисту, который должен был проводить со мной собеседование. Усадили меня прямо за его столом и сказали немного подождать. Когда он пришел, то к моему удивлению предложил мне 2 <strong>задачи на логику</strong> и дал 10 минут на их решение.</p>
<p>Привожу эти <strong>задачи с собеседования</strong>.</p>
<blockquote>
<ol>
<li>В стакан положили бактерии. Каждую секунду бактерии увеличиваются в 2 раза. Известно, что стакан заполняется полностью за минуту. За какое время стакан наполнится наполовину?</li>
<li>Представьте себе, что земной шар обмотали веревкой по экватору. Потом веревку увеличили на 1 метр и расположили так, что любая точка экватора равноудалена от веревки. Сможет ли между веревками пролезть мышь?</li>
</ol>
</blockquote>
<p>Вообще в школе и в университете у меня с математикой проблем не было, поэтому не думал, что задачи вызовут какие-то проблемы. Однако, за отведенное время я их не решил.</p>
<p>По моему 10 минут — это слишком мало для таких задач, тем более на собеседовании, где человек в любом случае волнуется.</p>
<p>Понятно, что это <strong>задачи с подвохом</strong> на проверку сообразительности и работодатель тем самым хочет отсеить простых кодировщиков, которые программируют не думая ни о каких алгоритмах. К кодировщикам я себя не отношу.</p>
<p>Придя домой, я решил их и потратил на поиски решения примерно час.</p>
<p>Первая задача очень понравилась, к ней как бы надо подойти с особой стороны.<br />
Вторая — это просто обычная математика, решается применением всем известных формул.<br />
Понятно, что собеседование я не прошел, хотя на вопросы, связанные с <em>программированием</em> отвечал довольно неплохо.</p>
<p>После этого собеседования у меня возникли следующие <em>вопросы</em>:</p>
<ul>
<li>Достаточное ли время 10 минут, чтобы решить такие задачи?</li>
<li>Кому бы этого времени хватило?</li>
<li>Вообще нужны ли <strong>каверзные вопросы</strong> на проверку логики на собеседовании, ведь никто не даст соискателю достаточное время на поиски решения?</li>
</ul>
<p>Также жду <strong>варианты решений задач</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://job-interview.ru/articles/post/7/feed</wfw:commentRss>
		<slash:comments>1026</slash:comments>
		</item>
	</channel>
</rss>
