<?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>developers.org.ua &#187; COTOHA</title>
	<atom:link href="http://www.developers.org.ua/archives/author/cotoha/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.developers.org.ua</link>
	<description>сообщество программистов</description>
	<lastBuildDate>Thu, 18 Mar 2010 09:13:21 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Программистские ошибки для чайников</title>
		<link>http://www.developers.org.ua/archives/cotoha/2008/10/15/programmers-mistakes-for-dummies/</link>
		<comments>http://www.developers.org.ua/archives/cotoha/2008/10/15/programmers-mistakes-for-dummies/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 05:59:52 +0000</pubDate>
		<dc:creator>COTOHA</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=1665</guid>
		<description><![CDATA[<img src="http://www.developers.org.ua/wordpress/wp-content/uploads/2008/10/programmers_mistakes_for_dummies_small.png" alt="" title="programmers_mistakes_for_dummies_small" width="69" height="100" align="left" />Конспект лекции “Типичные ошибки начинающих программистов”, прочитанной в ИНЖЕКе 29 сентября 2008 года. Думаю, будет полезна и всем остальным студентам… а может и не только.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.developers.org.ua/wordpress/wp-content/uploads/2008/10/programmers_mistakes_for_dummies.jpg"><img src="http://www.developers.org.ua/wordpress/wp-content/uploads/2008/10/programmers_mistakes_for_dummies-205x300.jpg" alt="Обложка книги, COTOHA press" title="programmers_mistakes_for_dummies" width="205" height="300" align="right" /></a>Конспект лекции &#8220;Типичные ошибки начинающих программистов&#8221;, прочитанной в <a href="http://ru.wikipedia.org/wiki/%D0%A5%D0%B0%D1%80%D1%8C%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9_%D0%BD%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D1%8D%D0%BA%D0%BE%D0%BD%D0%BE%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D1%83%D0%BD%D0%B8%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D1%82%D0%B5%D1%82" target="_blank">ИНЖЕКе</a> 29  сентября 2008 года. Думаю, будет полезна и всем остальным студентам&#8230; а может и не только.</p>
<h2>Вступление</h2>
<p>Привет всем. Вы все тут собрались, чтобы прослушать лекцию на тему «типичные ошибки начинающих программистов». Некоторые из вас, наверняка, собираются вынести из следующих полутора часов некоторую полезную информацию (я это вижу по тому, что они приготовились записывать), а остальные пришли для галочки <img src='http://www.developers.org.ua/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  В любом случае начинаем.</p>
<h3>О лекторе</h3>
<p>Для начала обо мне. Я (как вам, наверное, уже должны были сказать) работаю в компании NIX Solutions Ltd. на должности директора по обучению и развитию персонала. Кроме того я успел поработать php-разработчиком, менеджером отдела продаж, начальником отдела продаж, менеджером проектов, начальником отдела php и начальником отдела .net. Это чтобы вы понимали, что эта моя лекция про ошибки начинающих программистов, которую меня попросили вам прочитать, не просто теория очередного менеджера о том, что должны делать идеальные программисты. Всё что я расскажу &#8212; суровая правда жизни. Я сам совершал многие из этих ошибок, и я постоянно вижу, как их совершают новички у нас на фирме.</p>
<h3>Мотивация</h3>
<p>Эта лекция призвана вам помочь не совершить некоторые ошибки, которые совершать вовсе не обязательно. Все ведь помнят поговорку про то, что, по возможности, надо учиться на чужих ошибках. Поэтому, кроме перечисления самих ошибок, я попытаюсь дать некоторые рецепты, как их избежать.</p>
<h3>Про ошибки</h3>
<p>Ошибок, которые совершают начинающие программисты, очень-очень много. Чтобы не перечислять их все (на что не хватит времени), я решил попытаться их сгруппировать и рассмотреть наиболее типичные группы.</p>
<h2>Ошибки</h2>
<p>Я решил разделить ошибки на детские, тактические и стратегические. Такое разделение больше применительно для студентов, пишущих лабы, курсовики и дипломы, чем для работников IT-контор, участвующих в реальных проектах. Но, к сожалению, и среди последних встречаются те, к кому это можно приложить. Может это потому, что работники IT-контор часто являются студентами? <img src='http://www.developers.org.ua/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>Детские</h3>
<p>Это самые заметные ошибки, т.к. они видны прямо в коде программы и/или ы результатах её работы. Они просто бесят соработников и менеджеров проектов.</p>
<ol>
<li><strong>Невнимание к деталям.</strong> Едва ли не основным признаком профессионала является внимание к деталям. В профессиональном приложении вы никогда не увидите ничего из ниже перечисленного:
<ul>
<li><strong>Недоформатирование текстов/Недовыравнивание элементов форм.</strong> Куски лейбочек, который вылезают за панели; кнопки, которые перекрывают лейбы; тексты, которые уползают за край формы.</li>
<li><strong>Отсутствие единообразия в интерфейсе, форматировании тектов, расположении форм.</strong> Это тот случай, когда лучше «безобразно, но единообразно». Это же, кстати, отличает айтишников от всех остальных при использовании MS Word: айтишники используют стили, и потом могут легко менять вид документа, изменяя стили, а остальные каждый элемент форматируют вручную и при необходимости изменить вид заголовка второго уровня переформатировывают все заголовки 2го уровня в доке.</li>
<li><strong>Неучитывание возможности изменения размеров формы.</strong> Самый обычный вариант тут &#8212; просто забыть о том, что формы могут меняться, забыть установить значения минимальной и максимальной ширины и высоты. Самый некрасивый и неюзабельный &#8212; задать абсолютную привязку ко всем сторонам формы, так что контролы наедут друг на друга при её увеличении. Также часто забывают запретить &#8220;распахивать&#8221; окно, хотя запрещают &#8220;ресайз&#8221;.</li>
<li><strong>Использование названий контролов, которые за вас придумала IDE.</strong> Button1, Form2, открытьИзображениеToolStripMenuItem_Click. Этого делать нельзя, т.к. радикально ухудшает читабельность кода, а значит увеличивает стоимость его поддержки. Вообще «неговорящие» названия контролов плохо. Говорящие по-русски &#8212; спорно, т.к. часто вы будете писать приложения для заграничных заказчиков, а это означает, что русские названия методов не пройдёт процедуру приёмки исходного кода.</li>
<li><strong>Сортировка числовых значений по правилам строк.</strong> Это часто происходит, когда значения хранятся в виде цифр (15.45), а отображаются в строковом виде (15грн.45коп.). И сортировки выполняются средствами стандартных компонентов. Надо это учитывать и реализовывать сортировки как надо.</li>
</ul>
</li>
<li><strong>Смешение парадигм процедурного и объектно-ориентированного программирования.</strong> К сожалению, на собеседованиях я очень редко встречаю претендентов, которые бы могли внятно объяснить, чем ООП лучшее. Более того &#8212; мало кто может сказать, лучше чем что. Естественно, что не понимая, зачем ООП нужно, оно применяется неправильно.
<ul>
<li><strong>Применение ООП для отмазки.</strong> Чем применять ООП «для галочки», лучше его не применять вообще, т.к. с одной стороны выглядят эти попытки жалко, а с другой запутывают ваших товарищей, которые ожидают «правильного» использования ООП, раз уж оно вообще использовано.</li>
<li><strong>Использование «глобальных переменных».</strong> Особенно в виде «Form1.condition». Это снижает читабельность кода и является симптомом того, что вы неправильно спроектировали приложение.</li>
<li><strong>Использование статических методов, для решения бизнес-задачи.</strong> Если у вашего класса есть только поведение (методы), но нет свойств (полей), значит, вы неправильно провели анализ предметной области (не всегда, но чаще всего).</li>
</ul>
</li>
<li><strong>Неправильные комментарии. </strong>Комментарии &#8212; это отличный помощник, если их использовать по назначению. Многие игнорируют этот факт.
<ul>
<li><strong>Не писать вообще. </strong>Cowboy-style. Хорошо, что преподаватели стараются с этим бороться&#8230; и порождают следующую проблему.</li>
<li><strong>Писать очевидные комментарии.</strong> Когда что-то делается из-под палки, это всегда делается плохо. Так и тут &#8212; особенно умиляют комментарии вида «<em>int a; // объявляем переменную</em>». Выглядит как издёвка (особенно, если через две строчки следует алгоритм без единого комментария с кучей циклов, ифов, break&#8217;ов и с несколькими return&#8217;ами), а издеваться над сотрудниками (и преподавателями) мало того, что нехорошо, так ещё и чревато.</li>
<li><strong>Не описывать метод/класс.</strong> С этим старается бороться IDE. Не надо ей мешать &#8212; она знает, что делает. Автодоки сохраняют время всей команде и вам лично, когда приходит время писать документацию на проект.</li>
</ul>
</li>
<li><strong>Неследование code conventions.</strong> Стандарты кодирования позволяют вам разобраться в чужом коде (или кому-то в вашем) намного быстрее и легче. Обычно программисты подсознательно следуют какому-то одному стилю, но встречаются и такие у которых 7 пятниц на неделе. В любом случае, я советую явно выбрать подходящий стиль и стараться ему следовать. По умолчанию можно использовать стандарты кодирования pear для php, sun для java и Microsoft для семейства .net.
<ul>
<li><strong>Хаотичное форматирование кода.</strong> Самый клинический случай, это когда у одного и того же человека разные куски кода отличаются по форматированию. Некоторые даже говорят, что это признак маниакально-депрессивного психоза. Ну или ему просто курсовик помогали писать соседи по общаге <img src='http://www.developers.org.ua/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li><strong>Каждый член команды использует удобную ему конвенцию.</strong> Это менее плохо, но тоже не хорошо. Для работы в команде просто необходимо принять общий стандарт кодирования, иначе это будет не работа в команде, а просто работа над одним проектом.</li>
</ul>
</li>
</ol>
<p>Детские ошибки можно перечислять и перечислять, но я ограничился только теми ошибками, которые я встретил в ваших работах больше 3х раз.</p>
<h3>Тактические</h3>
<p>Тактические ошибки &#8212; это ошибки, которые не напрямую связаны с кодом, а больше связаны с краткосрочными целями, которые преследует программист, при его написании.</p>
<ol>
<li><strong>Не иметь правильной цели для проекта.</strong> Первой и главной целью при написании курсовых, лаб и дипломов необходимо ставить «поднять свой уровень», а не «отмазаться от преподавателя». Подумайте, ведь в большинстве случаев, когда вы придёте на собеседование, эти программы будут единственным, чем вы сможете похвастаться &#8212; может стоить сделать их хорошо?</li>
<li><strong>И так сойдёт.</strong> Отсутствие правильно цели приводит к тому, что программы делаются «тяп-ляп», как у зайца в старом мультике (все помнят?). В двух словах &#8212; на пользу это ему не пошло. Можно выделить несколько подпунктов:
<ul>
<li><strong>Размещение бизнес-логики в обработчиках событий.</strong> Это наверное самая распространённая ошибка, которую совершают абсолютно все. Можем провести эксперимент &#8212; пусть честные люди поднимут руки, если они помещали решение задачи в какой-нибудь «onClick». Я так и думал&#8230; честных людей мало <img src='http://www.developers.org.ua/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Чтобы побороть эту ошибку есть теоретически простой, но сложный в реализации метод&#8230; но полезный: сначала нужно написать консольное приложение, а потом докрутить к нему GUI.</li>
<li><strong>Тестирования приложения только на допустимых значениях.</strong> Удивительно, как много приложений падает, как только ввести в поле для ввода цифр буквы. Когда вы пишете приложение, необходимо рассчитывать не на дружеского пользователя, а на агрессивную обезьяну, которая может ввести что угодно и нажать куда угодно. Приложение должно на всё реагировать корректно.</li>
<li><strong>Хардкод.</strong> Внесение конфигурационных параметров, строковых литералов, магических цифр в код &#8212; это плохо. Для этого давным-давно придуманы специальные средства &#8212; конфигурационные файлы, файлы ресурсов, формы настроек. По возможности необходимо избегать перекомпиляции приложения, для его настройки, т.к. в реальном мире, за перекомпиляцией следует фаза развёртывания, а это очень дорого.</li>
<li><strong>Копи-паст.</strong> Дублирование кода увеличивает стоимость его поддержки &#8212; ведь в любом коде будут производится изменения, это данность. От этого никуда деться нельзя, а значит надо будет вместо одного изменения производить много (в зависимости от количества скопированных кусков) и ещё и синхронизировать их. За правило надо взять принцип, что если какой-то кусок кода понадобился больше двух раз, то его надо выделить в метод, класс или модуль.</li>
<li><strong>Плохой русский/украинский/английский в сопроводительной документации.</strong> Документация &#8212; это неотъемлемая часть проекта. Если документацию неприятно читать, то это отношение распространится на весь проект в целом. Что я имею в виду? Например, откровенные глупости в части про БЖД, которые кочуют из записки в записку. (Я уже говорил, что копи-паст это плохо? на документацию это тоже распространяется). Или излишне вольное обращение с украинским языком, например «разрешение монитора», это «роздільна здатніcть», а не «дозвіл», как практически у всех вас в записках.</li>
</ul>
</li>
<li><strong>Несоответствие результата и цели.</strong> Если реализовывать что-то &#8220;тяп-ляп&#8221;, то и результат получается посредственный. Любая программа решает некую бизнес задачу &#8212; вот реализация этой бизнес-задачи и есть цель вашего проекта, а значит и результат должен быть этой же реализацией. Например, если вам дали курсовой на тему «однопользовательская игра с графическим интерфейсом», то вам надо сконцентрироваться на игре, на её динамике, на удобстве интерфейса, на функциях, характерных для игр &#8212; тогда в результате у вас будет (сюрприз!)  интересная однопользовательская игра. Но в большинстве случаев студенты концентрируются на том, чтобы просто сдать курсач. В итоге получается скучная игра, которой неудобно пользоваться, обёрнутая в стандартный для windows-приложений интерфейс &#8212; стандартный проект-отмазка. Это не правильно. В первую очередь надо решить поставленную задачу &#8212; это позволит вам повысить свой уровень в программировании и анализе, и как приятный побочный эффект позволит вам получить высокую оценку за неё.
<ul>
<li><strong>Недостаточная проработка теоретической части проекта.</strong> Очень часто встречаются проекты, в которых не понятна задача, которую они решают. Не секрет, что большинство студенческих проектов &#8212; это некие интерфейсы к базам данных. Например, учёт книг в библиотеке, учёт шахт на Украине, учёт студентов в деканате. Это <em>разные</em> цели. А результат у всех <em>один и тот же </em>- они, по сути, они как братья близнецы &#8212; формы редактирования, поиска и добавления новых записей. ЭТО НЕ ИНТЕРЕСНО. И это не правильно. Если вы хотите добавить интереса в ваш проект, то опишите, какие насущные задачи решает проект, какие реальные процессы он автоматизирует. Не зацикливайтесь на добавлении и редактировании записей &#8212; ведь в большинстве случаев руками никто ничего добавлять не будет, т.к. базы данных уже есть и их надо просто импортировать. Редактирование не такой частый процесс &#8212; разве что кто-то выйдет замуж и сменит фамилию (если говорить про учёт студентов). Сконцентрируйтесь на правах доступа, на вариантах поиска, на том, что реально нужно. Сходите в деканат и спросите &#8212; чего нужно его работникам. Это зачтётся.</li>
</ul>
</li>
<li><strong>Обман.</strong> Да самый обычный обман пользователей (в частном случае преподавателей).
<ul>
<li>Если в приложении заявлена некая функциональность, то её или надо реализовать в соответствии с требованиями или в сопровождающей документации указать на ограниченность реализации. Последний пример, который приходит на ум это «экспорт в формате MS Excel». Один из ваших товарищей реализовал это в виде генерации файла значений, разделённых пробелом, которому назначалось расширение XLS. Эксель, конечно, его открывал и автоматически распарсивал, но по сути это был обман, т.к. другие офисные системы, которые читают формат XLS, его уже не понимали. Обман производит дурное впечатление, хотя одна всего лишь фраза в документации о том, что эта функция реализована в ограниченном объёме могла бы всё исправить.</li>
<li>Не использовать/неправильно использовать ООП в курсовом по предмету &#8220;объекто-ориентированное программирование&#8221; &#8212; это тоже обман.</li>
<li>покупать лабы/курсовые/дипломы &#8212; это тоже обман. Хорошо, если вы не собираетесь становиться программистом &#8212; тогда вы обманываете только преподавателя. Но если у вас есть такие планы, то вы обманываете ещё и себя.</li>
</ul>
</li>
</ol>
<h3>Стратегические</h3>
<p>Стратегические ошибки &#8212; это ошибки стиля жизни. Они связаны с долгосрочными целями или &#8212; чаще &#8212; с их отсутствием <img src='http://www.developers.org.ua/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<ol>
<li><strong>Не знать, кем и почему вы хотите стать.</strong> Это основная ошибка студентов. Они думают, что до окончания ВУЗа, этот вопрос ещё не актуален. А на самом деле потом, а может быть уже и сейчас, будет поздно. Первый вопрос, который я задаю на собеседованиях: «Почему ты решил стать программистом / тестировщиком / аналитиком?» И с грустью не слышу ничего вразумительного в ответ. Это важно прежде всего для вас &#8212; если вы НЕ понимаете, почему вы хотите стать программистом, то может быть вы вовсе и не хотите им становиться? Может вы модельер, а тут только тратите своё время? Подумайте&#8230;</li>
<li><strong>Не пытаться улучшить свой скил в программировании.</strong> Второй вопрос на собеседовании, который я задаю всем: «Что ты делаешь, чтобы стать тем, кем ты хочешь стать?» Опять же очень не часто, мне могут ответить что-то кроме «учусь на соответствующей специальности». Этого мало.
<ul>
<li><strong>Не читать книг по теме.</strong> Мне это странно, но не многие читают книги, а надо &#8212; там много полезного. Кто сходу может назвать автора какой-нибудь книги по .NET? А ещё одного? А третьего? На первый вопрос ответило 10 человек из 60, на второй 3, а на третий ни одного&#8230;</li>
<li><strong>Не писать программ, помимо лаб, курсовых и дипломов.</strong> Это мне странно больше всего. Если вы хотите стать программистом, то почему не пишете программ? На собеседованиях некоторые на вопрос &#8220;почему программирование?&#8221; задумываются и говорят что-то вроде: &#8220;я люблю творить&#8221;. Так почему не творишь? Ну да, я понимаю, что конъюнктура рынка сейчас такая, что ай-ти-специальности популярны и многие идут туда ради приличного заработка, а не тварьбы. Но тогда возникает вопрос &#8212; почему вы не выполняете курсовые и дипломы качественно и профессионально? Ведь чем вы лучше себя покажете на собеседовании, тем лучше вам предложат стартовые условия.</li>
<li><strong>Не следить за новостями в мире выбранной технологии.</strong> Я про новости с основных сайтов по технологиям, про блоги ведущих разработчиков, про новые книги и т.д. В ВУЗе вам просто физически не могут дать мейнстрим. Вам надо понять, что вас обучают не <em>программировании на сишарпе</em>, а <em>программировать на примере сишарпа</em>. Это значит, что вам никто не мешает использовать .NET Framework 3.5, LINQ и Entity Framework, хотя и не заставляют. Это ваш выбор &#8212; надо только не лениться его сделать.</li>
<li><strong>Не проходить различные программы сертификации.</strong> Это момент конечно спорный, т.к. они денег стоят, но они окупаются. Кроме того, вам же всё равно надо учить .net, java или php, так почему бы не поучить по специальной литературе, по подготовке к сертификациям?</li>
</ul>
</li>
<li><strong>Не знать английского.</strong> Это вообще не обсуждается: хочешь работать в ай-ти &#8212; надо знать английский. Английский сейчас де-факто стандарт в ай-ти. Помимо того, что основная масса продуктов разрабатывается для англоязычных стран, есть ещё очень важная причина: документации к продуктам/API на неанглийском не существует. Её так мало, что ей реально можно пренебречь. А так что есть, отстаёт от английской версии на полгода минимум.</li>
</ol>
<h3>А теперь самое важное</h3>
<p><strong>Самое важное, что вы тут должны были увидеть &#8212; это то, что детские ошибки часто являются результатом тактических, а тактические &#8212; следствие стратегических. По большому счёту, можно всё решить одним махом &#8212; исправить стратегическую ошибку №2 <img src='http://www.developers.org.ua/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Если это сделать, т.е. захотеть стать хорошим программистом, то тактические и детские ошибки&#8230; нет, не пропадут, но по крайней мере из системных перейдут в категорию случайных. А случайные ошибки легко устраняются опытом. Системные же ошибки препятствуют накоплению опыта.</strong></p>
<h2>Заключение</h2>
<p>Я не питаю надежды, что раскрыл вам глаза на что-то новое. Всё что я рассказал &#8212; это здравый смысл и не более того, но теперь вы уже не сможете на собеседовании сказать «а я не знал, что так надо» <img src='http://www.developers.org.ua/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  В общем и целом, я хотел бы вас поблагодарить за то, что присутствовали на этой сумбурной лекции, и пожелать в первую очередь целеустремлённости, а во вторую &#8212; удачи.</p>
<h2>Примечания</h2>
<ol>
<li>По ходу лекции больше всех записывал завкафедрой. И много кивал.</li>
<li>На вопрос про &#8220;логику в обработчиках onClick&#8221; руку не поднял не один. Мучаюсь теперь вопросом &#8212; а может надо было спросить &#8220;кто знает, что такое обработчики событий onClick?&#8221;</li>
<li>Из авторов вспомнили только Троелсена и Сеппу, то есть вообще-то одного, т.к. Сеппа по ADO книгу написал, а не по .NET. Шилдт и Рихтер видимо из моды вышли&#8230;</li>
</ol>
<p class="right"><a title="Мысли с самого низа" href="http://cotoha.info/">COTOHA</a>,<br />
Сентябрь 2008</p>
<br/><a href="http://www.developers.org.ua/archives/cotoha/2008/10/15/programmers-mistakes-for-dummies/#ratings">Оценить статью на сайте</a> | <a href="http://www.developers.org.ua/archives/cotoha/2008/10/15/programmers-mistakes-for-dummies/#comments">148 комментариев</a>]]></content:encoded>
			<wfw:commentRss>http://www.developers.org.ua/archives/cotoha/2008/10/15/programmers-mistakes-for-dummies/feed/</wfw:commentRss>
		<slash:comments>148</slash:comments>
		</item>
		<item>
		<title>Дай своей конторе второй шанс, или почему все мы такие аутисты?</title>
		<link>http://www.developers.org.ua/archives/cotoha/2008/08/19/autism-vs-companies-and-developers/</link>
		<comments>http://www.developers.org.ua/archives/cotoha/2008/08/19/autism-vs-companies-and-developers/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 06:25:39 +0000</pubDate>
		<dc:creator>COTOHA</dc:creator>
				<category><![CDATA[О работе]]></category>
		<category><![CDATA[Статьи]]></category>
		<category><![CDATA[карьера]]></category>
		<category><![CDATA[общение]]></category>
		<category><![CDATA[персонал]]></category>
		<category><![CDATA[работа]]></category>

		<guid isPermaLink="false">http://www.developers.org.ua/index.php?p=1433</guid>
		<description><![CDATA[Наболело, потому может быть сумбурно и непонятно, но я буду исправлять :)]]></description>
			<content:encoded><![CDATA[<p align="right"><em>&#8220;Программисты, в среднем, совершенно аутичные<br />
личности. Они ну не умеют общаться.&#8221;<br />
&#8230;<br />
&#8220;Кроме того, менеджеры, конечно очень часто в<br />
программистских конторах тоже аутичны.&#8221;</em><br />
<a title="видео" href="http://rutube.ru/tracks/37785.html?v=3a93547427daab7298577631a50bc5da" target="_blank">Ашманов 7:30, 15:44</a></p>
<p>Наболело, потому может быть сумбурно и непонятно, но я буду исправлять <img src='http://www.developers.org.ua/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>Проблема</h2>
<p><img src="http://cotoha.info/wp-content/uploads/2008/06/zayava_tb.jpg" alt="" hspace="5" align="right" />Моей работой является работа с персоналом. У меня даже должность так называется &#8212; <em>директор по обучению и развитию персонала</em>. Должность даёт много возможностей, которые мне нравятся, но есть также и <del>ведро</del> ложка дёгтя: с людьми я общаюсь всё более и более опосредованно. У нас в конторе, как наверняка и везде, где больше 100 человек, наличествует некая организационная иерархия, которая несколько эээ&#8230; отгораживает. Так вот очень часто получается так, что приходит человек с заявлением об увольнении&#8230; а ты удивляешься. Это мягко говоря &#8212; чаще ты стоишь как громом поражённый и не знаешь, как реагировать. Естественно, шок проходит и ты начинаешь прояснять обстановку&#8230;</p>
<p>Вот тут и выясняются интересные моменты. Кому-то некуда расти, кого-то в отпуск не отпускали уже год, кому-то текущий проект поперёк горла, кто-то хочет из тестировщика переквалифицироваться в программиста, С&#8217;шник хочет учить .NET, а у кого-то место под кондиционером и ему холодно&#8230; Проблемы разные, но чаще всего вполне решаемые. Дело только всё в том, что решать уже поздно. Заявление уже написано, и даже, если ложечки найдутся, осадочек-то всё равно останется. Вот и уходят люди &#8212; часто на более высокую зарплату, но не менее часто на такую же, а бывает и на меньшую. Вот это и есть проблема.</p>
<h2>Чья проблема?</h2>
<p>Возникает закономерный вопрос &#8212; чья это проблема? Первый потерпевший, кто приходит в голову &#8212; работодатель. И, естественно, так и есть: ему необходимо искать замену уходящему, объяснять это клиенту, он теряет всё, что вложил в обучение, etc. А кроме того работодатели тоже люди и бывает очень неприятно терять человека, который тебе приятен, с которым ты любил поговорить, с которым ты (да, и такое бывает) дружил. Это одна сторона.</p>
<p>Но есть мнение, что и для работника смена работы в общем случае далеко не сахар. Попробуем пробежаться по &#8220;активной&#8221; части работников (а заодно затестить Google Blog Search), чтобы это мнение подтвердить&#8230; За пару кликов находим следующие мнения о новой работе:</p>
<ul>
<li><a href="http://mifologist.livejournal.com/11539.html" target="_blank">http://mifologist.livejournal.com/11539.html</a> &#8212; человек просто не хочет работать. не факт, что у человека такое отношение сформировалось <em>в следствие</em> смены работы, но и обратное не доказано.</li>
<li><a href="http://blog.sribna.com/kakovo-byit-novichkom.htm" target="_blank">http://blog.sribna.com/kakovo-byit-novichkom.htm</a> &#8212; дискомфорт от смены работы присутствует, и растёт(?) <a href="http://blog.sribna.com/myisl-o-pustom-meste.htm" target="_blank">http://blog.sribna.com/myisl-o-pustom-meste.htm</a>.</li>
<li><a href="http://korey-kaplan.livejournal.com/69180.html" target="_blank">http://korey-kaplan.livejournal.com/69180.html</a> &#8212; казалось бы новое место &#8212; новые возможности и всё такое, но негатива пока больше.</li>
<li><a href="http://s0uthern-g1rl.livejournal.com/8361.html" target="_blank">http://s0uthern-g1rl.livejournal.com/8361.html</a> &#8212; шило на мыло, невыполненные обещания, etc.</li>
<li><a href="http://www.femina.com.ua/a/85.shtm" target="_blank">http://www.femina.com.ua/a/85.shtm</a> &#8212; куча советов про то, как себя вести на новом месте, косвенно подтверждают, что новая работа далеко не всегда мёд.</li>
</ul>
<p>Не буду искать ссылки на  success stories &#8212; нам же подтвердить надо мнение, а не опровергать <img src='http://www.developers.org.ua/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . А если серьёзно,  то естественно, что на новом месте часто хорошо, но главная мысль, которую я пытаюсь донести, в том, что <em>не менее часто</em> на новом месте <em>точно так же</em>, а бывает (редко), что и хуже.</p>
<p>Значит, как это не парадоксально звучит, увольняющийся &#8212; тоже пострадавший (да-да, не всегда, но частенько). Вот и вторая потерпевшая сторона. И дело не в том, что новое место плохое, а в том, что <em>старое место тебе нравится</em>. Да &#8212; там что-то стало тебя раздражать, но основная масса параметров-то тебе подходит&#8230; Иначе что ты там вообще делал?</p>
<h2>Если всё так просто, то почему проблемы не решают?</h2>
<p>Возвращаемся к эпиграфу. Читаем. Ага, чтоб не было обид, поясню &#8212; под &#8220;аутистом&#8221; я понимаю не клинический диагноз, а некоторые особенности поведения такие как &#8220;избирательная стеснительность&#8221;, &#8220;угрюмость&#8221;, &#8220;мороз&#8221; и в клинических случаях &#8220;напускная гордость&#8221; (термины мои, я их ниже объясню). Так почему же проблемы не решаются? Уже догадался? Да-да. Большинство работников <del>аутисты</del> не озвучивают свои проблемы, а те люди, которые должны решать эти проблемы (менеджеры, тимлиды, начальники отделов), <del>такие же аутисты, как и работники</del> не видят проблемы, если она не озвучена. Они не виноваты, что IT притягивает такой психотип <img src='http://www.developers.org.ua/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . И никто не виноват, но проблема есть.</p>
<h2>Ну и?</h2>
<p>Ну я и предлагаю тебе, <em>дать своей конторе 2й шанс</em>. А ещё лучше, сделать так, чтоб его не надо было давать &#8212; <em>просто озвучивай свои проблемы</em>.</p>
<p>Естественно, я не призываю <em>не менять</em> работу вообще &#8212; есть разные ситуации и всё такое. К чему я призываю, так это к тому, чтобы народ не менял шило на мыло &#8212; ведь результата от этого практически нет, а все прелести перехода будут прочувствованы в полной мере. А как я уже выше говорил, подавляющее число проблем, вызывающих переходы, <em>решабельны </em>в рамках вашей текущей компании. И, кстати, не надо ставить знак равенства между <em>сменой работы</em> и <em>сменой рода деятельности &#8212; </em>совершенно нормально рассмотреть так называемые career opportunities внутри конторы прежде, чем искать их где-то ещё&#8230; Тем более, если компания нравится.</p>
<h2>Чего делать-то?</h2>
<p>Первым делом &#8212; не сопротивляться <img src='http://www.developers.org.ua/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Вроде как звучит это на первый взгляд дико, но на практике оказывается, что народ воспринимает такую идею в штыки. Выражается это в каждом конкретном случае по-разному, но в общем случе всё сводится к четырём признакам айтишного аутизма. Вот как нежелание поговорить аргументируется с точки зрения этих самых признаков:</p>
<blockquote><p><strong>Избирательная стеснительность:</strong> <em>&#8220;Ну я просто не могу про <strong>это </strong>говорить. Ведь про меня подумают, что я нытик.&#8221;</em> Забавно, что позиция характерна для тех, кто в любой другой ситуации за словом в карман не лезет и вообще рубаха-парень(или деффка), душа компании. Возможно это связано с тем, что, по их мнению, озвучивание проблем поломает эту репутацию &#8220;чака норриса&#8221;. Не знаю, разговорить этот тип людей, чтобы понять причины такого поведения наверняка, у меня не получилось.</p></blockquote>
<ul>
<li><strong>Контраргумент: </strong>не надо забывать, что фирма очень заинтересована в твоей производительности и удовлетворённости, поэтому озвучивание твоих проблем будет воспринято не как нытьё, а как помощь. Ты помогаешь фирме, понять, что тебе надо. Кстати, проблемы общего характера можно озвучивать в истинно чак-нориссовской форме: <em>&#8220;Мне конечно всё равно, но вот народ страдает, что в комнате нет живых цветов.&#8221;</em> Попробуй &#8212; тебя поймут <img src='http://www.developers.org.ua/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ul>
<blockquote><p><strong>Угрюмость:</strong> <em>&#8220;Почему это <strong>я</strong> должен про это говорить? Пусть <strong>они </strong>меня спрашивают!&#8221;</em> Это позиция в основном характерна для матёрых зубров. Они знают себе цену, они решают сложные технические проблемы, они <del>боятся сказать</del> считают, что есть специально обученные люди (те, кто выше их по иерархии), которые должны выискивать и решать проблемы.  Что интересно &#8212; переходя на управленческую позицию (а такие переходы происходят часто), сразу же забывают, что проблемы надо выискивать и искренне удивляются: &#8220;<em>а почему они просто не сказали?</em>&#8220;</p></blockquote>
<ul>
<li><strong>Контраргумент:</strong> Эти &#8220;специально обученные люди&#8221; ровно такие же как ты. Они, как и ты, ожидают от окружающих рационального поведения, то есть ждут, что человек с проблемой её озвучит &#8212; это же очевидный способ решить проблему. Другими словами, нифига они не обучены, т.к. в, моём понимании, эйчарам ещё на первом курсе их эйчарского университета (если такой есть) должны запрещать ожидать от человека  рационального поведения за пределами зоны его компетенции. Вооружившись этим знанием ты должен три раза заставить себя поговорить с начальством о том, что тебя беспокоит. За эти три раза ты убедишься, что способ работает и это не случайность и не совпадение, а дальше ты его будешь использовать, как используешь любой другой паттерн, который <em>работает</em>.</li>
</ul>
<blockquote><p><strong>Мороз:</strong> <em>&#8220;Всё равно ничего не поменяется, так чё я буду говорить? Уже как будет, так и будет&#8230;&#8221;</em> Позиция рефлексирующего интеллигента. Обычно такой тип легко идёт на контакт, в процессе которого и выясняется, что начитавшись умных книг он понял, что мир <del>дерьмо</del> устроен неправильно, поэтому толку решать проблемы решительно никакого нет: &#8220;<em>Ну да, у меня сломался стул, но разве вы его поменяете? Вы вон даже на CMMI level 3 сертифицироваться не можете! Какие уж тут стулья&#8230;</em>&#8220;</p></blockquote>
<ul>
<li><strong>Контраргумент: </strong>Надо отделять мух от котлет. Мир конечно не идеальный, но это не повод сидеть на поломанном стуле &#8212; ведь несмотря на то, что твоя контора не Google, в её силах многое. Надо только уметь аргументировать твои потребности. Это как раз то, что пишут в умных книжках &#8212; коммуникации наше всё. Тем более, что для тебе проблема не &#8220;поговорить&#8221;, а заставить самого себя поверить в то, что это даст результат. Но! В данном случае можно даже не верить, но всё равно поговорить &#8212; пусть шансы получить желаемое, по твоему мнению, малы, но если не поговорить, то они начинают вообще стремиться к нулю. Простая логика. Так что &#8212; говори, хуже не будет.</li>
</ul>
<blockquote><p><strong>Напускная гордость:</strong> <em>&#8220;Вот ещё! Я не буду унижаться!!! Почему я должен что-то просить?!?&#8221;</em> Что тут сказать? Клинически глупая позиция. Кстати, больше всего характерна людям с явно завышенной самооценкой, которые в реальном деле <del>регулярно лажают</del> не очень-то и рулят. Я считаю, что эта позиция связана с нежеланием включать мозг. Пытаться понять, что движет такими людьми, я даже не пробовал &#8212; они мне не интересны.</p></blockquote>
<ul>
<li><strong>Контраргумент: </strong>В сад. Если взаимоотношения с работодателем для тебя унижение, то тебе или ещё раз в детский сад на переобучение или ты работаешь на фашистов. Но дело в том, что фашистов-то у нас на рынке и нет, так что&#8230; в сад.</li>
</ul>
<p>Есть ещё один момент, которым аргументируют нежелание поговорить, но он не настолько типичен, хотя и встречается более-менее часто:</p>
<blockquote><p>&#8220;<em>Я знаю, что мою проблему решить кроме как через конфликт нельзя. А скандалить я не хочу&#8230;</em>&#8221; Позиция немного неуверенных в себе особ. Или действительно неконфликтных, или тех, кто боится, что о них пойдёт слава склочника, что скажется на будущей карьере. По большому счёту, это сочетание &#8220;мороза&#8221; и &#8220;стеснительности&#8221;. Между прочим, такие люди оказывают медвежью услугу тем, кто остаётся работать там, откуда они ушли &#8212; ведь причина конфликта осталась неразрешённой.</p></blockquote>
<ul>
<li><strong>Контраргумент 1:</strong> Во-первых, ты не знаешь, неизбежен ли скандал. Возможно, если немного подумать, то конфликт можно разрешить и без скандала &#8212; для этого есть много техник, и они много где описаны.</li>
<li><strong>Контраргумент 2:</strong> Во-вторых, лучше скандал, разрешающий конфликт, чем неразрешённый конфликт. Я так понимаю, что такой аргумент чаще всего возникает при конфликте с непосредственным начальником. И я понимаю, что, раз ты уходишь, тебе конечно уже всё равно, но ведь твои товарищи остаются работать вокруг этой бомбы замедленного действия. Так сделай им подарок на прощание&#8230; Для этого надо воспользоваться одним из альтернативных каналов связи на фирме &#8212; ведь в любой фирме, кроме твоего непосредственного начальника, есть ещё как минимум пара людей, которые тебя готовы выслушать. Чаще всего это служба HR. Просто пойди к ним, или к кому-угодно, кому ты доверяешь, и изложи ситуацию. Ситуации бывают разные, но в общем случае со своим начальником ты работать скорее всего больше не будешь, однако твоя искренность сыграет свою роль и тебе предложат те самые career opportunities. У тебя будет выбор, которого не было бы, если бы ты молча написал заявление об уходе.</li>
<li><strong>Контраргумент 3:</strong> В-третьих, &#8220;слухи о склочности&#8221; это миф. Я про такие никогда не слышал, несмотря на то, что IT-бизнес в Украине &#8212; это большая деревня (вру, слышал <img src='http://www.developers.org.ua/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  но исключительно про склочников-директоров компаний, а не про инженеров или менеджерский состав). А кроме того, поверь &#8212; конторы достаточно компетентны, чтобы разобраться с ситуацией и не делать поспешных выводов.</li>
</ul>
<p>По логике, должна встречаться аргументация и на стыке других типажей &#8212; &#8220;угрюмость-мороз&#8221; или &#8220;стеснительность-угрюмость&#8221;, но то ли она редка, то ли в них что-то доминирует настолько, что я не могу припомнить примеров. Если вспомню, то допишу, а вы не стесняйтесь подсказывать в комментариях.</p>
<h2>А это лечится?</h2>
<p>Спешу обрадовать &#8212; лечится! Чтобы с такой позиции соскочить, надо просто понять простую вещь &#8212; вы и компания это не родитель и ребёнок (ну кроме случаев, когда вы действительно ведёте себя как ребёнок), а партнёры. Другими словами надо повзрослеть (не в плане возраста, а в терминах <a href="http://en.wikipedia.org/wiki/Transactional_analysis" target="_blank">трансакционного анализа</a>). Взрослый понимает, что так как продолжать партнёрские отношения &#8212; выгодно <em>обоим</em> сторонам, то и прилагать усилия к их продолжению должны обе стороны. У такого подхода есть ещё один дополнительный бонус &#8212; ты сможешь активнее влиять на свою карьеру. Молча это бы не получилось.</p>
<h2>А гарантия есть?</h2>
<p><em>Гарантии, что проблему решат, нет.</em> С одной стороны. Очевидно, что не всё получается, как планируется, но это не повод отказываться от планирования. Точно так же и в нашей ситуации &#8212; озвучивание не гарантирует решение проблему, но здорово повышает шансы на это.</p>
<p><em>А с другой стороны, есть гарантия, что ты будешь уверен в ответе.</em> Если ты молчишь, а твои потребности не удовлетворяются, то ты находишься в состоянии недостатка информации: то ли про твои потребности не знают, то ли их просто не собираются удовлетворять. Когда же ты озвучил потребности, то ты тут же получил результат: или удовлетворение потребности, или план по её удовлетворению, или же причины отказа в удовлетворении. А с открытыми глазами гораздо удобнее куда-то идти.</p>
<p>Смысл в том, что если, ты попробовал решить проблему, а тебе сказали &#8220;извини, не можем&#8221;, то на новой работе ты не будешь мучиться мыслью &#8220;а что если?&#8221; &#8212; ты будешь совершенно точно знать, что нет.</p>
<h2>Резюме и отказ от ответственности</h2>
<p>Озвучивание своих потребностей и проблем, конечно, не панацея.  Но лекарство очень действенное. Итак основные тезисы:</p>
<ul>
<li>Чтобы решить проблему, её надо озвучить.</li>
<li>Причины, по которым проблемы не озвучивают, чаще всего иррациональны.</li>
<li>Чтобы устранить причину, необходимо её проанализировать. Просто проанализировать и этого в большинстве случаев хватит, чтобы она перестала быть причиной.</li>
<li>В общем: озвучивание проблем <em>не гарантирует</em>, но <em>очень сильно повышает шансы </em>на их решение.</li>
<li>В частности: этот подход не гарантирует продолжение работы на старом месте, но он гарантирует отсутствие сомнений в правильности решения, если ты уволился.</li>
<li>Однако, если ввести решение проблем (вместо их замалчивания) в привычку, то и мыслей о другой работы может не появляться очень долго &#8212; ведь всё устраивает на старой, а что может быть лучше!?!</li>
</ul>
<h2>Бонус: немножко кейсов для управленца</h2>
<ol>
<li><img src="http://cotoha.info/wp-content/uploads/2008/08/case.png" alt="CASE" align="right" />Если человек очень долго не просит образец заявления на отпуск, то, скорее всего, он скоро попросит образец заявления об увольнении.</li>
<li>Если человек громко восхищается в твоём присутствии наличием холодильника в соседнем отделе, то это он на самом деле не просто восхищается, а намекает. Ферштейн?</li>
<li>И вообще, если сотрудник чем-то громко возмущается (или &#8212; реже &#8212; восхищается), то на это <em>действительно</em> надо обратить внимание. Ты же помнишь &#8212; они по разным причинам не хотят говорить о проблемах\потребностях, но <strong>раз заговорили</strong> (пусть даже косвенно), то <strong>это важно</strong>.</li>
<li>Не надо ждать, пока сотрудник захочет развиваться в другой конторе. Развивай его сам! Сотрудники очень ценят инициативу начальства, поэтому не сиди сложа руки.</li>
<li>Иногда у сотрудника возникают такие потребности, которые компания удовлетворить не в состоянии (читай &#8212; компании это не выгодно). В таких случаях про это надо рассказать совершенно честно и сразу. Ведь ты бы хотел, чтоб по отношению к тебе поступили так же? Искренность ценится высоко.</li>
</ol>
<br/><a href="http://www.developers.org.ua/archives/cotoha/2008/08/19/autism-vs-companies-and-developers/#ratings">Оценить статью на сайте</a> | <a href="http://www.developers.org.ua/archives/cotoha/2008/08/19/autism-vs-companies-and-developers/#comments">373 комментариев</a>]]></content:encoded>
			<wfw:commentRss>http://www.developers.org.ua/archives/cotoha/2008/08/19/autism-vs-companies-and-developers/feed/</wfw:commentRss>
		<slash:comments>373</slash:comments>
		</item>
		<item>
		<title>Задача для украинского программиста</title>
		<link>http://www.developers.org.ua/archives/cotoha/2007/11/27/zadacha-dlya-ukrainskogo-programmista/</link>
		<comments>http://www.developers.org.ua/archives/cotoha/2007/11/27/zadacha-dlya-ukrainskogo-programmista/#comments</comments>
		<pubDate>Tue, 27 Nov 2007 17:46:14 +0000</pubDate>
		<dc:creator>COTOHA</dc:creator>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[задача]]></category>
		<category><![CDATA[рушник]]></category>

		<guid isPermaLink="false">http://www.developers.org.ua/archives/cotoha/2007/11/27/zadacha-dlya-ukrainskogo-programmista/</guid>
		<description><![CDATA[Кто меня знает, тот знает, а кто не знает, так я скажу &#8212; я люблю всякие аутентичные штуки. В частности вышиванки и рушники, особенно с дохристианской тематикой. Вы спросите при чём тут программирование? Так я отвечу, всё очень просто: с помощью рушника наши предки программировали свою будущую жизнь вообще и, в частном случае, жизнь семейную. А вышиванка служила своеобразным фаерволом от нечисти, но про неё потом... может быть :)]]></description>
			<content:encoded><![CDATA[<h2>Вступление</h2>
<p><a href="http://krestvishivka.narod.ru/rushniki.htm" title="рушники"><img src="http://cotoha.info/wp-content/uploads/2007/11/rush_dubrose_m.jpg" align="left" hspace="5" /></a></p>
<p><a href="http://cotoha.info/thoughts/code_da_granny_ukr/">Оригінал українською</a>.</p>
<p>Кто меня знает, тот знает, а кто не знает, так я скажу &mdash; я люблю всякие аутентичные штуки. В частности вышиванки и рушники, особенно с дохристианской тематикой. Вы спросите при чём тут программирование? Так я отвечу, всё очень просто: с помощью рушника наши предки программировали свою будущую жизнь вообще и, в частном случае, жизнь семейную. А вышиванка служила своеобразным фаерволом от нечисти, но про неё потом&#8230; может быть <img src='http://www.developers.org.ua/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>На сегодняшний день мало кто вообще помнит как и, главное, зачем использовался вышитый рушник в обрядовых действиях. Единственное что осталось, так это память о том, что он зачем-то нужен на свадьбе. У нас по части обрядов народ вообще дикий (как-нибудь расскажу, как бабушки мне дочку крестили) &mdash; последствия развитого социализма сказываются &mdash; и тут не обошлось без дикости: рушники вышивают (если не печатают) кто попало, вышивают на них что попало, и используют как попало. Я же говорю &mdash; дикость <img src='http://www.developers.org.ua/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Могу даже пример показать &mdash; на <a href="http://marry.org.ua/usr/templates/images/banerShum.gif">этом баннере</a> нижний этаж рушника&#8230; но вверх-ногами и зачем-то странно &#8220;исправленный&#8221;. Сравните с <a href="http://www.marry.org.ua/usr/templates/images/190607_1.gif">оригиналом</a> (он же в начале статьи).</p>
<p>Цель этой статьи хоть немного побороть дикость, а именно чуток просветить народ про особенности слобожанского свадебного рушника. Естественно в интересной для программиста форме.</p>
<p>Сам обряд я не буду критиковать, хотя и есть за что, я хочу объяснить каким должен быть &#8220;правильный&#8221; рушник как это понималось на Слобожанщине.<br />
Я, <a href="http://kpumuk.info" title="Её зовут Таисия">и</a> <a href="http://anton.shevchuk.name" title="Её зовут Оля">многие</a> <a href="http://blog.fraghistory.com/" title="а меня не познакомили">другие</a>, уже становились на неправильный (вот не верю, что хоть у кого-то был правильный) рушник, но вот <a href="http://erka.kpumuk.info/" title="гы-гы-гы">некоторым</a> это только предстоит. Так вот я собственно и хочу им помочь сделать правильно, если это им вообще надо. А если не надо, то этот пост можно рассматривать просто как экстравагантную задачу.</p>
<p><strong>Итак, слабо без гугла вскрыть код наших прабабушек?</strong></p>
<p><span id="more-1029"></span></p>
<h2>Дерево рода</h2>
<p>Если приглядеться к оригиналу, то на первом этаже мы видим маленькое неприметное чёрное нечто. Оказывается это нечто &mdash; <strong>дерево рода</strong>. <a href="http://cotoha.info/wp-content/uploads/2007/11/derevo-rodu.png" title="Дерево роду"><img src="http://cotoha.info/wp-content/uploads/2007/11/derevo-rodu.thumbnail.png" alt="Дерево роду" align="left" hspace="5" /></a>По нему можно многое рассказать о роде (семье) брачующегося. Оно растёт из горшка &mdash; в данном случае из чего-то, что напоминает избушку на курьих ножках. Само дерево в закодированном виде содержит информацию про 2 колена рода брачующегося.</p>
<p>На рисунке слева показано 2 дерева рода &mdash; одно могло бы быть на моём свадебном рушнике (если бы он был правильным), а другое дерево могло бы быть на рушнике моей мамы (если бы у неё вообще был рушник).</p>
<p>Теперь читаю &#8220;код&#8221;:</p>
<ol>
<li><em>На момент свадьбы, у моей мамы были мама и папа, бабушка и дедушка по маминой линии. Её отец (мой дед) &mdash; детдомовский, поэтому по папиной линии нет ни деда ни бабушки. Кроме того по маминой линии наличествовали три дяди и тётя, причём один дядя был младше её матери, а двое других и тётя &mdash; старше. Как я уже говорил, мой дед из детдома, поэтому тёть и дядь с его стороны не было. Ну и до кучи у мамы было 2 брата &mdash; старший и младший, а также старшая сестра.</em></li>
<li><em>На момент моей свадьбы у меня были мама и папа, бабушка по маминой линии и дедушка по папиной (к сожалению папина мама и мамин папа не дожили до этого светлого дня). Так случилось, что мамины братья тоже умерли, так что у меня по маминой линии осталась только одна тётя &mdash; мамина старшая сестра. От папы тоже есть родич &mdash; дядя, папин младший брат. Ну и, конечно, не могу не упомянуть своего младшего брата.</em></li>
</ol>
<h2>Собственно задача</h2>
<p>С учётом выше написанного, я утверждаю, что <strong>у вас есть достаточно информации, чтобы понять, где чьё дерево, понять, как кодируются различные родичи, и нарисовать своё дерево рода.</strong></p>
<p>Ответы принимаются в формате письма с картинкой на мой мейл. Письмо должно включать картинка (ваше дерево рода) и текст (описание рода), чтобы я мог оценить, правильно ли оно построено.</p>
<p>Комментарии тут без премодерации, поэтому просто по-человечески прошу &mdash; не надо постить спойлер. Вам это чести не сделает, а другим удовольствие поломаете. Ну и ещё раз &mdash; <em>решать без Google.com!</em></p>
<p>Очень хочется из правильных ответов построить <strong>сад деревьев рода</strong> айтишников.</p>
<h2>Отказ от ответственности</h2>
<p>Я не гарантирую, что приведённая здесь информация достоверна, т.к. последний в моём роду, кто знал древние обычаи и правила вышивки, моя пробабушка, не передала это знание дальше &mdash; некому было передавать: её дочери воевали, а внучки были пионерками и комсомолками, которым этим интересоваться было некогда.</p>
<p>А эту версию я случайно нашёл в инете. Тем не менее она выглядит достаточно правдоподобной.</p>
<p>С другой стороны если у кого есть возможность (живы бабушки или прабабушки) уточнить, то я был бы очень благодарен за уточнения или подтверждения.</p>
<br/><a href="http://www.developers.org.ua/archives/cotoha/2007/11/27/zadacha-dlya-ukrainskogo-programmista/#ratings">Оценить статью на сайте</a> | <a href="http://www.developers.org.ua/archives/cotoha/2007/11/27/zadacha-dlya-ukrainskogo-programmista/#comments">32 комментариев</a>]]></content:encoded>
			<wfw:commentRss>http://www.developers.org.ua/archives/cotoha/2007/11/27/zadacha-dlya-ukrainskogo-programmista/feed/</wfw:commentRss>
		<slash:comments>32</slash:comments>
		</item>
	</channel>
</rss>
