<?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>FulcrumWeb</title>
	<atom:link href="http://www.fulcrumweb.com.ua/feed" rel="self" type="application/rss+xml" />
	<link>http://www.fulcrumweb.com.ua</link>
	<description>Все для карьеры  программиста</description>
	<lastBuildDate>Wed, 16 May 2012 09:46:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
			<item>
		<title>Решение задачи сериализации дерева на C#</title>
		<link>http://www.fulcrumweb.com.ua/archives/3653</link>
		<comments>http://www.fulcrumweb.com.ua/archives/3653#comments</comments>
		<pubDate>Tue, 08 May 2012 11:04:55 +0000</pubDate>
		<dc:creator>Галина</dc:creator>
				<category><![CDATA[Тестовые проекты (2-3 часа)]]></category>
		<category><![CDATA[Приведено решение]]></category>
		<category><![CDATA[Тестовое задание]]></category>
		<category><![CDATA[Язык C#]]></category>

		<guid isPermaLink="false">http://www.fulcrumweb.com.ua/?p=3653</guid>
		<description><![CDATA[В посте Сериализация дерева сформулировано условие задачи о сериализации/десериализации дерева. Здесь будет приведен один из возможных вариантов ее решения на языке C#. Решение это интересно тем, что будут использованы стандартные средства языка и продемонстрирован подход, который непосредственно применить в C++ не представляется возможным. Таким образом, будет продемонстрирована разница в возможностях двух языков и умение ею [...]]]></description>
			<content:encoded><![CDATA[<p>В посте <a href="http://www.fulcrumweb.com.ua/?p=3615">Сериализация дерева</a> сформулировано условие задачи о сериализации/десериализации дерева. Здесь будет приведен один из возможных вариантов ее решения на языке C#. Решение это интересно тем, что будут использованы стандартные средства языка и продемонстрирован подход, который непосредственно применить в C++ не представляется возможным. Таким образом, будет продемонстрирована разница в возможностях двух языков и умение ею пользоваться для наиболее эффективного решения задач.</p>
<p>Итак, предлагается сериализация дерева в текстовый файл в XML формате, так как для этого в языке имеются готовые средства настолько мощные, что писать код собственно методов сериализации нет необходимости, а нужно только знать возможности стандартной сериализации и уметь грамотно ими воспользоваться. Для демонстрации достаточно ограничиться двумя производными классами, исключив <strong>DoubleHolder</strong>, а <strong>CharArrayHolder </strong> естественным образом заменить классом <strong>StringHolder</strong>, поле данных которого имеет обычный тип <strong>string</strong>.</p>
<p style="text-align: center;"><span style="font-size: medium;"><strong><span style="font-family: comic sans ms,sans-serif;">Замечания и упрощения</span></strong></span></p>
<p>С целью экономии времени, а так же для того, чтобы сконцентрироваться на сути задачи, в решении допущены определенные упрощения и отступления от канонов. А именно:</p>
<ul>
<li>Во всех классах все поля объявлены с модификатором <strong>public</strong>.</li>
<li>Отсутствует обработка исключений.</li>
<li>Работа с файлами упрощена до предела, имя файла задается хардкодом, обработка ошибок отсутствует.</li>
<li>Поле ID (ключ для узла) добавлено в базовый класс в целях иллюстрации &#8211; по условию оно не нужно, но, возможно, что кто-то захочет его ввести, создавая свой собственный алгоритм сериализации/десериализации, основанный на использовании уникальных ключей узлов.</li>
<li>Рассуждения по поводу выбора оптимального типа данных для строковых значений (например, <strong>StringBuilder</strong>) считаются выходящими за рамки задачи.</li>
<li>Комментарии и объяснения опущены, предполагается, что текст программы является в достаточной степени самодокументированным, а относящаяся к делу теория легко обнаружится по ссылке <a href="http://msdn.microsoft.com/ru-ru/library/3z3z5s6h.aspx" title="Ссылка на MSDN" target="_blank" rel = "nofollow">MSDN base topic reference.</a></li>
</ul>
<div class='et-learn-more clearfix'>
					<h3 class='heading-more'><span>Код решения задачи сериализации дерева на C#</span></h3>
					<div class='learn-more-content'>
<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">&nbsp;
<span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008080;">System</span><span style="color: #008000;">;</span>
<span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008080;">System.Collections.Generic</span><span style="color: #008000;">;</span>
<span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008080;">System.Linq</span><span style="color: #008000;">;</span>
<span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008080;">System.Text</span><span style="color: #008000;">;</span>
<span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008080;">System.IO</span><span style="color: #008000;">;</span>
<span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008080;">System.Xml</span><span style="color: #008000;">;</span>
<span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008080;">System.Xml.Serialization</span><span style="color: #008000;">;</span>
&nbsp;
    <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">class</span> BaseHolder
    <span style="color: #008000;">&#123;</span>
        <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">int</span> ID<span style="color: #008000;">;</span>
        <span style="color: #0600FF; font-weight: bold;">public</span> List Next <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> List<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
    <span style="color: #008000;">&#125;</span>
&nbsp;
    <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">class</span> Tree
    <span style="color: #008000;">&#123;</span>
        <span style="color: #0600FF; font-weight: bold;">public</span> BaseHolder TreeRoot<span style="color: #008000;">;</span>
    <span style="color: #008000;">&#125;</span>
&nbsp;
    <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">class</span> StringHolder <span style="color: #008000;">:</span> BaseHolder
    <span style="color: #008000;">&#123;</span>
        <span style="color: #0600FF; font-weight: bold;">public</span> StringHolder<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span> <span style="color: #008000;">&#125;</span>
        <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">string</span> Data<span style="color: #008000;">;</span>
    <span style="color: #008000;">&#125;</span>
&nbsp;
    <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">class</span> IntHolder <span style="color: #008000;">:</span> BaseHolder
    <span style="color: #008000;">&#123;</span>
        <span style="color: #0600FF; font-weight: bold;">public</span> IntHolder<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span> <span style="color: #008000;">&#125;</span>
         <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">int</span> Data<span style="color: #008000;">;</span>
    <span style="color: #008000;">&#125;</span>
&nbsp;
    <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">class</span> Run
    <span style="color: #008000;">&#123;</span>
        <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #0600FF; font-weight: bold;">static</span> <span style="color: #6666cc; font-weight: bold;">void</span> Main<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            Run test <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Run<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            XmlAttributeOverrides attrOverrides <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> XmlAttributeOverrides<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            Tree Tree <span style="color: #008000;">=</span> test<span style="color: #008000;">.</span><span style="color: #0000FF;">TestTreeCreation</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            <span style="color: #6666cc; font-weight: bold;">string</span> filename <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;d:<span style="color: #008080; font-weight: bold;">\\</span>Tree.xml&quot;</span><span style="color: #008000;">;</span>
&nbsp;
            attrOverrides <span style="color: #008000;">=</span> test<span style="color: #008000;">.</span><span style="color: #0000FF;">PrepareOverriddenAttributes</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            test<span style="color: #008000;">.</span><span style="color: #0000FF;">WrightSerializedTree</span><span style="color: #008000;">&#40;</span>filename, attrOverrides, Tree<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            Tree NewTree <span style="color: #008000;">=</span> test<span style="color: #008000;">.</span><span style="color: #0000FF;">ReadSerializedTree</span><span style="color: #008000;">&#40;</span>filename, attrOverrides<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #008000;">&#125;</span>
&nbsp;
         <span style="color: #0600FF; font-weight: bold;">private</span> XmlAttributeOverrides PrepareOverriddenAttributes<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            XmlAttributeOverrides attrOverrides <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> XmlAttributeOverrides<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
            XmlAttributes attrs <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> XmlAttributes<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            <span style="color: #008080; font-style: italic;">/* Override the BaseHolder class.*/</span>
            XmlElementAttribute attr <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> XmlElementAttribute<span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Alumni&quot;</span>, <span style="color: #008000;">typeof</span><span style="color: #008000;">&#40;</span>StringHolder<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
            attrs<span style="color: #008000;">.</span><span style="color: #0000FF;">XmlElements</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Add</span><span style="color: #008000;">&#40;</span>attr<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            XmlElementAttribute attr1 <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> XmlElementAttribute<span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Alumnu&quot;</span>, <span style="color: #008000;">typeof</span><span style="color: #008000;">&#40;</span>IntHolder<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
            attrs<span style="color: #008000;">.</span><span style="color: #0000FF;">XmlElements</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Add</span><span style="color: #008000;">&#40;</span>attr1<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            attrOverrides<span style="color: #008000;">.</span><span style="color: #0000FF;">Add</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">typeof</span><span style="color: #008000;">&#40;</span>Tree<span style="color: #008000;">&#41;</span>, <span style="color: #666666;">&quot;TreeRoot&quot;</span>, attrs<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            <span style="color: #0600FF; font-weight: bold;">return</span> attrOverrides<span style="color: #008000;">;</span>
        <span style="color: #008000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #6666cc; font-weight: bold;">void</span> WrightSerializedTree<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">string</span> filename, XmlAttributeOverrides attrOverrides, Tree Tree<span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            TextWriter myStreamWriter <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> StreamWriter<span style="color: #008000;">&#40;</span>filename<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            XmlSerializer mySerializer <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> XmlSerializer <span style="color: #008000;">&#40;</span><span style="color: #008000;">typeof</span><span style="color: #008000;">&#40;</span>Tree<span style="color: #008000;">&#41;</span>, attrOverrides<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            mySerializer<span style="color: #008000;">.</span><span style="color: #0000FF;">Serialize</span><span style="color: #008000;">&#40;</span>myStreamWriter, Tree<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
            myStreamWriter<span style="color: #008000;">.</span><span style="color: #0000FF;">Close</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #008000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF; font-weight: bold;">private</span> Tree ReadSerializedTree<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">string</span> filename, XmlAttributeOverrides attrOverrides<span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            XmlSerializer readSerializer <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> XmlSerializer<span style="color: #008000;">&#40;</span><span style="color: #008000;">typeof</span><span style="color: #008000;">&#40;</span>Tree<span style="color: #008000;">&#41;</span>, attrOverrides<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            FileStream fs <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> FileStream<span style="color: #008000;">&#40;</span>filename, FileMode<span style="color: #008000;">.</span><span style="color: #0000FF;">Open</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            Tree Tree <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Tree<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
            Tree <span style="color: #008000;">=</span> <span style="color: #008000;">&#40;</span>Tree<span style="color: #008000;">&#41;</span>readSerializer<span style="color: #008000;">.</span><span style="color: #0000FF;">Deserialize</span><span style="color: #008000;">&#40;</span>fs<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
            fs<span style="color: #008000;">.</span><span style="color: #0000FF;">Close</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #0600FF; font-weight: bold;">return</span> Tree<span style="color: #008000;">;</span>
        <span style="color: #008000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF; font-weight: bold;">private</span> Tree TestTreeCreation<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            Tree Tree <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Tree<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            <span style="color: #008080; font-style: italic;">//Creating simple tesing data</span>
            StringHolder g1 <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> StringHolder<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
            g1<span style="color: #008000;">.</span><span style="color: #0000FF;">ID</span> <span style="color: #008000;">=</span> <span style="color: #FF0000;">1</span><span style="color: #008000;">;</span>
            g1<span style="color: #008000;">.</span><span style="color: #0000FF;">Data</span> <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;Alma Mater&quot;</span><span style="color: #008000;">;</span>
&nbsp;
            StringHolder g2 <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> StringHolder<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
            g2<span style="color: #008000;">.</span><span style="color: #0000FF;">ID</span> <span style="color: #008000;">=</span> <span style="color: #FF0000;">2</span><span style="color: #008000;">;</span>
            g2<span style="color: #008000;">.</span><span style="color: #0000FF;">Data</span> <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;CM&quot;</span><span style="color: #008000;">;</span>
            g2<span style="color: #008000;">.</span><span style="color: #0000FF;">Next</span> <span style="color: #008000;">=</span> <span style="color: #0600FF; font-weight: bold;">null</span><span style="color: #008000;">;</span>
            g1<span style="color: #008000;">.</span><span style="color: #0000FF;">Next</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Add</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#40;</span>BaseHolder<span style="color: #008000;">&#41;</span>g2<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            IntHolder g3 <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> IntHolder<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
            g3<span style="color: #008000;">.</span><span style="color: #0000FF;">ID</span> <span style="color: #008000;">=</span> <span style="color: #FF0000;">3</span><span style="color: #008000;">;</span>
            g3<span style="color: #008000;">.</span><span style="color: #0000FF;">Data</span> <span style="color: #008000;">=</span> <span style="color: #FF0000;">333</span><span style="color: #008000;">;</span>
            g1<span style="color: #008000;">.</span><span style="color: #0000FF;">Next</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Add</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#40;</span>BaseHolder<span style="color: #008000;">&#41;</span>g3<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            StringHolder g4 <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> StringHolder<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
            g4<span style="color: #008000;">.</span><span style="color: #0000FF;">ID</span> <span style="color: #008000;">=</span> <span style="color: #FF0000;">4</span><span style="color: #008000;">;</span>
            g4<span style="color: #008000;">.</span><span style="color: #0000FF;">Data</span> <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;UNI444&quot;</span><span style="color: #008000;">;</span>
            g4<span style="color: #008000;">.</span><span style="color: #0000FF;">Next</span> <span style="color: #008000;">=</span> <span style="color: #0600FF; font-weight: bold;">null</span><span style="color: #008000;">;</span>
            g3<span style="color: #008000;">.</span><span style="color: #0000FF;">Next</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Add</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#40;</span>BaseHolder<span style="color: #008000;">&#41;</span>g4<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            IntHolder g5 <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> IntHolder<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
            g5<span style="color: #008000;">.</span><span style="color: #0000FF;">ID</span> <span style="color: #008000;">=</span> <span style="color: #FF0000;">5</span><span style="color: #008000;">;</span>
            g5<span style="color: #008000;">.</span><span style="color: #0000FF;">Data</span> <span style="color: #008000;">=</span> <span style="color: #FF0000;">555</span><span style="color: #008000;">;</span>
            g5<span style="color: #008000;">.</span><span style="color: #0000FF;">Next</span> <span style="color: #008000;">=</span> <span style="color: #0600FF; font-weight: bold;">null</span><span style="color: #008000;">;</span>
            g3<span style="color: #008000;">.</span><span style="color: #0000FF;">Next</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Add</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#40;</span>BaseHolder<span style="color: #008000;">&#41;</span>g5<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            Tree<span style="color: #008000;">.</span><span style="color: #0000FF;">TreeRoot</span> <span style="color: #008000;">=</span> g1<span style="color: #008000;">;</span>
            <span style="color: #0600FF; font-weight: bold;">return</span> Tree<span style="color: #008000;">;</span>
        <span style="color: #008000;">&#125;</span>
    <span style="color: #008000;">&#125;</span></pre></div></div>
</div>
				</div>
<p>Файл, который получается в результате работы программы выглядит так<br />
<img src="http://www.fulcrumweb.com.ua/ukr/wp-content/uploads/2012/05/TreeXML.png" alt="XML-cериализованное дерево" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fulcrumweb.com.ua/archives/3653/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Барометр и правильные ответы</title>
		<link>http://www.fulcrumweb.com.ua/archives/3640</link>
		<comments>http://www.fulcrumweb.com.ua/archives/3640#comments</comments>
		<pubDate>Sun, 29 Apr 2012 11:18:15 +0000</pubDate>
		<dc:creator>Яков</dc:creator>
				<category><![CDATA[Юмор]]></category>

		<guid isPermaLink="false">http://www.fulcrumweb.com.ua/?p=3640</guid>
		<description><![CDATA[Давненько у нас не было новых постов в разделе &#8220;Юмор&#8221;.  Думаю, чтение реальной истории, приведенной ниже, может вызвать у вас улыбку. Warning: подразумевается, что читатель знаком со школьной программой по физике. Сэр Эрнест Рутерфорд, президент Королевской Академии и лауреат  Нобелевской премии по физике, рассказывал следующую историю,  служащую великолепным примером того, что не всегда просто дать  [...]]]></description>
			<content:encoded><![CDATA[<p>Давненько у нас не было новых постов в разделе &#8220;Юмор&#8221;. </p>
<p>Думаю, чтение реальной истории, приведенной ниже, может вызвать у вас улыбку.</p>
<p>Warning: подразумевается, что читатель знаком со школьной программой по физике.</p>
<p>Сэр Эрнест Рутерфорд, президент Королевской Академии и лауреат <br /> Нобелевской премии по физике, рассказывал следующую историю, <br /> служащую великолепным примером того, что не всегда просто дать <br /> единственно правильный ответ на вопрос.</p>
<p>Некоторое время назад коллега обратился ко мне за помощью. Он собирался<br /> поставить самую низкую оценку по физике одному из своих студентов, в то<br /> время как этот студент утверждал, что заслуживает высшего балла. Оба,<br /> преподаватель и студент, согласились положиться на суждение третьего <br /> лица, незаинтересованного арбитра; выбор пал на меня. Экзаменационный<br /> вопрос гласил: &#8220;Объясните, каким образом можно измерить высоту здания с<br /> помощью барометра&#8221;.</p>
<p>Ответ студента был таким: &#8220;Нужно подняться с барометром на крышу здания,<br /> спустить барометр вниз на длинной веревке, а затем втянуть его обратно<br /> и измерить длину веревки, которая и покажет точную высоту здания&#8221;.</p>
<p>Случай был и впрямь сложный, так как ответ был абсолютно полным и<br /> верным! С другой стороны, экзамен был по физике, а ответ имел мало<br /> общего с применением знаний в этой области.</p>
<p>Я предложил студенту попытаться ответить еще раз. Дав ему шесть минут<br /> на подготовку, я предупредил его, что ответ должен демонстрировать<br /> знание физических законов. По истечении пяти минут он так и не написал<br /> ничего в экзаменационном листе. Я спросил его, сдается ли он, но он<br /> заявил, что у него есть несколько решений проблемы, и он просто <br /> выбирает лучшее.</p>
<p>Заинтересовавшись, я попросил молодого человека приступить к ответу,<br /> не дожидаясь истечения отведенного срока. Новый ответ на вопрос гласил:<br /> &#8220;Поднимитесь с барометром на крышу и бросьте его вниз, замеряя время<br /> падения. Затем, используя формулу L = (a*t^2)/2, вычислите высоту здания&#8221;.</p>
<p>Тут я спросил моего коллегу, преподавателя, доволен ли он этим ответом.<br /> Тот, наконец, сдался, признав ответ удовлетворительным. Однако студент<br /> упоминал, что знает несколько ответов, и я попросил его открыть их нам.</p>
<p>&#8220;Есть несколько способов измерить высоту здания с помощью барометра&#8221;,<br /> начал студент. &#8220;Например, можно выйти на улицу в солнечный день<br /> и измерить высоту барометра и его тени, а также измерить длину тени<br /> здания. Затем, решив несложную пропорцию, определить высоту самого <br /> здания.&#8221;</p>
<p>&#8220;Неплохо&#8221;, сказал я. &#8220;Есть и другие способы?&#8221;</p>
<p>&#8220;Да. Есть очень простой способ, который, уверен, вам понравится. Вы<br /> берете барометр в руки и поднимаетесь по лестнице, прикладывая барометр<br /> к стене и делая отметки. Сосчитав количество этих отметок и умножив его<br /> на размер барометра, вы получите высоту здания. Вполне очевидный метод.&#8221;</p>
<p>&#8220;Если вы хотите более сложный способ&#8221;, продолжал он, &#8220;то привяжите<br /> к барометру шнурок и, раскачивая его, как маятник, определите величину<br /> гравитации у основания здания и на его крыше. Из разницы между этими<br /> величинами, в принципе, можно вычислить высоту здания. В этом же случае,<br /> привязав к барометру шнурок, вы можете подняться с вашим маятником на <br /> крышу и, раскачивая его, вычислить высоту здания по периоду прецессии.&#8221;</p>
<p>&#8220;Наконец&#8221;, заключил он, &#8220;среди множества прочих способов решения данной<br /> проблемы лучшим, пожалуй, является такой: возьмите барометр с собой,<br /> найдите управляющего и скажите ему: &#8220;Господин управляющий, у меня есть<br /> замечательный барометр. Он ваш, если вы скажете мне высоту этого здания&#8221;.</p>
<p>Тут я спросил студента &#8211; неужели он действительно не знал общепринятого<br /> решения этой задачи. Он признался, что знал, но сказал при этом, что<br /> сыт по горло школой и колледжем, где учителя навязывают ученикам свой <br /> способ мышления.</p>
<p>* * * * * * * * * *</p>
<p>Студентом этим был Нильс Бор (1885-1962), датский физик, лауреат <br /> Нобелевской премии 1922 г.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fulcrumweb.com.ua/archives/3640/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Сериализация дерева</title>
		<link>http://www.fulcrumweb.com.ua/archives/3615</link>
		<comments>http://www.fulcrumweb.com.ua/archives/3615#comments</comments>
		<pubDate>Fri, 27 Apr 2012 08:01:02 +0000</pubDate>
		<dc:creator>Галина</dc:creator>
				<category><![CDATA[Тестовые проекты (2-3 часа)]]></category>
		<category><![CDATA[Задача на 3 часа]]></category>
		<category><![CDATA[Разбор кода]]></category>
		<category><![CDATA[Собеседование]]></category>
		<category><![CDATA[Тестовое задание]]></category>
		<category><![CDATA[Язык C++]]></category>

		<guid isPermaLink="false">http://www.fulcrumweb.com.ua/?p=3615</guid>
		<description><![CDATA[Пришло время рассекретить наше очередное тестовое задание, которое использовалось в процессе собеседований последнее время. Руководствуясь результатами выполнения этого задания, нами было нанято 3 сотрудника, среди которых как начинающие программисты, так и разработчик с опытом работы. Постановка сериализация/десериализация дерева Необходимо реализовать простую иерархию классов для хранения нескольких простых типов данных:  int (32 бита);  char[10];  double.  Предполагается [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-family: comic sans ms,sans-serif; font-size: medium; color: #000000;">Пришло время рассекретить наше очередное тестовое задание, которое использовалось в процессе собеседований последнее время. Руководствуясь результатами выполнения этого задания, нами было нанято 3 сотрудника, среди которых как начинающие программисты, так и разработчик с опытом работы.</span></p>
<h4 align="center"><span style="font-family: comic sans ms,sans-serif; color: #3366ff;"><strong>Постановка сериализация/десериализация дерева</strong></span></h4>
<p><span style="font-family: verdana,geneva;">Необходимо реализовать простую иерархию классов для хранения нескольких простых типов данных: <strong> int (32 бита);  char[10];  double.  </strong></span></p>
<p><span style="font-family: verdana,geneva;">Предполагается единственный абстрактный базовый класс – <strong>BaseHolder</strong>, и его наследники – <strong>IntHolder</strong>, <strong>CharArrayHolder</strong> и <strong>DoubleHolder</strong>.</span></p>
<p><span style="font-family: verdana,geneva;">Далее необходимо реализовать структуру данных &#8211; дерево указателей на базовый класс &#8211; и наполнить его в теле программы несколькими  произвольными элементами, используя разные типы (int , char[], double).</span></p>
<p><span style="font-family: verdana,geneva;">Пример такого дерева приведен на рисунке<a href="http://www.fulcrumweb.com.ua/ukr/wp-content/uploads/2012/04/TreeSerialForTestTask.png" rel="lightbox[3615]"><img class="aligncenter size-full wp-image-3616" title="TreeSerialForTestTask" src="http://www.fulcrumweb.com.ua/ukr/wp-content/uploads/2012/04/TreeSerialForTestTask.png" alt="" width="470" height="318" /></a></span></p>
<p><span style="font-family: verdana,geneva;">В рамках тестового задания необходимо реализовать код сохранения и восстановления дерева. </span></p>
<ul>
<li><span style="font-family: verdana,geneva;">Вариант 1. Бинарный файл – (можно применять любые API для чтения и записи).</span></li>
<li><span style="font-family: verdana,geneva;">Вариант 2. Текстовый файл – (можно применять любые API для чтения и записи).</span></li>
<li><span style="font-family: verdana,geneva;">Вариант 3. Непрерывная область памяти,  выделенная через  new char[N].</span></li>
</ul>
<p><span style="font-family: verdana,geneva;">* Выбор варианта &#8211; на усмотрение исполнителя.</span></p>
<p><span style="font-family: verdana,geneva;"><strong>Стадии реализации</strong></span></p>
<p><span style="font-family: verdana,geneva;">Стадия #1: Реализовать сохранение/восстановление списка (в некоторых случаях допускалось упрощение задачи).</span></p>
<p><span style="font-family: verdana,geneva;">Стадия #2: Реализовать сохранение/восстановление дерева &#8211; основная.</span></p>
<p><span style="color: #3366ff;"><strong><span style="font-family: comic sans ms,sans-serif;">Дальше мы планируем полный разбор вариантов решения данной задачи и с их достоинствами и недостатками.  </span></strong></span></p>
<p style="text-align: center;"><span style="color: #000000; font-size: medium;"><strong><span style="font-family: comic sans ms,sans-serif;">Общие соображения</span></strong></span></p>
<p><span style="color: #000000;"><strong><span style="font-family: comic sans ms,sans-serif;">1) ООП и структура данных. </span></strong><span style="font-family: comic sans ms,sans-serif;"><span style="font-family: verdana,geneva;">Необходимый дизайн классов для узлов дерева описан в условии, &#8211; его и нужно реализовать. При этом в <strong>BaseHolder</strong> нужно добавить контейнер для хранения ссылок на дочерние узлы, а в производные классы &#8211; поле для данных подходящего типа. Это минимально необходимые данные, при наличии которых задача решаема. Очевидно, что необходим еще класс <strong>Tree,</strong> который реализует собственно дерево. Этот класс должен содержать открытый указатель на корень дерева, через этот указатель дерево должно полностью обходиться одним из стандартных способов. Разумеется, можно реализовывать более сложные и эффективные структуры данных для описания дерева, некоторые варианты далее будут рассмотрены.</span></span><strong><span style="font-family: comic sans ms,sans-serif;"> <br /></span></strong></span></p>
<p><span style="color: #000000;"><strong><span style="font-family: comic sans ms,sans-serif;">2) Выбор типа сериализации. </span></strong><span style="font-family: verdana,geneva;">Мне нравится вариант под номером 2, так как текстовое представление наиболее наглядно, можно просто просматривать файл с результатами сериализации, а разобравшись в его формате, легко готовить тестовые данные для десериализации.</span></span></p>
<p><span style="color: #000000;"><strong><span style="font-family: comic sans ms,sans-serif;">3) Тестирование. </span></strong><span style="font-family: verdana,geneva;">При наличии времени и желания, можно наполнить класс Tree всевозможной функциональностью для вставки и удаления узлов, отображения дерева на экране в структурированном виде и прочих полезных штук. Но в рамках задания достаточно прямо в коде создать тестовые данные, правильно сцепив ссылки узлов друг на друга хардкодом. Проверку того, что дерево построено правильно можно выполнять просто в отладчике, пройдя по ссылкам вручную.</span></span></p>
<p style="text-align: center;"><span style="color: #000000; font-size: medium;"><strong><span style="font-family: comic sans ms,sans-serif;"><strong>Ссылки на посты с решениями</strong></span></strong></span></p>
<p><a title="Сериализация дерева на C#" href="http://www.fulcrumweb.com.ua/archives/3653">Решение задачи сериализации дерева на C#</a>. Выбрана стандартная XML-сериализация с использованием функциональности из  <strong>System.Xml.Serialization.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fulcrumweb.com.ua/archives/3615/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Работа в ИТ &#8211; стоит ли упираться</title>
		<link>http://www.fulcrumweb.com.ua/archives/3586</link>
		<comments>http://www.fulcrumweb.com.ua/archives/3586#comments</comments>
		<pubDate>Thu, 19 Apr 2012 13:12:16 +0000</pubDate>
		<dc:creator>Галина</dc:creator>
				<category><![CDATA[Обучающие проекты]]></category>
		<category><![CDATA[FulcrumWeb]]></category>
		<category><![CDATA[Начинающий программист]]></category>
		<category><![CDATA[Советы]]></category>

		<guid isPermaLink="false">http://www.fulcrumweb.com.ua/?p=3586</guid>
		<description><![CDATA[Сейчас ИТ &#8211; это чуть ли не единственная сфера деятельности на Украине, где реальное ВЫСШЕЕ ИНЖЕНЕРНОЕ ОБРАЗОВАНИЕ ВОСТРЕБОВАНО.  Под высшим образованием имеется в виду совсем не корочка вуза, а именно владение достаточно обширным набором сложных технических знаний и наличие навыков их практического применения. Чтобы этим всем овладеть, действительно НУЖНО УЧИТЬСЯ. К сожалению, реалии сейчас таковы, [...]]]></description>
			<content:encoded><![CDATA[<p>Сейчас ИТ &#8211; это чуть ли не единственная сфера деятельности на Украине, где реальное ВЫСШЕЕ ИНЖЕНЕРНОЕ ОБРАЗОВАНИЕ ВОСТРЕБОВАНО.  Под высшим образованием имеется в виду совсем не корочка вуза, а именно владение достаточно обширным набором сложных технических знаний и наличие навыков их практического применения. Чтобы этим всем овладеть, действительно НУЖНО УЧИТЬСЯ.</p>
<p>К сожалению, реалии сейчас таковы, что сначала нужно найти способ учиться эффективно.  Вариантов здесь немного: можно учить &#8220;C++ за 21 день&#8221;, можно  самостоятельно бродить по просторам интернета, но как ни крути — государственные вузы сейчас и в обозримой перспективе — основная кузница кадров для отрасли. И эти вузы еще долго будут такими, как они есть.</p>
<p>Штука в том, что ОБРАЗОВАТЕЛЬНАЯ УСЛУГА — исключительно сложный продукт для потребителя. На старте этот потребитель самостоятельно никак не может определить, кому можно доверять, кто реально даст качество и что ПОТРЕБУЕТСЯ ОТ НЕГО САМОГО, для того чтобы это качество было достигнуто. И родители тоже могут тут помочь толково, только если они сами в теме.</p>
<p>Поэтому идут, туда, куда кто-то посоветовал, уговорил, заманил.  И приходится проявлять большую самостоятельность как в поиске места получения образования, так и в адаптации к способу его получения.  И неизбежной реалией является необходимость  самостоятельно доучивать много всего за рамками стандартных вузовских учебных программ.</p>
<p>Но овчинка стоит выделки &#8211; если есть голова на плечах, технический склад ума и присутствует нормальное человеческое желание делать дело и получать за это достойное материальное вознаграждение, &#8211; тогда ИТ профессия, наверное, сейчас является оптимальным выбором.</p>
<p>А с востребованностью профессии все выглядит в порядке и сейчас и в перспективе &#8211; вот далеко неполный перечень только харьковских ИТ компаний:</p>
<p>Ciklum, Altron, Akvelon, Upsale, Telesens, EPAM, GameLoft, Stella Systems, Qualium Systems, QArea, NIX Solutions, Miratech, Mirantis, Itera research, Intetics, Infostroy, GlobalLogic, EDI Direct, DBBest, Intego, Inbitec.</p>
<p>И все эти компании активно развиваются, жестко конкурируя друг с другом за квалифицированные кадры. И уже в воздухе витают идеи перехода от конкуренции к сотрудничеству, смысл которого, в подготовке молодого специалиста не для собственных нужд компании, а для ИТ рынка Украины в целом.</p>
<p>Кстати, наша компания всецело приветствует такой подход и наш проект <a href="http://it-interview.org" title="http://it-interview.org" target="_blank">http://it-interview.org/</a> &#8211; это наш скромный вклад в общее дело.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fulcrumweb.com.ua/archives/3586/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Обсуждение правил конкурса &#8220;Реши задачу &#8211; получи приз&#8221;</title>
		<link>http://www.fulcrumweb.com.ua/archives/3552</link>
		<comments>http://www.fulcrumweb.com.ua/archives/3552#comments</comments>
		<pubDate>Tue, 17 Apr 2012 12:07:42 +0000</pubDate>
		<dc:creator>Галина</dc:creator>
				<category><![CDATA[Олимпиадные задачи]]></category>
		<category><![CDATA[Конкурс]]></category>
		<category><![CDATA[Приз]]></category>
		<category><![CDATA[Харьков]]></category>

		<guid isPermaLink="false">http://it-interview.org/?p=3552</guid>
		<description><![CDATA[Предлагается следующая процедура Задача, которая участвует в конкурсе, открыта в течение определенного срока. Информация об этом находится на главной странице сайта и представляет собой ссылку на пост с условием.  Из этой ссылки ясно открыта или закрыта конкурсная задача в данный момент времени. Решать конкурсную задачу может любой желающий, пока она открыта. Время, потраченное на решение [...]]]></description>
			<content:encoded><![CDATA[<h3><span style="font-family: comic sans ms,sans-serif; color: #3366ff; font-size: medium;">Предлагается следующая процедура</span></h3>
<ul>
<li>Задача, которая участвует в конкурсе, открыта в течение определенного срока. Информация об этом находится на главной странице сайта и представляет собой ссылку на пост с условием.  Из этой ссылки ясно открыта или закрыта конкурсная задача в данный момент времени.</li>
<li>Решать конкурсную задачу может любой желающий, пока она открыта. Время, потраченное на решение так же, как и срок представления решения на результат не влияют.</li>
<li>Допускается свободное обсуждение конкурсной задачи в комментариях к посту с ее условием.</li>
<li>Для передачи решения достаточно написать комментарий к посту с задачей, в котором должно быть указано имя для идентификации автора решения. Кроме того в этом комментарии должна быть ссылка на скачивание архива с кодом решения или недвусмысленное сообщение о том, что решение выслано письмом на <a href="mailto:team@fulcrumweb.com">адрес@домен.com</a>.</li>
<li>Организаторы конкурса имеют право и обязуются  публиковать полученные решения, для чего выкладывать их в общедоступное место для загрузки с целью ознакомления всеми желающими.</li>
<li>Выбор решения-победителя происходит в течение установленного срока (1 неделя) с момента закрытия задачи среди присланных и опубликованных решений.</li>
<li>Критерии отбора решения-призера мы считаем общепринятыми, основанными на здравом смысле с учетом особенностей конкретной задачи (детализируется в каждом конкретном случае). Результаты обсуждения задачи и замечания участников форума по поводу тех или иных реализаций также будут приняты во внимание.</li>
<li>Тем не менее, организаторы оставляют право окончательного выбора победителя за собой и возьмут на себя смелость свернуть обсуждение решений, если из него исчезнет конструктивная составляющая.</li>
<li>Решение-победитель оглашается на сайте на главной странице. Указывается идентификатор (имя) автора и ссылка на файл с кодом. Кроме того, если имеется емаил автора, – то ему отправляется письмо соответствующего содержания.</li>
<li>Получение приза возможно непосредственно путем прибытия в офис компании-спонсора (для Харькова) или через почтовый сервис “Новая почта” <a href="http://novaposhta.ua/">http://novaposhta.ua/</a> (в пределах Украины). Для получения приза автор должен сообщить письмом на <a href="mailto:team@fulcrumweb.com">адрес@домен.com</a>, по телефону или скайпу предпочтительный для него способ и необходимые для этого дополнительные контактные данные. Возможна передача приза через третье лицо, уполномоченное получателем приза.</li>
<li>Приз вручается в предположении отсутствия мотивов нечестного поведения, поэтому никаких документов, идентифицирующих победителя, не требуется. Достаточным является выполнение предварительно согласованных условий встречи.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.fulcrumweb.com.ua/archives/3552/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>23 вопроса, которые бы вы не хотели услышать на интервью</title>
		<link>http://www.fulcrumweb.com.ua/archives/3564</link>
		<comments>http://www.fulcrumweb.com.ua/archives/3564#comments</comments>
		<pubDate>Tue, 17 Apr 2012 07:11:27 +0000</pubDate>
		<dc:creator>Яков</dc:creator>
				<category><![CDATA[Олимпиадные задачи]]></category>
		<category><![CDATA[Задача до 30 минут]]></category>
		<category><![CDATA[Логические рассуждения]]></category>

		<guid isPermaLink="false">http://www.fulcrumweb.com.ua/?p=3564</guid>
		<description><![CDATA[На ресурсе BusinessInsider опубликована статья с любопытным названием “23 Real Job Interview Questions You Don&#8217;t Want To Be Asked”. Заинтересовал вопрос номер 2. Дабы не искушать защитников животных я опубликую его в оригинале на английском языке: There 1,000 buckets, one of them contains poison, the rest of them are filled with water. They all look [...]]]></description>
			<content:encoded><![CDATA[<p>На ресурсе BusinessInsider опубликована статья с любопытным названием “<a href="http://www.businessinsider.com/23-real-job-interview-questions-you-dont-want-to-be-asked-2011-9?op=1" target="_blank">23 Real Job Interview Questions You Don&#8217;t Want To Be Asked</a>”.</p>
<p>Заинтересовал <strong>вопрос номер 2</strong>.</p>
<p>Дабы не искушать защитников животных я опубликую его в оригинале на английском языке:</p>
<p><em>There 1,000 buckets, one of them contains poison, the rest of them are filled with water. They all look the same. If a pig drinks that poison, it will die within 30 minutes. What is the minimum number of pigs you need to figure out which bucket contains the poison <strong>within one hour</strong>?</em></p>
<p>Как обычно – ожидаем решение в комментариях.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fulcrumweb.com.ua/archives/3564/feed</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>C++ Trainee</title>
		<link>http://www.fulcrumweb.com.ua/archives/3475</link>
		<comments>http://www.fulcrumweb.com.ua/archives/3475#comments</comments>
		<pubDate>Tue, 10 Apr 2012 13:32:47 +0000</pubDate>
		<dc:creator>Галина</dc:creator>
				<category><![CDATA[Вакансии]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[FulcrumWeb]]></category>
		<category><![CDATA[Практика]]></category>
		<category><![CDATA[Работа]]></category>
		<category><![CDATA[Харьков]]></category>

		<guid isPermaLink="false">http://www.fulcrumweb.com.ua/?p=3475</guid>
		<description><![CDATA[Компания FulcrumWeb готова взять несколько студентов на летнюю учебную практику согласно учебным планам вузов. Срок проведения – июль 2012. Подробнее: Студенческая практика 2012]]></description>
			<content:encoded><![CDATA[<p>Компания FulcrumWeb готова взять несколько студентов на летнюю учебную практику согласно учебным планам вузов.<br />
Срок проведения – июль 2012.</p>
<p>Подробнее: <a href="http://www.fulcrumweb.com.ua/student/student_practice" title="Студенческая практика 2012" target="_blank">Студенческая практика 2012</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fulcrumweb.com.ua/archives/3475/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>QA Engineer</title>
		<link>http://www.fulcrumweb.com.ua/archives/3462</link>
		<comments>http://www.fulcrumweb.com.ua/archives/3462#comments</comments>
		<pubDate>Tue, 10 Apr 2012 13:17:56 +0000</pubDate>
		<dc:creator>Галина</dc:creator>
				<category><![CDATA[Вакансии]]></category>
		<category><![CDATA[Работа]]></category>
		<category><![CDATA[Харьков]]></category>

		<guid isPermaLink="false">http://www.fulcrumweb.com.ua/?p=3462</guid>
		<description><![CDATA[Наша компания принимает активное участие, как в разработке, так и в тестировании программных систем, связанных с медициной, для одной из крупнейших мировых компаний. В связи с дальнейшим расширением долгосрочного проекта у нас открылась новая вакансия инженера по качеству. Position code: [QA]Number of vacancies: 1 Ваша работа будет в себя включать: Написание тестовой документации (Test Plans, [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Наша компания принимает активное участие, как в разработке, так и в тестировании программных систем, связанных с медициной, для одной из крупнейших мировых компаний. В связи с дальнейшим расширением долгосрочного проекта у нас открылась новая вакансия инженера по качеству.</strong><br /> Position code: <strong>[QA]</strong><br />Number of vacancies: <strong>1</strong></p>
<p><strong>Ваша работа будет в себя включать</strong>:</p>
<ul>
<li>Написание тестовой документации (Test Plans, Test Cases).</li>
<li>Ручное и автоматизированное тестирование Desktop приложения.</li>
<li>Работу с баг-трекинговой системой.</li>
<li>Регулярное прямое общение с англоязычным заказчиком, как личное, так и с помощью электронной почты и телефона.</li>
</ul>
<p><strong>Основные требования:</strong></p>
<ul>
<li>Законченное высшее техническое образование &#8211; как минимум бакалавр (возможно студент старших курсов).</li>
<li>Опыт работы на должности QA от 1-го года обязателен.</li>
<li>Возможность работать полный рабочий день.</li>
<li>Хорошие знания теоретических основ тестирования.</li>
<li>Английский не ниже уровня upper intermediate.</li>
</ul>
<p><strong>Приветствуются:</strong></p>
<ul>
<li>Наличие навыков программирования.</li>
<li>Высокие аналитические способности.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.fulcrumweb.com.ua/archives/3462/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Ярмарка вакансий ХНУ имени Каразина</title>
		<link>http://www.fulcrumweb.com.ua/archives/3443</link>
		<comments>http://www.fulcrumweb.com.ua/archives/3443#comments</comments>
		<pubDate>Tue, 10 Apr 2012 12:11:01 +0000</pubDate>
		<dc:creator>Галина</dc:creator>
				<category><![CDATA[Новости компании]]></category>
		<category><![CDATA[FulcrumWeb]]></category>
		<category><![CDATA[Начинающий программист]]></category>
		<category><![CDATA[Собеседование]]></category>
		<category><![CDATA[Харьков]]></category>

		<guid isPermaLink="false">http://www.fulcrumweb.com.ua/?p=3443</guid>
		<description><![CDATA[12 апреля 2012 года состоится Вторая ярмарка вакансий в Харьковском Национальном Университете имени Каразина. У нас остались приятные воспоминания об осенней ярмарке и  мы с удовольствием примет участие в нынешней. Как всегда, нам есть что представить Несколько вакансий Начинающий C++ программист, которые не требуют опыта работы и интересны для студентов в первую очередь . Вакансии [...]]]></description>
			<content:encoded><![CDATA[<p><strong><span style="font-family: comic sans ms,sans-serif; color: #00a2e8; font-size: medium;">12 апреля 2012 года состоится Вторая ярмарка вакансий в Харьковском Национальном Университете имени Каразина. У нас остались приятные воспоминания об осенней ярмарке и  мы с удовольствием примет участие в нынешней.</span></strong></p>
<h3><span style="color: #3366ff;">Как всегда, нам есть что представить</span></h3>
<ul>
<li>Несколько вакансий <a title="Начинающий C++ Программист" href="http://www.fulcrumweb.com.ua/archives/425" target="_blank">Начинающий C++ программист</a>, которые не требуют опыта работы и интересны для студентов в первую очередь .</li>
<li>Вакансии <a title="Программист C++ (опыт работы от 1-го года)" href="http://www.fulcrumweb.com.ua/archives/3211" target="_blank">C++ Developer</a> и <a title="QA Engineer" href="http://www.fulcrumweb.com.ua/archives/2690" target="_blank">QA Engineer</a>, требующие минимального опыта работы, которым вполне могут обладать студенты старших курсов.</li>
<li>Предложение <a title="Проведение учебной практики (лето 2012)" href="http://www.fulcrumweb.com.ua/student/student_practice" target="_blank">о прохождении вузовской учебной практики 2012</a> в нашей компании .</li>
<li>Старт нашего проекта <a title="Наши цели" href="http://it-interview.org" target="_blank">it-interview.org</a>, призванного помочь преодолеть уровень вхождения в нашей профессии .</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.fulcrumweb.com.ua/archives/3443/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Начинающий C++ Программист</title>
		<link>http://www.fulcrumweb.com.ua/archives/3413</link>
		<comments>http://www.fulcrumweb.com.ua/archives/3413#comments</comments>
		<pubDate>Tue, 10 Apr 2012 09:26:46 +0000</pubDate>
		<dc:creator>Яков</dc:creator>
				<category><![CDATA[Вакансии]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[FulcrumWeb]]></category>
		<category><![CDATA[Начинающий программист]]></category>
		<category><![CDATA[Работа]]></category>
		<category><![CDATA[Харьков]]></category>
		<category><![CDATA[Язык C++]]></category>

		<guid isPermaLink="false">http://www.fulcrumweb.com.ua/?p=3413</guid>
		<description><![CDATA[Код вакансии: [Cpp_ junior]Количество вакансий: 2Информация о проекте: Разработка ПО в области медицины для одной из крупнейших мировых компаний. Результаты вашей работы будут использоваться в тысячах госпиталях по всему миру, как на персональных компьютерах, так и непосредственно на медицинском оборудовании. Разработка будет главным образом вестись на языке С++ и библиотеках QT/MFC, но некоторые независимые подсистемы [...]]]></description>
			<content:encoded><![CDATA[<p>Код вакансии: <strong>[Cpp_ junior]</strong><br />Количество вакансий: <strong>2</strong><br />Информация о проекте:</p>
<p style="padding-left: 30px;">Разработка ПО в области медицины для одной из крупнейших мировых компаний. Результаты вашей работы будут использоваться в тысячах госпиталях по всему миру, как на персональных компьютерах, так и непосредственно на медицинском оборудовании. Разработка будет главным образом вестись на языке С++ и библиотеках QT/MFC, но некоторые независимые подсистемы будут использовать DotNet/С#/WPF, что так же позволит вам познакомиться и не забывать эти технологии.</p>
<p>Используемые технологии: <strong>C++, stl/boost, QT/MFC, C#/WPF</strong></p>
<p><strong>Основные требования:</strong></p>
<ul>
<li>Законченное высшее образование или студент старших курсов (ХАИ, ХПИ, ХИРЭ или других технических вузов)</li>
<li>Возможность работать полный рабочий день</li>
<li>Хорошие знания теоретических основ, преподаваемых в университете</li>
<li>Понимание принципов OOD/OOP</li>
<li>Английский не ниже уровня pre-intermediate</li>
<li>Готовность к выполнению небольшого тестового задания (в зависимости от результатов собеседования, выбранное нами тестовое задание может занять 2 часа работы в нашем офисе или до 8-ти часов удаленной работы)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.fulcrumweb.com.ua/archives/3413/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

