<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Illya Klymov on Medium]]></title>
        <description><![CDATA[Stories by Illya Klymov on Medium]]></description>
        <link>https://medium.com/@xanf?source=rss-8c69a7a174f3------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*Tkeps-OkuOKalbOA4SHEVg.png</url>
            <title>Stories by Illya Klymov on Medium</title>
            <link>https://medium.com/@xanf?source=rss-8c69a7a174f3------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 15 Nov 2026 20:45:23 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@xanf/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Книги-2018]]></title>
            <link>https://medium.com/@xanf/%D0%BA%D0%BD%D0%B8%D0%B3%D0%B8-2018-375a809ef6a0?source=rss-8c69a7a174f3------2</link>
            <guid isPermaLink="false">https://medium.com/p/375a809ef6a0</guid>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[книги]]></category>
            <dc:creator><![CDATA[Illya Klymov]]></dc:creator>
            <pubDate>Sun, 31 Dec 2017 20:54:08 GMT</pubDate>
            <atom:updated>2017-12-31T20:54:08.529Z</atom:updated>
            <cc:license>http://creativecommons.org/licenses/by/4.0/</cc:license>
            <content:encoded><![CDATA[<p>Если верить моей читалке, за этот год я прочитал 74 книги. К сожалению, далеко не все из них я могу порекомендовать даже к “одноразовому прочтению”. Этот пост — выжимка, о которой меня просили из тех книг, котоыре мне понравились.</p><p>Я решил разбить этот пост на 2 части — про Soft Skills и художественную литературу — и про профессиональные книги. Почему — я обнаружил, что из мира JS мне понравилась всего пара книг, так что я хочу себе чу-чуть больше времени, чтобы собрать свои рекомендации для Вас.</p><h4>Soft skills</h4><p>Программирование сейчас — всё больше не про код, а про людей. Хотите Вы того или нет — времена одиночек прошли и, если хотите достичь вершины, вы должны быть частью команды, уметь растить команду и идти вперед с ними. Я надеюсь, что эти книги помогут Вам на пути становления лидера и команды.</p><p><strong>Джоэл Спольски “И снова о программировании”</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/194/0*n54hyYUs1GxECqsN." /></figure><p>У Джоэла превосходная серия книг о суровых буднях программистов. Книга — по сути очередной “набор баек”, которые заставляют улыбнуться и задуматься, читаются достаточно легко и непринужденно.</p><p><strong>Том Де Марко, Тимоти Листер “Балдеющие от адреналина и зомбированные шаблонами. Паттерны поведения проектных команд”</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/200/0*4Y_i0RKYlwk_limI.jpg" /></figure><p>Знакомо ли Вам чувство что проект уверенным шагом движется к краху? Когда все KPI зеленее зелёных, но что-то странно сосёт под ложечкой, и потом, в момент, когда всё рухнет — хочется сказать “Я так и знала!”. Авторы этой книги (вы же все читали “Deadline. Роман об управлении проектами”, правда?) взяли на себя титанический труд и описали <strong>86(!) </strong>паттернов поведения, которые позволяют Вам обнаружить симптомы на ранней стадии — когда болезнь ещё можно исцелить. От себя добавлю, что книга применима как в маленькой команде, так и большой компании.</p><p><strong>Максим Батырев “45 татуировок менеджера”</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/422/0*TvQr6JwsyoDnZuMV.png" /></figure><p>Я люблю книги про наши реалии. Уж очень они отличаются от выхолощенной чистоты того, что описывают в книгах “там”. Эта книга по сути написана кровью ошибок. Каждый раз, когда я ее читаю, я улыбаюсь и вспоминаю свои ошибки. “Он учился на своих ошибках, но его опередили те, кто учился по книгам” — про эту книгу.</p><p><strong>Элия Голдратт “Критическая цепь”</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/494/0*SEYKIWfz2kAfnDoE.jpg" /></figure><p>Голдратт — автор известнейшей “Теории ограничений”. И если первая книга “Цель” была про производство, то эта — именно про управление проектами (автор рассказывает про разработку модемов — так что жизнь недалеко ушла от реалий украинского IT-аутсорса)</p><h4>Художественная литература</h4><p>Самая субъективная часть обзора, конечно же. Тем не менее читать только специализированную литературу — глупо. То, что вы говорите и как вы говорите во многом определяется объемами “чтива”, потреблённого Вами. Лично для меня, художественная литература — топливо для креативности, источник метафор и аллегорий в преподавании и вообще — возможность погрузиться в другие миры, гораздо более яркие и красочные чем этот.</p><p>Итак.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/200/0*jE863aZY-05dV832.jpg" /><figcaption>Обложки этой книги одна хуже другой</figcaption></figure><p><strong>Михаил Веллер “Приключения майора Звягина”</strong></p><p>Часто ли Вам встречаются книги, где в первой главе главный положительный герой безжалостно и хладнокровно убивает человека?</p><p>Для меня эта книга — ода человеческому всемогуществу. Да, спорная, местами наивная и фантастичная. Но каждый раз, когда на душе темно я перечитываю ее, и снова и снова заражаюсь всесилием, верой и оптимизмом главного героя. Попробуйте, возможно вам тоже понравится.</p><p><strong>Ханья Янагихара. “Маленькая жизнь”</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/0*y1fFol2XmRuzyVdB.jpeg" /></figure><p>Сколь “позитивна” предыдущая книга, столь же негативна, странна и местами страшна эта. Это не та книга, которую вы будете рекомендовать каждому встречному, взахлёб восторгаясь мастерством автора. Наоборот — только самым близким людям, каждый раз испытывая неловкость, потому что понимаете — они будут страдать. Но без тьмы невозможно познать силу света. И эта тьма в исполнении Янагихара по своему поэтична. Книга оставляет осадок на душе, поэтому не стоит читать её когда тяжело. “Всё пройдет, и это пройдёт” — помните об этом и начиная читать эту книгу, и заканчивая. И я обещаю что эти 600–800 страниц покажутся вам длительной, ужасной и местами зубодробительной вечностью.</p><p><strong>Виктор Пелевин “iPhuck 10”</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/795/0*M2fkl96nUsV1ZnY5.jpg" /></figure><p>Я никогда не был фанатом творчества Виктора Олеговича. Читал “Чапаева и Пустоту”, конечно же Generation P, S.N.U.F.F. и Empire V. И не скажу, что всё это понравилось. Однако эта книга хороша — и по структуре, и по содержанию. Пелевину в этот раз удалось пройти между моими Сциллой и Харибдной, не сваливаясь в совсем уже карикатурные пародии, сохраняя интригу и, что не маловажно для меня, целостность сюжета. Попробуйте, даже если вам не понравился прошлый Пелевин — как по мне, книга выгодно отличается и подходит для знакомства новичкам.</p><p><strong>Ричард Брэнсон “К чёрту все, берись и делай”</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*D9XV78NqvkQcwFnA.jpg" /></figure><p>Еще одна “ода” всесилию. Только теперь — гораздо более в американском стиле, по сути — рассказ про то, как осуществляется американская мечта. Боже упаси, пытаться воспринять её как руководство к действию и боже упаси, после того как Вам понравится книга, пытаться прочитать другие творения Брэнсона — вы обнаружите, что перед Вами жалкий, залитый водой пересказ вот этого первоисточника. Для меня это как современная фантастика, тот “прототип” мышления, который иногда нужен в бизнесе и вообще жизни — видеть цель, не видеть препятствия.</p><p><strong>Макс Фрай “Отдай моё сердце”</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/0*ce4wEyP6pzvvWqnG.jpeg" /></figure><p>В наших жизнях всегда есть люди, которым хочется сказать эту фразу. И если вы не знакомы с миром Ехо — то, как по мне, самое время познакомиться. Не с этой книги, а хотя бы с первой книги серии “Сновидения Ехо”. Легкое, местами одноразовое, но приятное времяпрепровождение в параллельных мирах — с всесильным, но человечным главным героем. Как понравится — пригласите меня на чашечку камры.</p><p>Эта книга для меня — мост времени в беззаботную юность и опять же — огромный источник мыслей и образов, которые копошатся в моем мозгу, изводя единой драгоценной фразы ради тысячи и тысячи тонн словесной руды.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=375a809ef6a0" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Vuex meets Redux-saga]]></title>
            <link>https://medium.com/@xanf/vuex-meets-redux-saga-e9c6b46555e?source=rss-8c69a7a174f3------2</link>
            <guid isPermaLink="false">https://medium.com/p/e9c6b46555e</guid>
            <category><![CDATA[vuex]]></category>
            <category><![CDATA[redux]]></category>
            <category><![CDATA[redux-saga]]></category>
            <category><![CDATA[vuejs]]></category>
            <dc:creator><![CDATA[Illya Klymov]]></dc:creator>
            <pubDate>Sun, 05 Feb 2017 22:42:43 GMT</pubDate>
            <atom:updated>2017-02-05T22:42:43.634Z</atom:updated>
            <cc:license>http://creativecommons.org/licenses/by/4.0/</cc:license>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/984/1*ri_1gM82Mia4Pu3QC8o83w.png" /><figcaption>There is more than just <strong>redux</strong> saga</figcaption></figure><p>According to <a href="https://twitter.com/yassineelouafi2">Yassine Elouafi</a>, creator of the redux-saga:</p><blockquote>redux-saga is a library that aims to make side effects (i.e. asynchronous things like data fetching and impure things like accessing the browser cache) in React/Redux applications easier and better.</blockquote><p>From my point of view, <a href="https://redux-saga.github.io/redux-saga/">redux-saga</a> is a best choice for handling side effects in applications. It offers a good tradeoff between “purity” and “functional approach”. While such great things like <a href="https://redux-saga.github.io/redux-saga/">redux-observable</a> are forcing you to learn <a href="http://reactivex.io/">RxJS</a> and think in streams (which is awesome but requires a significant mind shift) redux-saga sticks to generators, which are just a part of ES2015 standard.</p><p>The truth is, that redux-saga is designed in the way it could be easily integrated with any kind of storage, which implements 3 operations:</p><ul><li><em>subscribe — </em>that’s how redux-saga becomes aware of current operation (such operations are called actions in Redux and mutations in Vuex)</li><li><em>getState — </em>used for obtaining current state of storage</li><li><em>dispatch — </em>used to fulfill <em>put </em>requests from sagas</li></ul><p>In other way, communication between your saga and storage could be expressed with this picture:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*VH8Tnf1LqOKNyPf6vjWAoA.png" /><figcaption>redux-saga is a “simple” bridge for your code when it comes to store communication</figcaption></figure><p>So, with this approach, implementing bridge between redux-saga and Vue.js is as easy as a pie. The actual logic is just <a href="https://github.com/xanf/vuex-redux-saga/blob/master/src/index.js#L46-L48">3 lines long</a>, with whole other code just being a wrapper to imitate behaviour, similar to <em>sagaMiddleware </em>in Redux. The usage is pretty obvious, you can try it <a href="http://jsbin.com/mabixivuxe/1/edit?html,js,output">live on JSBin</a>, and the whole plugin is published on NPM as <a href="https://npmjs.org/vuex-redux-saga">vuex-redux-saga</a></p><p>It’s awesome to see how the properly implemented software can easily work with pieces it was never designed for. For me it’s a sign of a good architecture approach and a good guarantee the project will live and expand.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e9c6b46555e" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[7 грехов программиста: Похоть]]></title>
            <link>https://medium.com/@xanf/7-%D0%B3%D1%80%D0%B5%D1%85%D0%BE%D0%B2-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82%D0%B0-%D0%BF%D0%BE%D1%85%D0%BE%D1%82%D1%8C-198854015619?source=rss-8c69a7a174f3------2</link>
            <guid isPermaLink="false">https://medium.com/p/198854015619</guid>
            <dc:creator><![CDATA[Illya Klymov]]></dc:creator>
            <pubDate>Wed, 21 Dec 2016 13:43:36 GMT</pubDate>
            <atom:updated>2016-12-21T14:43:45.636Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*0F3lyvpMVAPuIWTqTAmdoQ.jpeg" /></figure><h4>Предисловие, которого не должно было быть</h4><blockquote>«Если можете не писать, не пишите» Л.Н. Толстой</blockquote><p>Кажется, вечность прошла с предыдущей статьи этой серии. Выдав на-гора почти весь цикл, я запнулся о последний грех. Столь низменный, столь обыденный и столь странный в контексте всех моих рассуждений. Выкинув пару черновиков, я сдался и решил отложить последнюю статью до лучших времён. И, кажется, они настали. Сейчас 2:06 утра и в ожидании рейса в Минск я понял, что мне есть что сказать и чем закончить этот цикл. Тем более в <a href="https://medium.com/russian/7-%D0%B3%D1%80%D0%B5%D1%85%D0%BE%D0%B2-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82%D0%B0-%D1%87%D1%80%D0%B5%D0%B2%D0%BE%D1%83%D0%B3%D0%BE%D0%B4%D0%B8%D0%B5-e673f677b04b#.xqc4xkmh7">предыдущей статье</a> так пафосно рассуждал, насколько ценным является умение доводить дела до конца. И пусть с “завтра” не вышло — но этот цикл закончится здесь и сейчас.</p><p>За это время многое изменилось в моей жизни. Я умудрился закрыть и снова приоткрыть собственную компанию (зато теперь с точностью до цента знаю, сколько именно стоят вторые шансы). Провести курс по Node.JS в компании, и уже вечность этой компании обещать прислать обзор кода по итогам этого курса. Потерять веру в одних людей, и, совершенно неожиданно для себя, открыть новые таланты в тех, кто уже долгое время был рядом. Пройти все пять ступеней принятия вверх, вниз, вдоль и поперёк. Осознать, что я не умею и не хочу проигрывать и взорвать эту абсурдную лестницу к чертям. И если вам покажется, что эта статья по стилю уж очень сильно отличается от предыдущих — я думаю так оно и есть. Я называю это “развитием”.</p><h4>Об улыбках, доминировании и прочих удовольствиях</h4><p>Давайте помучаем “Википедию”:</p><blockquote>Похоть — грубое чувственное половое влечение, сладострастие</blockquote><blockquote>В христианстве — всякая незаконная страсть и желание, отвращающее человека от Бога, развращение сердца, влекущее ко злу и греху.</blockquote><p>Мы (программисты) любим программирование. Мы любим быть частью этого бурного потока, где чтобы быть на коне — надо делать это и работой и хобби.</p><p>В то же время мы — живые люди. И это значит, что ничто человеческое нам (увы и ах) не чуждо. В том числе и весь диапазон эмоций — от симпатий до полового влечения (ну должен же я оправдывать название статьи). Нет, я не буду вас отговаривать от служебных романов, интриг и прочего (уверен, в них есть свой шарм), вместо этого я попробую <a href="http://www.ilibrary.ru/text/467/p.1/index.html">поверить алгеброй гармонию</a> и озвучить вам те неудобные вопросы, которые стоит задавать себе каждый день, прежде всего — чтобы оставаться людьми. Ведь так сложно удержаться, когда рядом с тобой длинноногая стройная девушка с ногами “от ушей”, которая способна рассуждать о комбинаторе неподвижной точке и лямбда-исчислении или парень, который только что играючи решил проблему, с которой ты возишься уже неделю (некоторых это оказалось бесит).</p><p>В конце-концов — эмоции и приключения это круто! Я видел много людей, чья карьера переживала бурный рост, благодаря роману на работе. Ну, знаете, — это невероятное чувство плеча, совместное развитие, причастность к общему делу и ощущение что вы действительно две половинки одного целого.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/1*7XFfoXei6VHfPzi1n8uhUA.jpeg" /><figcaption>Это было в Дилберте! (Дилберт — это как “Симпсоны” в мире IT)</figcaption></figure><p>Но, к сожалению, я видел также много людей, для которых подобные интриги заканчивались стрессом, проблемами на карьерной лестнице и т.д. Я люблю людей, и хочу чтобы Ваш случай конечно же стал толчком для полёта, а не гирей, тянущей на дно.</p><p>Одна моя хорошая знакомая некоторое время назад ходила беременная. Даже не так — очень беременная. И будучи по природе человеком с аналитическим складом ума — хронически опасалась принимать решения. Почему? “А как я пойму — я ли это или мои гормоны?”. Эндорфины, серотонин, дофамин и прочие -ины однозначно влияют на нашу способность рассуждать здраво. С этим ничего поделать нельзя, даже если ваше IQ устремляется в небеса, а ваш разум обладает полной памятью всех предыдущих инкарнаций. Самый простой способ не наломать дров — иметь рядом друга, который не побоиться прямо и жестко предупредить вас, что вы начинаете совершать даже не глупости, а полные глупости.</p><blockquote>“Долго и счастливо” — не значит “вечно”. Это просто значит время…</blockquote><p>Жизнь полна сюрпризов и неожиданностей — и не всегда приятных. Если у вас всё хорошо — это не значит, что всё будет так же хорошо через неделю, завтра, или даже через пару часов. Сможете ли вы смотреть в глаза девушке, которая вас бросила, и видеть там не “безжалостную стерву”, а коллегу, которой прямо сейчас требуется помощь в решении сложной задачи? Осознаете ли вы, что предъявляете претензии к подчиненному, потому что он вас “отшил”, а не потому что работа выполнена некачественно? Сможете ли вы устроить “разнос” подчинённой, зная, что вечером дома с вами откажутся разговаривать и лишат сладкого? А сможете ли вы не дуться, когда вас ругает за дело человек, который вам дорог? Вопросы, вопросы, вопросы… Ответы на них гораздо сложнее, чем кажутся на первый взгляд.</p><p>Знаете, что самое сложное во всей этой ситуации? <strong>Оставаться профессионалом</strong>. Что это значит? Профессионал во время работы (давайте для простоты считать “с 9 до 18”, хотя конечно же это понятие гораздо шире, да и где вы видели программиста, начинающего работу в 9?) ставит приоритеты проектной команды выше собственных личных интересов. Профессионал эффективно взаимодействует с людьми, независимо от эмоций, которые он испытывает в данный момент по отношению к этим людям. Профессионал не демонстрирует свои эмоции, понимая, что его постная морда лица демотивирует чуть более чем полностью. Готовы ли вы отказаться, пусть на треть суток от своих чувств ради выполнения работы? Или, оказавшись в любовном треугольнике, уволитесь — будучи готовыми переступить через положения контракта?</p><p>В моей картине мира подобные ситуации (а они, похоже, неизбежны в любом коллективе) — очень злой, страшный, но чрезвычайно эффективный тест на зрелость. Пройдите через него достойно — и вы получите лучшего себя. Заявите, что вы “живой человек и имеете право на ошибку” — и получите опыт вместо всего остального (тоже не так плохо, правда?).</p><blockquote>И если ты своей владеешь страстью,<br>А не тобою властвует она,<br>И будешь тверд в удаче и в несчастье,<br>Которым в сущности цена одна…<br>(<a href="http://summoning.ru/quotations/if.shtml">Р.Киплинг “Если”</a>)</blockquote><p>Владейте своими страстями — они движут вас вперед. Но всегда не забывайте сверяться, чтобы это “вперед” совпадало с вашим внутренним компасом.</p><p><strong>P. S.</strong> Ребята, с MostJS Frameworks Day. Все те, кто поднял руку, что читали эту статью и которым я пообещал выложить ее тогда. Извините, я вас подвёл. Статья написана была за пару недель до этого, но я не чувствовал, что она достаточно “вылежалась” — после написания я долго сглаживаю острые углы, подбираю выражения и т.д.</p><p><strong>P.P.S. </strong>За окном почти 2017 год. И, если верить математике, он, в отличие от 2016, будет простым. И завершая этот цикл статей, я хочу сказать — “кто безгрешен, пусть первый бросит в меня камень”. Из всех грехов самый страшный для меня — бездействие. Поэтому считайте эти строки моим публичным обещанием быть активным участником JS-сообщества, двигать его вперед в масштабах города и страны, создавать новый контент и помогать людям становиться лучше, чем они есть.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=198854015619" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[7 грехов программиста: Чревоугодие]]></title>
            <link>https://medium.com/@xanf/7-%D0%B3%D1%80%D0%B5%D1%85%D0%BE%D0%B2-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82%D0%B0-%D1%87%D1%80%D0%B5%D0%B2%D0%BE%D1%83%D0%B3%D0%BE%D0%B4%D0%B8%D0%B5-e673f677b04b?source=rss-8c69a7a174f3------2</link>
            <guid isPermaLink="false">https://medium.com/p/e673f677b04b</guid>
            <category><![CDATA[programming]]></category>
            <dc:creator><![CDATA[Illya Klymov]]></dc:creator>
            <pubDate>Sun, 07 Aug 2016 08:06:08 GMT</pubDate>
            <atom:updated>2016-08-07T08:06:08.076Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*II48Ap_dz2Y-BnsA4x3JTA.jpeg" /></figure><p>Конечно же «чревоугодие» — это метафора. Разговаривать о программистах, покупающих <a href="https://dou.ua/forums/topic/7607/">сыры по 500 гривен</a> и индексе Биг-Мака мы не будем. Все-таки это относится скорее к личным качествам, чем к нашей профессии, и, как следствие — в рамках этого цикла не очень-то мне интересно. Вместо этого мы поговорим о вещах, про которые в народе говорят «что занадто, то нездраво».</p><h4>Любовь ко всему новому</h4><p>Одно из типичнейших проявлений «чревоугодия» — любовь ко всему новому в проекте. В самой любви к новому ничего постыдного нет — любой программист должен развиваться (мы об этом уже говорили) и неотъемлимая часть такого развития — постоянно брать что-либо “на поиграться”. Проблемы начинаются тогда, когда это “на поиграться” начинает попадать в проект, еще не будучи обкатанным в производстве. Будем откровенны, многим из нас лень делать сколь-нибудь серьезные pet-project, вместо этого все происходит по принципу “потыкал — вроде нравится, вроде ок, вроде особых проблем нет”. Вроде бы, все будет хорошо. Вроде бы.</p><p>Каюсь, сам грешен подобным образом. Однажды мы сделали огромное банковское приложение на PHP, стартовав его на Symfony 2 Preview Release 7 (даже не на Beta и не на Release Candidate). Сейчас, оглядываясь назад, я осознаю, какой колоссальный риск это был и насколько мне лично повезло, что все прошло хорошо.</p><p>Каждый раз, перед тем, как установить новый модуль в проект или стартовать что-нибудь на неопробованной технологии, задайте себе несколько вопросов:</p><ul><li>простит ли вас заказчик, если посреди проекта внезапно возникнут трудности технологического характера и это сдвинет дату завершения проекта? (глупо стартовать на новых технологиях проект с неизменяемым сроком сдачи, к примеру под олимпийские игры)</li><li>есть ли у вас желание и ресурсы тратить свое личное время на разрешение проблем? Помните — перефразируя Экзюпери — мы в ответе за тех, кого подключили — и может оказаться так, что из-за какой-нибудь проблемы будет простаивать вся команда, радостно (или не очень, это не суть важно) указывая на вас, как главного виновника их несомненно “вынужденного” отдыха?</li><li>Есть ли у вас “рядом” эксперт в этой технологии, которого вы можете “дернуть”, если будет совсем уж туго?</li></ul><p>Если хотя бы на один из этих вопросов ответ “нет” — поверьте моему опыту, не ищите себе приключений. Да, все может окончиться успешно, но суть крутых и высокоэффективных программистов — не в единичных идеальных проектах, а в том что они стабильно и <strong>предсказуемо</strong> выдают результат <strong>выше среднего</strong>. Да, на короткой дистанции энтузиаст с красивым модным фреймворком может и “уделать” эксперта, но поверьте — их соперничество уж очень напоминает диалог <a href="http://www.inpearls.ru/176225">двух быков на горе</a>.</p><p>Еще одним забавным проявлением “чревоугодия” и, как я его называю “синдрома сороки”, является любовь к новым инструментам, которые точно ускоряют работу. Сегодня у такого человека установлен WebStorm, вчера был установлен VIM, завтра это будет Atom, а послезавтра — Visual Studio Code. И каждая встреча с человеком будет начинаться с показа “крутых фишечек”, с которыми “так удобно писать код”.</p><p>Правда в том, что большую часть времени мы не пишем код. Вы можете до умопомрачения настраивать Emmet, чтобы писать метод нажав 4 буквы, но основное время будет уходить на мыслительный процесс, а не “стучание по клавиатуре”. Любая новая “штука”, которую вы добавляете в свой рабочий процесс первично неизбежно замедляет его — пока вы привыкаете, запоминаете горячие клавиши и т.д. и т.п. И если вы меняете эти штуки как перчатки — вы постоянно работаете медленнее, чем ваш коллега, который пишет код, допустим, в ископаемом NetBeans уже 3-й год кряду. (Справедливости ради, из правила “мы основное время думаем” бывают исключения. Однажды мне довелось наблюдать за работой высококлассного верстальщика в редакторе, с настроенным Emmet’ом. Такой скорости вёрстки я больше никогда не видел — человек просто смотрит на картинку и видит свёрстанный макет. Это божественно)</p><blockquote>Нет ничего, что более восхищает меня, чем наблюдать за работой высококлассного профессионала. Это музыка сфер и вселенская гармония в одном флаконе</blockquote><p>Старайтесь быть чуть более переборчивыми и критичными ко всему новому. Да, я предлагаю Вам следовать старой поговорке “Старый друг лучше новых двух”. Или она тоже недостаточно новая и хипстерская для Вас?</p><h4>Любовь ко всему старому</h4><p>Чревоугодие имеет два аспекта — любовь к новым вкусовым ощущениям (назовем это гурманством) с одной стороны, и с другой стороны — просто набивание брюха в свое удовольствие. Точно так же и в программировании вы можете встретить людей, которые упорно начинают проект ровно на одной и той же технологии, которую они хорошо знают и не приемлют ничего другого. Фактически, вместо разнообразия на своем обеденном столе (и не только на своем, если это руководящая должность), они предпочитают ровно одно блюдо, но много. За таким поведением может скрываться как профессионал, который освоил конкретный стек “от А до Я”, и может использовать его на все 100, так и неуверенная в себе личность, которая боится выйти из своего кокона в поисках чего-то нового. Как различить? Очень просто — поговорить и задать буквально пару-тройку вопросов (их я предпочитаю задавать всем людям, которые позиционируют себя к примеру как “Senior AngularJS Developer” — в моей картине мира быть “сеньйором” в одном фреймворке — недопустимо узкая специализация):</p><ul><li>расскажите о <strong>недостатках </strong>вашего стека и какие проекты на нем не стоит делать? Невозможно быть максимально эффективным, не зная слабых мест своего решения. Пилоты истребителей зачастую выигрывают воздушные бои (те, которые любяти называть “dogfights”) не только и не столько благодаря техническому превосходству летательного аппарата, а благодаря знанию и умелому использованию сильных и слабых сторон пилотируемого самолета. Про сильные стороны технологий говорят все — “это помогает продавать”. Про слабые же каждый из нас докапывается сам. Если выбранная человеком технология “идеальна” — он не познал её дао, не доверяйте ему;</li><li>расскажите о том, что ваш стек мог бы <strong>позаимствовать</strong> из других языков / технологий. Вопрос с подвохом. Здесь сразу проверяется способность человека аналитически мыслить, выделять важное, приводить аргументы и контраргументы, но сейчас самое главное не это. Самое главное — мы поймем насколько хорош у этого человека кругозор — я не люблю .NET, но слежу за развитием и знаю что происходит в стане у “потенциального противника”. Точно так же я считаю Elm хипстерским баловством, но это не мешает мне находить в нем отличные идеи и применять их у себя</li><li>расскажите о том, что <strong>другие технологии</strong> могли бы позаимствовать у вашего стека и зачем это им может быть нужно (как это им облегчить жизнь). Еще более коварный вопрос. Если в предыдущем вопросе человек мог перечислить все известные ему buzzwords, то в рамках одного стека клевых фишечек не так много, прийдется думать</li></ul><p>Превосходным примером подобного профессионала является <a href="https://medium.com/u/97d4e5a3fcf9">Andrey Listochkin</a>. Будучи самым известным мне апологетом Ember’а на территории Украины и близлежаших стран, Андрей имеет очень широкий кругозор, имеет иммунитет к хайпу и всегда более чем конструктивен. На него стоит равняться.</p><h4>Неуклюжее послесловие</h4><p>Поддерживать темп моего спринта “7 статей за 7 дней” становится все сложнее — как всегда вмешивается реальная жизнь. Эту статью я дописываю в небольшой пристройке на даче, где нет стола, на котором можно было бы разложить мой “перепланшет-недоноутбук” с температурой +30 за бортом и явно больше +36.6 у меня. Именно поэтому эта статья чуть короче, чем остальные — очень тяжело быстро-быстро стучать по клавиатуре, истекая потом :) Тем не менее, способность “доводить дела до конца” является фундаментально важной для программиста (слишком многие ею просто не обладают) — именно поэтому я просто прошу вас поставить лайк этой статье — это вдохновит меня на последний рывок завтра, чтобы закрыть этот цикл.</p><p>Всех благ вам и здоровья.<br>Илья.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e673f677b04b" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[7 грехов программиста: Алчность]]></title>
            <link>https://medium.com/@xanf/7-%D0%B3%D1%80%D0%B5%D1%85%D0%BE%D0%B2-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82%D0%B0-%D0%B0%D0%BB%D1%87%D0%BD%D0%BE%D1%81%D1%82%D1%8C-c5b352d51dd4?source=rss-8c69a7a174f3------2</link>
            <guid isPermaLink="false">https://medium.com/p/c5b352d51dd4</guid>
            <category><![CDATA[programming]]></category>
            <dc:creator><![CDATA[Illya Klymov]]></dc:creator>
            <pubDate>Sat, 06 Aug 2016 08:45:21 GMT</pubDate>
            <atom:updated>2016-08-07T08:08:33.806Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*YcYnbcV-rDgLbRI4BRCg8w.jpeg" /></figure><p>Буду с вами откровенен — алчность всегда была не про меня. У меня во главе были другие ценности — интерес, развитие, свобода. Сейчас, на позиции владельца компании я (врать не буду) зарабатываю меньше, чем мог бы, работая каким-нибудь Architect’ом в крупной аутсорсинговой компании. Поэтому эта статья не будут содержать каких-то прямых рекомендаций, как бороться с этим грехом. Я уже затрагивал эту тему в своём цикле “<a href="https://medium.com/p/aa99f3ce376">Хороший, плохой, злой</a>”, и здесь попробую лишь детальнее раскрыть классические проявления алчности у Programmator Vulgaris.</p><blockquote>Алчность в православной этике — одна из 8 греховных страстей (в католичестве — один из 7 смертных грехов) поскольку приводит к умножению забот и попечений, ко внутренней злобе и замкнутости, а также непрестанно провоцирует страх утраты и гнев на возможных конкурентов и зависистников (с) Википедия</blockquote><p>Я далек от православия, и уж тем более от его этики, но описание чертовски верное. В моей картине мира, лекарства от алчности нет (Мне таблеток от жадности и побольше!). А вот прививка есть — понимание хотя бы на базовом уровне тех процессов, где крутятся “большие” деньги и к которым вы причастны. Давайте посмотрим на некоторые из них.</p><h4>Увести заказчика или цена слова</h4><p>90% моих коллег работают в аутсорсинге или даже аутстаффе. Другими словами? компания здесь находит клиента — и дальше, в том или ином виде программист работает с ним напрямую. Заказчик платит компании, компания платит долю от этого программисту. Иногда в этом процессе финансовый фактор выходит на первый план и тогда либо заказчик предлагает программисту работать с ним “напрямую”, либо, что на моей памяти случалось реже, сам программист выходит с таким предложением на заказчика. Соблазн велик — формально, для программиста ничего не меняется (ок, прийдется переехать в другой офис), а разница в получаемых деньгах может быть более чем существенной (мне известны случаи, когда человек, получавший $2000 после того как начал работать напрямую стал получать $6000). Оправдания, которые я слышу от тех, кто пошел таким путём не отличаются особым разнообразием:</p><ul><li>я все делаю сам, компания не делает ничего, ладно, если бы она брала за это “ничего” 10%, а так же берет 100 и более;</li><li>раз заказчик готов за меня столько платить, значит меня сильно недооценивают, а поднимать зарплату отказались;</li><li>я считаю это подлым и неправильным столько зарабатывать на мне, когда я пашу как проклятый, а руководство ездит на “Бентли”;</li><li>я смогу вести проект без этого тупорылого менеджмента и сделаю все правильно;</li></ul><p>Врать не буду, иногда мне самому была близка эта философия. Сейчас же, посмотрев на ситуацию с позиции “компании” я знаю, какие вопросы следует задать этим людям:</p><ul><li>компания платит зарплату, даже когда проекта нет и вы простаиваете. Откуда берутся эти деньги?</li><li>для того, чтобы привлечь клиента, работал Sales (а зачастую и не один). Ему надо тоже платить зарплату. Откуда брать эти деньги?</li><li>клиент выбрал компанию, в которой вы работает не просто так. Причиной могут быть личные связи кого-то в руководстве, предыдущий опыт и достойное портфолио, или, в конце-концов, рекомендация друзей. Сколько денег было вложено компанией, чтобы этот конкретный клиент выбрал ее?</li></ul><p>Чаще всего на эти вопросы нет и не может быть ответа. Некоторые вещи сложно оценить в финансовом плане с позиции программиста, а некоторые даже с позиции владельца компании.</p><p>Все чаще компании включают пункт о неконкуренции в свои договора. За мои 10 лет пребывания в аутсорсинге мне неизвестен ни один факт преследования <strong>программиста</strong> за нарушение условий договора (такой же договор заключается и с заказчиком, и там я пару примеров знаю). Поэтому соблюдение этого пункта — исключительно вопрос цены вашего слова. Сколько оно стоит? $5000? €10000? Перед тем как принять окончательное решение помните, что “любовь живет три года” — вероятность того, что вы будете сосуществовать с этим заказчиком долго и успешно — 50%. И когда от вас заказчик уйдет — вам снова прийдется возвращаться на рынок труда.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/0*y4SNuUJ9O21vHjMa.gif" /><figcaption>А как вы объясните свой уход с прошлой работы?</figcaption></figure><p>IT — это большая деревня, где все всех знают, и пусть ваша алчность задумается о том — сколько денег и какие условия предложат человеку, про которого <strong>абсолютно точно</strong> известно, что он увел заказчика и будут ли ему доверять. <a href="http://bogachev.ru/?p=173#.V6WZwzt97SU">Потерять доверие легко, восстановить — очень сложно</a>.</p><h4>Salary-jumping</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1001/0*9QB3ljW9fIj_g45d.png" /></figure><p>Профессиональный вид спорта среди некоторых IT-шников здесь в Харькове. Как работает: устраиваешься на работу в компании, работаешь. При получении первого же предложения от внешнего HR — идешь на собеседование и просишь +$200 к текущей зарплате. Почему это срабатывает? Чаще всего программист компании нужен “здесь и сейчас” — заказчик есть, проект простаивает, деньги теряются. Поэтому они готовы переплатить эту сравнительно небольшую сумму, только чтобы заполучить программиста. Устраиваешься в новую компанию (или если в старой нравится больше — приходишь к руководству, и говоришь что тебе сделали предложение там-то на +$200). Повторяешь итерацию. Знаю людей, которые умудрились получить +$1500 к зарплате, не увеличив свои профессиональные навыки ни на йоту.</p><p>Прелесть подобного метода в том, что он дает иммунитет к вопросу “а почему вы меняете место работы так часто” — фактически, вы нагло используете потребность компании в программисте для удовлетворения своих низменных финансовых запросов :)</p><p>Злорадство — это очень плохо, но именно его я испытал, когда компания войдя в мелкий кризис уволила этого человека. Все логично — в любой минимально критичной ситуации от переоцененных и “незаменимых” людей избавляются первыми.</p><h4>Фриланс</h4><p>В самом фрилансе нет ничего такого. Более того, он может стать отличным способом заработка денег, повышения профессиональных навыков и оттачивания “soft skills” — навыков менеджера, точной оценки сложности и длительности задач и (если вы работаете не один) — руководства людьми. Проблемы начинаются, когда у вас кроме фриланса есть еще и основная работа. Специфика программирования такова, что рано или поздно случаются авралы. Так же будет и на фрилансе — заказчику срочно понадобится что-то доделать вот совсем-совсем срочно. И тут у вас есть два варианта:</p><ul><li>рискнуть всем и делать это что-то прямо на работе. Вариант тупиковый, потому что рано или поздно это всплывет. И вы поступаете подло по отношению к своему работодателю;</li><li>взяться за это после работы. Выглядит хорошо, но вы все еще поступаете подло по отношению к своему работодателю. Работая “после работы” (да, меня точно возьмут в клуб любителей тавтологий) вы жертвуете либо отдыхом либо сном. И когда вы приходите в офис в состоянии “разрешите мне умереть” — вы фактически <strong>обманываете </strong>своего работодателя — вас же брали в расчете на эффективную, продуктивную работу.</li></ul><p>Как видите, оба варианта одинаково плохи. Я не знаю людей, у которых бы это работало в долгосрочной перспективе. Хотя стоп, знаю.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/604/0*mjx2Hy_XSe2QgnLX.jpg" /></figure><p>Есть у меня пара коллег, которые мотивируют свое пребывание в компании формулировкой “мне здесь платят, за то что я ничего не делаю” и “я уволился оттуда, потому что работать приходилось”. Мне с ними не по пути. Надеюсь, вам тоже.</p><h4>Мрачные предсказания будущего</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*DMWTDI201s66qurd.jpg" /><figcaption>SkyNet. Он уже здесь.</figcaption></figure><p>Алчность — самый эффективный путь загубить свою карьеру как профессионала. Если я вас не убедил — подумайте о двух вещах. Первое: зарплата 5% специалистов в любой отрасли превышает зарплату остальных в среднем в 3 раза. Вы правда готовы распыляться на “стричь бабло” сейчас или вы просто неспособны взять штурмом этом вершину? Вторая вещь: AI переживает взрывообразный рост. И если до SkyNet’а еще ох как далеко, я лично верю в то, что в ближайшее время развитие искуственного интеллекта вымоет программистов “среднего звена” как класс. Фактически останутся рядовые “кодеры” которые будут помогать в обучении AI и выполнять прочую черновую работу и профессионалы, которые собственно будут это AI писать. Подчеркну — это лишь моё мироощущение, которое не подкреплено реальными фактами и может быть фундаментально неверным. Тем не менее сейчас я живу с мыслями, что у меня осталосьмаксимум 3–4 года, чтобы выбраться на “вершину” — я не молодею и мне на пятки наступают молодые, дерзкие и умные — такие же, каким я был лет 10 назад. Я хочу быть на вершине, присоединяйтесь.</p><p>P.S. Мне в личные сообщения задают много вопросов про мои курсы и будут ли еще наборы. Да, будут, когда — осенью. Детали пока непонятны, мне нужно переосмыслить мои педагогические победы и провалы за последний год. Про это тоже обещаю написать статью.</p><p><em>Следующая статья:</em></p><p><a href="https://medium.com/@xanf/7-%D0%B3%D1%80%D0%B5%D1%85%D0%BE%D0%B2-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82%D0%B0-%D1%87%D1%80%D0%B5%D0%B2%D0%BE%D1%83%D0%B3%D0%BE%D0%B4%D0%B8%D0%B5-e673f677b04b">7 грехов программиста: Чревоугодие</a></p><p><em>Поставьте лайк — это поможет мне собраться с мыслями и дописать оставшиеся две статьи :). Никогда не думал, что выпускать по статье в день будет так тяжело, поэтому каждое ваше сердечко — бальзам на душу усталого автора.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c5b352d51dd4" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[7 грехов программиста: Уныние]]></title>
            <link>https://medium.com/@xanf/7-%D0%B3%D1%80%D0%B5%D1%85%D0%BE%D0%B2-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82%D0%B0-%D1%83%D0%BD%D1%8B%D0%BD%D0%B8%D0%B5-ac514112cb2d?source=rss-8c69a7a174f3------2</link>
            <guid isPermaLink="false">https://medium.com/p/ac514112cb2d</guid>
            <dc:creator><![CDATA[Illya Klymov]]></dc:creator>
            <pubDate>Fri, 05 Aug 2016 08:53:02 GMT</pubDate>
            <atom:updated>2016-08-06T08:46:36.309Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*G_HaniysL3RaC4XzLMp2qg.jpeg" /><figcaption>Мы все периодически бываем подобными черепашками</figcaption></figure><p>Знакомо состояние, когда всё валится из рук, задачи печалят, и ты не можешь начать писать ни строчки кода? Даже решенные проблемы не радуют, проект представляется свалкой костылей в которой, если покопаться, можно откопать остатки мамонтов, неандертальцев и программистов, павших в процессе разработки, и над всем этим брезжит вопрос “зачем все это?”.</p><p>Уныние рано или поздно настигает всех программистов. Это абсолютно нормальный процесс — невозможно 100% времени оставаться сверхмотивированным турбо-веником. К сожалению, у меня нет универсального рецепта борьбы с ним — я сам иногда опускаю руки, даже если этого никто не видит — поэтому сегодня я постараюсь рассказать о тех эпизодах своей жизни, когда я сталкивался с унынием, и как я с ним справлялся или пытался справляться.</p><h4>Уныние на проекте</h4><p>Унылейшее уныние. Дважды печаленька. Кто-то устает на проекте за три месяца, кто-то за полгода, кто-то за три. Существуют сотрудники (почти все из знакомых мне — девушки), которым наоборот нравится стабильность. У них иммунитет к унынию. Но большинство хочет перемен. И не всегда у компании (к примеру у крошечной, размером с мою) есть возможность перевести Вас на другой проект. Кто-то решает проблему радикально — перескакивая с одной компанию в другую. Это опасно, однажды вы рискуете услышать:</p><blockquote>«Миша, ты больше ни в одной компании года не работал, мы тебя в стартап не возьмем!»</blockquote><p>Любое IT — большая деревня, и я бы точно побоялся бы брать к себе сотрудника, на которого нельзя положиться.</p><p>Прежде всего, давайте разберем причину. Уныние — для меня антоним интереса. Интерес возникает когда мы находим оптимальный интерес между сложностью задачи и нашими навыками. Другими словами — задача должна содержать “вызов”, но не должна быть сверхсложной.</p><p>Если вам грустно от того, что все задачи понятны и просты (а еще и требуют кучу времени) — усложните задачу. Да, с точки зрения бизнеса плохой совет, но мы же боремся с вашим унынием. Вместо верстки 15 инпутов воткните какой-нибудь мелкий конфигуратор для этого. Или напишите скрипт, который генерирует для вас эту верстку. Усложните задачу (но не сильно!) чтобы пробудить интерес. Или под эгидой мелкого багфикса проведите партизанский рефакторинг модуля.</p><p>Если задача слишком сложная — как можно быстрее ищите помощи. Тимлида, менеджера и т.д. — сообщите им. Вам либо помогут, либо поменяют задачу — помните, слона надо есть по бифштексам, не пытайтесь взять Эверест в одиночку — это удается единицам.</p><h4>Эмоциональное выгорание</h4><blockquote>Во-вторых, «сгореть» на работе могут интроверты, то есть те, кто держит в себе все свои переживания, не выплескивая эмоции на окружающих. Оказавшись в стрессовой или неудобной для себя ситуации, такой человек долго не будет выражать недовольство, накапливая негатив. Естественным следствием этого часто становятся хроническая усталость и профессиональное выгорание.</blockquote><blockquote>Наконец, ещё одна категория работников, которым грозит эмоциональное выгорание, — перфекционисты, то есть те, кто всегда стремится выполнить свою работу лучше всех. «Красный» диплом университета, успешные самостоятельные проекты, победы в профессиональных конкурсах — всё это даётся перфекционистам не за красивые глаза, а становится результатом ежедневного напряжённого труда. Несколько лет работы практически без выходных нередко оборачиваются синдромом профессионального выгорания. (с) <a href="https://www.superjob.ru/pro/5089/">https://www.superjob.ru/pro/5089/</a></blockquote><p>Я искренне считаю, что почти каждый программист должен быть почти перфекционистом. Лично мне нужны, важны и ценны работники, которые задумываются прежде всего над тем “как сделать Х хорошо”, а не над тем “как сделать Х”. Однако я не согласен с приведенной выше цитатой про интровертов. В предыдущей статье про гнев я говорил, что если Вы начальник — то не можете вымещать его на подчиненных. И будь вы трижды экстравертом — если вы следуете этому совету, вы будете выгорать — не желая видеть ваших подчиненных и осознавая что вы бесполезны как начальник.</p><p>Я борюсь с эмоциональным выгоранием несколькими способами:</p><p>В моем списке дел существует огромный (правда, огромный) список “Sometimes”. Это вещи, которыми бы стоило заняться, но не имеют конкретного времени начала. Когда мне не хочется делать ничего — я нахожу в этом огромном списке штуку, которая имеет хоть малую пользу для того, что я должен делать сейчас — и делаю ее. Таким образом я:</p><ul><li>начинаю что-то делать. Особенность человеческой психики такова, что самое главное — начать, а не лежать на спинке и фрустрировать;</li><li>решаю главную проблему уныния — внутреннего зверя, который говорит “я знаю что ты занимаешься фигней”, и который доедает оставшиеся силы — я не занимаюсь “фигней”, я работаю в нужном направлении;</li><li>запускаю мозг. Когда я в унынии — это большая и непростая задача</li></ul><p>Если же вы просмотрели свой “Sometimes” (даже если вы не ведете список задач — заведите себе такой список, он помогает развиваться, что, впрочем, тема для отдельной статьи) и ничего не охота — вам срочно нужна помощь и одному/одной Вам не справиться. Еще один простой метод — парное программирование. Позовите ближайшего коллегу пописать с Вами код, и да, вам будет тяжело, но рассматривайте это как запуск машины с севшим аккумулятором — с буксира.</p><p>Если же и это не помогает — я сажусь и начинаю НИЧЕГО не делать. Два важных пункта — <strong>ничего</strong> не делать, это тупо сидеть, а не листать ВК, Ютуб и т.п. Главное при этом сидеть, а не лежать, а то мой мозг мгновенно уходит в спящий режим. Даже в состоянии уныния, мой рекорд — 21 минута, после чего мне захотелось чем-то заниматься.</p><p>И еще, бороться с эмоциональным выгоранием сильно помогают банальные и очевидные вещи:</p><ul><li>физические нагрузки (бег, плаванье, зал, велосипед и т.д.)</li><li>правильное питание, витамины и т.п. (если у организма неоткуда взять энергию, он впадает в энергосберегающий режим)</li><li>знание странного-странного ответа — в чем ваше призвание? (я не верю в призвание “писать код”, оно слишком простое и нереалистичное)</li></ul><h4>Обучение</h4><p>В нашей профессии знания устаревают настолько быстро, насколько это вообще возможно. Хотим мы того или нет — мы постоянно учимся. Мы осваим новые фреймворки и библиотеки, изучаем новые подходы и концепции. Чаще всего, это происходит в формате “experience injection” — когда мы получаем небольшую “пилюлю”, содержащую квинтэссенцию опыта наших колег, и этот небольшой кусочек великого знания, который сразу же помогает нам быть продуктивнее. Иногда же нам приходится полностью перестраивать свою картину мира (примеры — переход от ООП к функциональному программированию, от Angular 1.x к React+Redux и т.п.). В таком случае процесс обучения становится гораздо более длительным и выглядит так:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/0*-UpkSS-0M3AqEq74.gif" /></figure><p>Этот график справедлив не только для программирования, а и для любого обучения в жизни в принципе. Вначале мы быстро усваиваем новую информацию, но потом ннаступает ровный участок. На этом участке мы продолжаем изучать технологию, но наше понимание не растет и более того — нам кажется, что мы застопорились навсегда. Лично у меня одно из ярчайших подобных воспоминаний — как я осознавал генераторы в JavaScript года 3 назад. 2 недели я игрался с koajs, написал на ней кусок реального коммерческого приложения, но понимания как это работает — не приходило. Фактически, я использовал заклинания и они работали. А когда не работали — я просто переставлял буквы, в надежде что заработают. И вот однажды, подъезжая к гаражу, пришло <strong>ОНО. </strong>Осознание. Я называю этот процесс “квантовым скачком” (отличный старый сериал) — находясь на ровном участке обучения мы нарабатываем энергию, чтобы перейти на новую энергетическую орбиту (все ж помнят из школьного курса химии, как атомы переходят между орбитами?)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/764/1*jtMxCu07tgi8cSfqM8ZF1w.png" /></figure><p>Для меня это самый сложный сценарий уныния, потому что его никак не избежать. Я по своей натуре спринтер — привык “взрываться” коротким усилием и получать результат. Поэтому мои советы будут слегка абсурдны, но если они сработали у меня — может и Вам помогут?</p><p>Поставьте себе цель пробежать полумарафон. Что за чушь? Полумарафон способны пробежать даже неподготовленные люди (я подготовился за 16 недель). В процессе подготовки вам прийдется бегать в течении часа-полутора. Заниматься тупым, абсолютно неинтеллектуальным бегом. Причем если вы хоть чу-чуть напрягаетесь, то с большой вероятностью вас даже наушники раздражать будут от усталости. Таким издевательством (в общем-то полезным для здоровья) вы приучаете организм к неким монотонным действиям, которые не приносят видимого результата сразу же. Я сам с удивлением обнаружил, что теперь, пробежав полумарафон, я гораздо проще отношусь к рутинным действиям (и нет, это не было первоначальной целью)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*SPQqUNRAxcQ8pXON.jpg" /><figcaption>Я на последних метрах. Боль временна, триумф вечен</figcaption></figure><p>Поэтому последнее что вы можете сделать — опустить руки и остаться на этом плато навсегда, наблюдая, как мимо вас проходят другие люди. Покультивируйте свою гордыню самую малость — и найдите силы встать и идти за ними (на 15км я просто перестал чувствовать ногу. Но я знал что мои знакомые ждут меня на финише и не мог не добежать)</p><h4>Итого</h4><p>Почти все из смертных грехов полезны в малых дозах. Но не уныние. Гоните его из своей жизни при первых признаках — оно рискует запускать свои коварные черепашьи лапки везде, превращаясь в депрессию и приглашая вас как можно дольше оставаться внутри уютного панциря. Всегда помните — человек, существо социальное, оставайтесь такими. Ведь хорошие друзья и приятная компания — это то, чего уныние боится как огня. Пусть рядом с Вами всегда будут люди, которые вдохновляют вас двигаться вперед, мотивируют, а иногда и пинают в нужном направлении. Цените их. Их очень мало по нашей жизни.</p><p><em>Поставив лайк, вы не только вызываете у меня улыбку, но и ускоряете выход следующей статьи! Спасибо за ваши сердечки и за ваши подписки — мне приятно, что вы меня читаете.</em></p><p><em>Следующая статья:</em></p><p><a href="https://medium.com/@xanf/7-%D0%B3%D1%80%D0%B5%D1%85%D0%BE%D0%B2-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82%D0%B0-%D0%B0%D0%BB%D1%87%D0%BD%D0%BE%D1%81%D1%82%D1%8C-c5b352d51dd4">7 грехов программиста: Алчность</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ac514112cb2d" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[7 грехов программиста: Гнев]]></title>
            <link>https://medium.com/@xanf/7-%D0%B3%D1%80%D0%B5%D1%85%D0%BE%D0%B2-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82%D0%B0-%D0%B3%D0%BD%D0%B5%D0%B2-3bfa60d72de0?source=rss-8c69a7a174f3------2</link>
            <guid isPermaLink="false">https://medium.com/p/3bfa60d72de0</guid>
            <category><![CDATA[programming]]></category>
            <dc:creator><![CDATA[Illya Klymov]]></dc:creator>
            <pubDate>Thu, 04 Aug 2016 08:18:11 GMT</pubDate>
            <atom:updated>2016-08-05T11:10:00.786Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*6XBtZeqbYHzbCNYbvR9CDQ.jpeg" /><figcaption>Продолжаем изучать мозаики из Нотр-Дам-де-Фурвьер</figcaption></figure><p><em>Предыдущая статья:</em></p><p><a href="https://medium.com/russian/7-%D0%B3%D1%80%D0%B5%D1%85%D0%BE%D0%B2-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82%D0%B0-%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D1%82%D1%8C-330d3dfbc52a">7 грехов программиста: Зависть</a></p><p>Сегодня я хочу поговорить о гневе. Гнев — самый простой из грехов программиста и самый человеческий. Что я имею ввиду? Мы 8 (кого мы обманываем, какие 8) часов в день проводим за компьютером. Фактически “общаемся” с ним. Это общение не имеет почти ничего общего с общением между реальными людьми. Еще в <a href="http://hex.pp.ua/manifest-hakera.php">манифесте хакера</a> писали:</p><blockquote>Он делает все, что я хочу. Если он ошибается, то только потому, что я заставил его. Но не потому, что я ему не нравлюсь,или представляю угрозу для него,или он считает меня хитрой задницей,или не любит учить элементарным вещам.</blockquote><p>Как следствие — я знаю единицы программистов, которые испытывают злость к своему компьютеру. Зато люди нас часто раздражают. Эти жалкие простые смертные делают то, что наши любимые компьютеры не делают никогда:</p><ul><li>дают обещания и не выполняют их;</li><li>делают вещи, о которых они знают, что это “плохо кончится”, но все равно делают их;</li><li>открыто лгут в лицо;</li><li>ставят свои интересы превыше моих (эгоист — это человек, который любит себя больше чем меня)</li><li>могут повести себя в одной и той же ситуации совершенно по-разному.</li></ul><p>Моя знакомая психолог утверждает, что почти у каждого миддла и выше можно заметить проявление повышенной раздраженности и нетерпимости к людям. Фактически, поскольку компилятор-интерпретатор не прощает нам наши ошибки, мы точно так же учимся не прощать их окружающим.</p><p>К сожалению, окружающим глубоко до лампочки что мы им там не прощаем. Знаете, какая фраза раздражает больше всего меня?</p><blockquote>А что тут такого?</blockquote><p>Черт побери, я тебе только что изложил последствия принятого решения, убедился что ты их понимаешь. Пикач….Голос разума, я к тебе взываю. Но нет, “вам ответит первый освободившийся голос разума”.</p><p>Фух. Отпустило. Я всех люблю, все котики, давайте двигаться к реальным сценариям из жизни IT и что с этим делать</p><h4>Ты начальник, я дурак</h4><p>Классический пример гнева в IT. Добавьте бонусные очки к вашей ярости, если:</p><ul><li>ваш начальник не является программистом и предъявляет претензии по вопросам, в которых не разбирается (+50 ярости)</li><li>вы всю ночь долбались над решением проблемы, героически ее решили, но вас вместо этого “кошмарят” либо за “почему так долго”, либо за невыполненные другие мелочи (+40 ярости)</li><li>вы получаете “на орехи”, за проблему, о которой вы предупреждали (+50 ярости), возможно письменно (+20 ярости), возможно неоднократно (+30 ярости)</li><li>ваш начальник сам вызвал проблему, и теперь ваша задача ее решать (+100 ярости)</li></ul><p>Прежде всего, вспомни молитву о спокойствии:</p><blockquote>God, grant me the serenity to accept the things I cannot change,<br>The courage to change the things I can,<br>And wisdom to know the difference.</blockquote><p>Есть вещи, с которыми вы вроде бы ничего не можете сделать. Первое с чем стоит смириться — с тем начальником, что есть у Вас. Возможно, ваша гордыня мешает реально разглядеть его таланты, возможно — он не осознает свои недостатки из-за <a href="https://medium.com/p/330d3dfbc52a">эффекта Даннинга-Крюгера</a>. А возможно ему просто плевать. Гнев провоцирует конфликт в команде, а конфликты бесполезны.</p><p>Тем не менее, лекарство от этой беды есть. Достаточно простое и эффективное, срабатывавшее в моей жизни бесчисленное число раз и упомянутое прям в Википедии:</p><blockquote>После обучения у них появляется способность осознать уровень своей прежней некомпетентности, даже если их истинная компетентность после обучения практически не меняется.</blockquote><p>Добро пожаловать в менторы для своего начальника! Даже если ни один из вас не признает этого — именно систематическое, регулярное объяснение причин, предпосылок и последствий поможет вашему начальнику прислушиваться к вашим словам. Большинство из нас работает в бизнесе, и с большой вероятностью ваш начальник — неглупый человек, т.к. ставить кого-то куда-то “по-блату” — слишком большие и неприятные финансовые риски.</p><p>Конечно же ваш начальник не такой. Он туп, необучаем и упёрт. Но прежде чем убедиться в этом — попробуйте ещё раз. Пожалуйста.</p><h4>Я начальник, ты дурак</h4><p>Поздравляю, теперь вы начальник. Теперь вы в глазах подчиненных тупы, необучаемы и упёрты. В рамках взаимности ваши подчиненные:</p><ul><li>систематически “факапят” дедлайны, объясняя это проблемами;</li><li>ходят по одним и тем же граблям, отказываясь учиться на своих ошибках;</li><li>не любят давать оценки задач, чтобы потом не отвечать за них (отказываются брать ответственность)</li></ul><p>Список можно продолжать. Любой программист, в чьем подчинении оказались люди может расширять и расширять его — <a href="https://ru.wikipedia.org/wiki/%D0%A4%D1%83%D0%BD%D0%B4%D0%B0%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B0_%D0%B0%D1%82%D1%80%D0%B8%D0%B1%D1%83%D1%86%D0%B8%D0%B8">фундаментальная ошибка атрибуции</a> как она есть.</p><p>Так вот, запомните. Вам, как руководящей позиции, никогда, никогда, <strong>НИКОГДА </strong>не позволено проявлять свой гнев. Как человек, окончивший школу с этическим уклоном, я тактично умолчу куда следует вам его засунуть. Проявление гнева — это проявление слабости. Как только вы его показываете — вы даете мощный рычаг по манипулированию Вами. Более того, давайте рассмотрим возможные варианты развития конфликта:</p><ul><li>ваш подчиненный сам вполне себе конфликтный человек. Результат — скандал, перья во все стороны, и, как следствие — снижение трудоспособности подчиненного;</li><li>ваш подчиненный — неконфликтный, “нормальный” человек. Результат — испорченное не только настроение у подчиненного, но и его отношение к вам, и, как следствие — снижение трудоспособности;</li><li>ваш подчиненный — человек неуверенный в себе и ранимый. Результат — слёзы и… вы знаете что делать с плачущей подчиненной? а если это парень?</li></ul><p>Из этого правила есть одно исключение — есть такая категория людей, которая в принципе все претензии высказывает только в процессе конфликта. Поругались — помирились — работаем. Не путайте, это никакого отношения к гневу не имеет, но пока вы достаточно не познакомились с людьми — старайтесь не применять этот вариант, если ошибетесь — будет очень и очень сложно.</p><h4>Я дурак и ты дурак</h4><p>Гнев на коллег, с которыми вы находитесь на одном уровне иерархической лестницы может быть вызван разными причинами. Но, как показывает мой опыт, самая частая причина — бытовая. Совместное сосуществование на одной территории неизбежно вызывает раздражение, которое перерастает в гнев. Кто-то громко смеется, кто-то любит отвлекать от работы чтением боянистых цитат с “баша”, кто-то регулярно забывает мыть свою чашку, а кто-то помыл чужую. Здесь можно перечислить миллиарды причин, и каждая из них будет уникальна, неповторима и оправдана.</p><p>Так вот, господа, <strong>общайтесь!. </strong>Если Вас что-то не устраивает — не терпите это молча (это глупо) и не обсуждайте за спинами на кухне (это неэтично). Наберитесь смелости подойти к человеку и сказать ему в лицо, что вас огорчает и не устраивает. Помните, навык нахождения компромиссов — фундаментальный в нашей жизни. Они везде — в отношениях парня и девушки, в выборе места работы, да даже в выборе “сделать быстро — сделать качественно”. Развивайте этот навык и учитесь говорить — слишком много программистов не умеют это делать.</p><p>Я повторюсь, эта мысль уже мелькала в предыдущих статьях — но на работе вы прежде всего профессионал. Вы не человек, вы функция (это не означает, что вы не должны относиться к себе и к другим по-человечески, речь лишь о приоритетах). И хороший профессионал способен отодвинуть гнев в сторону, если он мешает достижению результатов для него и для компании, на которую он работает.</p><h4>Гнев на себя</h4><p>По просьбе моей знакомой (назовем ее Лерой), вставляю этот раздел. Честно скажу, пишу с чужих слов, потому что я могу злиться на себя, но это “хорошая злость”, которая заставляет меня сцепив зубы двигаться дальше. Так вот, оказывается, некоторые люди умеют именно гневаться на себя, потому что не сдали проект до дедлайна вовремя, не могут поговорить с начальником о повышении зарплаты и т.д. Слово Лере:</p><blockquote>Примите себя! Вы не обязаны быть идеальны и вы не обязаны не допускать ошибок. Испытывая гнев, вы лишь усугубляете ситуацию — просто примите ее такой, какая она есть и двигайтесь дальше</blockquote><p>Хотите знать мое мнение об этом? Bullshit. Да, мы все допускаем ошибки, но “принять” себя — это кратчайший путь к “я такой, любите меня таким как я есть”. Гнев парализует, а я искренне верю, что каждый из нас должен быть человеком действия. Просто возьмите уже и добейте этот чертов дедлайн, сходите к начальнику и т.д. — когда причиной гнева являетесь вы сами — приложите 150% усилий, чтобы устранить причину гнева, а не последствия.</p><h4>Что со всем этим делать?</h4><p>Первый шаг к контролю над гневом — логика. Мы программисты, и с этим не должно быть проблем. Т.е. перед тем, как запустить какую-нибудь эмоциональную реакцию (это не только с гневом работает) — задайте себе вопрос “а чем я собственно руководствуюсь?”. Эти простые слова моментально заставляют мозг работать. Мне сложно представить количество раз, когда это спасало меня от того, чтобы сорваться на подчиненного (да, я горжусь, что за все годы работы ни разу не накричал на сотрудника). Если и это не помогают, воспользуйтесь мантрой, которую я подслушал у одного из своих наставников — наберите полную грудь воздуха, вздохните и произнесите:</p><blockquote>“Это всего лишь люди”</blockquote><p>Помните, что гнев — это дорога если не с односторонним движением, то уж точно с разным количеством полос “туда” и “обратно”. Дав выход один раз своему гневу, каждый последующий раз будет все проще и проще. Йоды старого слова помните:</p><blockquote>Страх доступ открывает к Тёмной стороне. Страх рождает гнев, гнев рождает ненависть, ненависть — залог страданий.</blockquote><p>Гнев — это реакция вашего (или по крайней мере моего) организма на утрату контроля над ситуацией. А утратить контроль — страшно, посеять ненависть легко, помириться и забыть — трудно. И ради бога, если для вас характерны вспышки гнева или любого другой нелицеприятной эмоции, прекратите оправдывать себя словами “Да, я такой, я ничего не могу с этим поделать”. Способность развиваться, расти над собой и есть то, что определяет для меня человека разумного.</p><p>Будьте разумными и двигайтесь вперед. Let the source be with you.</p><p>Следующая статья:</p><p><a href="https://medium.com/@xanf/7-%D0%B3%D1%80%D0%B5%D1%85%D0%BE%D0%B2-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82%D0%B0-%D1%83%D0%BD%D1%8B%D0%BD%D0%B8%D0%B5-ac514112cb2d">7 грехов программиста: Уныние</a></p><p><em>Как всегда, ваши “сердечки” вдохновляют меня писать дальше. Спасибо всем, кто их ставит и делиться статьей с вашими подписчиками — я стараюсь писать регулярно именно для вас.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=3bfa60d72de0" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[7 грехов программиста: Зависть]]></title>
            <link>https://medium.com/@xanf/7-%D0%B3%D1%80%D0%B5%D1%85%D0%BE%D0%B2-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82%D0%B0-%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D1%82%D1%8C-330d3dfbc52a?source=rss-8c69a7a174f3------2</link>
            <guid isPermaLink="false">https://medium.com/p/330d3dfbc52a</guid>
            <dc:creator><![CDATA[Illya Klymov]]></dc:creator>
            <pubDate>Wed, 03 Aug 2016 08:53:47 GMT</pubDate>
            <atom:updated>2016-08-04T08:19:17.426Z</atom:updated>
            <cc:license>https://creativecommons.org/licenses/by-sa/4.0/</cc:license>
            <content:encoded><![CDATA[<p><em>Предыдущая статья:</em></p><p><a href="https://medium.com/russian/7-%D0%B3%D1%80%D0%B5%D1%85%D0%BE%D0%B2-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82%D0%B0-%D0%B3%D0%BE%D1%80%D0%B4%D1%8B%D0%BD%D1%8F-fffd58553f8f">7 грехов программиста: Гордыня</a></p><p>Огромное спасибо за ваши отклики на предыдущую статью. Я удивлен, что многих она зацепила — и, если на медиуме буквально пара комментариев, отклик в личные сообщения в социальных сетях и на почту я разгребаю до сих пор.</p><p>Честно говоря, когда я начинал писать этот цикл — не был уверен, что тема кого-то заинтересует. В конце-концов, никто не любит говорить о своих недостатках, а тем более признавать их. Сам контент уже вызрел в голове — первая статья далась легко, будем надеяться, что и дальше пойдет так же непринужденно. Вообще, поймал себя на мысли, что тешу свою внутреннюю гордыню вашими лайками — именно они стимулируют меня не откладывать “писательство” на завтра, не просто делиться мыслями, а как-то структурировать их, работать над тем, чтобы вам было приятно проводить время за чтением. Еще раз спасибо, что Вы такие замечательные. Мы начинаем.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*9Vh5mNYqeKN5ImGXAOX_QA.jpeg" /><figcaption>Зависть. Эти фрески прекрасны</figcaption></figure><h3>Зависть чёрная и белая</h3><h4>Расставляем точки над i</h4><p>Давайте начнём с определений. Для меня, зависть — это чувство, которое вы испытываете когда у кого-то <strong>есть</strong> что-то, чего у вас <strong>нет</strong>, но очень <strong>хочется</strong>. Я намеренно не стал копировать определение из Википедии и опустился до уровня второго класса церковно-приходской школы. Конечно же, желаемое “что-то” может быть как материальным (новый автомобиль), так и нематериальным (грация, умение общаться и т.п.). При этом мы вполне можем испытывать зависть к близким к нам людям, и называем ее “белой”. В чем же различие? Основное различие “черной” и “белой” зависти — что вы чувствуете к человеку. Если вы завидуете и от этого испытываете неприязнь — зависть будем считать “черной”, если нет — то белой. Поскольку мы говорим о грехах программиста — здесь и далее, будем предполагать, что речь идет о чёрной зависти</p><h4>Зависть в найме</h4><p>Один из самых распространенных видов зависти в IT, который я встречал — на собеседование к человеку, приходит потенциальный сотрудник и вызывает зависть по той или иной причине. Причины могут быть самыми разными, перечислю те, с которыми сталкивался я, слушая разговоры на кухне в аутсорсинговой компании:</p><ul><li>“ботан”: интервьювер дал задачу, над решением которой бился 2 недели и которую собеседуемый решил за 15 минут;</li><li>“мымра”: после проведения собеседования девочка долго обсуждала с коллегами, сколько времени надо проводить в спортзале, чтобы иметь такую осиную талию, и что невозможно быть хорошим программистом, если есть время на подобное;</li><li>“скотина”: потенциальный сотрудник пришел на собеседование, пока ждал начала — познакомился с девушкой-QA, взял у нее телефон и позвал на ужин. По иронии судьбы, его собеседовал мой коллега, который уже 2 месяца всячески добивался благосклонности этой девушки;</li><li>“спорщик”: потенциальный сотрудник доказал человеку, который его собеседует, что тот не прав. И сделал это более чем один раз за собеседование (ок, ок, это был я, меня тогда не взяли, даже не знаю почему);</li><li>“призрак прошлого”: потенциальный сотрудник пришел с места работы, где работал интервьювер. На вопрос о своих достижениях он рассказал про то, как за 3 месяца переписал с нуля критически важную для бизнеса систему. Интервьювер оказался автором системы</li></ul><p>Конечно, не во всех случаях собеседуемый был прав. Кадрить девочек, прийдя на собеседование — явно не лучшая идея, стоит все-таки разделять рабочее и личное. Но все эти примеры являются отличной иллюстрацией, как зависть становится практически непреодолимой преградой на пути к найму.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*62ZHE_aolNtgko2TST54XQ.png" /><figcaption>Любую статью можно проиллюстрировать Дилбертом</figcaption></figure><p>Конечно же эти примеры утрированы. Но именно зависть зачастую становится препятствием к найму реально крутых ребят. Никто не хочет внутренне признавать, что является слабее — да и нанимать кого-то сильнее себя опасно для своей теплой уютной должности.</p><p>Как следствие, проигрывают все. И это — отличительная черта почти всех проявлений зависти.</p><h4>Зависть в коммьюнити</h4><p>It’s all about sharing. Любое IT-сообщество строится прежде всего на бесплатном обмене знаниями и опытом. Я всегда верил, что гуру, которые тратят время на нас смертных, не должны вызывать ничего, кроме благоговения и желания учиться. Но к сожалению это не так. Огромное количество инициатив от столпов сообщества получают такие тонны негативного фидбека, что людям становится тяжело. Раньше я всегда думал, что это от отсутствия такта и безнаказанности в в интернете. Привычка кидаться фекалиями все еще присутствует где-то глубоко в нашем генетическом коде и периодически пытается выплыть наружу. А потом я “принимал участие” в обсуждении с коллегами образовательной инициативы моего знакомого, и все обсуждение сводилось к перечислению аргументов “почему у меня нет времени это делать”. Это — зависть банальная.</p><p>Зачем я включил этот раздел? Потому что я видел огромное количество людей, которые перестали генерировать контент исключительно из-за негатива в свою сторону. Мне проще — 80% времени я уверен в том, что я хорош, а теперь представьте реакцию человека, превозмогшего свою скромность и записавшего видео, допустим по Redux, и получающего комментарии вида “ужасный голос”, критику произношения терминов и т.д. Чаще всего человек просто опять прячется в свою раковину. Вот мое послание этим людям:</p><blockquote>Haters gonna hate. Производя контент вы переходите из общества потребления в общество созидания. Не останавливайтесь. Научиться делать качественный контент можно только делая контент.</blockquote><p>95% негативного фидбека вы будете получать от 5% коммьюнити. Все остальные будут вести себя как в анекдоте:</p><blockquote>Мальчик до 7-ми лет молчал. Ну вообще не слова… Всех докторов, всех профессоров обошли — руками разводят, ничего не понимают… <br>Однажды, собирается семья за воскресным столом, кушают…<br>Вдруг мальчик, отчётливо и громко: — Мама, дай, пожалуйста, соль!<br>Все замерли.Шок.Мама дрожащей рукой подаёт солонку…<br>- А…а чего ж ты молчал то, раньше то?<br>- Так раньше претензий не было!</blockquote><p>Часть коммьюнити неизбежно будет токсично из-за своей зависти. Просто расставайтесь с такими людьми или (если это что-то открытое) — дистанцируйтесь от них. Эмоциональное выгорание от того, что вы получаете тонны негатива — более чем реальность, и выбираться из него Вам не понравится (поверьте моему опыту). Берегите себя и свой труд.</p><h4>Зарплатная зависть</h4><p>Вынесу отдельным пунктом. У нас в профессии принято всячески скрывать свою зарплату и своих коллег. Но шило в мешке не утаишь, рано или поздно кто-то узнает зарплату своих коллег. И тут приходит она.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/960/0*sQRl9gPvjB2A8iLC.jpg" /><figcaption>Зависть зарплатная. Она же “жаба”</figcaption></figure><p>Звучит она всегда одинаково. “Вася получает Х денег, а я лучше Васи а получаю Y &lt; X”. Для меня подобные фразы всегда были сигналом для увольнения (или как минимум не продвижения сотрудника). Почему так? Потому что правильный вопрос должен звучать так: “Что мне делать, чтобы зарабатывать больше денег?”. Причин, почему Вася получает больше может быть много — некоторые объективные, некоторые нет. Зарплата — есть <strong>ваша </strong>договоренность с <strong>вашим </strong>работодателем о компенсации результатов <strong>вашего</strong> труда. Причем тут Вася? Если вы считаете, что вы такой хороший сотрудник — вам не составит труда привести аргументы, почему вам должны платить больше. Причем тут Вася? (возможно, Вася нашел аргументы, почему ему должны платить больше).</p><p>Существует и другой сценарий развития событий: когда вы молча проглатываете информацию о зарплате Васи. И это начинает есть вас изнутри. Вы начинаете следить за Васей, находить все недочёты в его работе и всячески изводить его. Не надо так. Самое плохое что можно сделать — держать конфликт в себе. Еще раз подчеркну — Вася тут ни при чем.</p><h4>Мой опыт</h4><p>Зависть — двоякое чувство. Используйте ее как стимулятор для достижения новых целей, но не позволяйте ей захватывать вас целиком. Для меня “черная зависть” к человеку — признак слабости завистника. Почему? В психологии различают лишь две метастратегии поведения человека — стратегия “бей” и стратегия “беги”. И если зависть не провоцирует развитие — это однозначно стратегия “беги”. В то время как эта стратегия жизненно важна для выживания (применять стратегию “бей”, будучи окруженным пачкой гопников в темной подворотне — очень, очень глупая идея), развитие при применении этой стратегии невозможно.</p><p>Для себя я обнаружил очень простой способ борьбы с собственной завистью — я переступаю через свою гордыню и начинаю общаться с этим человеком, для того чтобы выяснить — каким образом он стал таким крутым, что вызывает у меня зависть. Черная зависть неконструктивна — с людьми, вызывающими у меня неприязнь, я стараюсь не общаться, а значит мне приходится любить большинство тех, кто вызывает у меня зависть. А дальше, в процессе общения, решаю для себя — или начинаю делать то же самое, чтоб достичь высот, или понимаю, что отношение “результат — затраченные усилия” того не стоят. Есть куча людей, которые меня завораживают, но вряд ли я научусь всему тому, что они умеют — время ограниченный ресурс и его надо беречь.</p><p>Вы же всегда помните, мы — профессионалы. А профессионал должен уметь всегда переступать через личные чувства (а зависть — наверное одно из самых личных чувств) и оставаться профессионалом, чтобы не случилось.</p><p>Помогите мне вызвать зависть у моих коллег-писателей по цеху и потешьте мою гордыню — поставьте лайк, если Вам понравилось. И совсем скоро мы поговорим о гневе :)</p><p><em>Следующая статья:</em></p><p><a href="https://medium.com/@xanf/7-%D0%B3%D1%80%D0%B5%D1%85%D0%BE%D0%B2-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82%D0%B0-%D0%B3%D0%BD%D0%B5%D0%B2-3bfa60d72de0">7 грехов программиста: Гнев</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=330d3dfbc52a" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[7 грехов программиста: Гордыня]]></title>
            <link>https://medium.com/@xanf/7-%D0%B3%D1%80%D0%B5%D1%85%D0%BE%D0%B2-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82%D0%B0-%D0%B3%D0%BE%D1%80%D0%B4%D1%8B%D0%BD%D1%8F-fffd58553f8f?source=rss-8c69a7a174f3------2</link>
            <guid isPermaLink="false">https://medium.com/p/fffd58553f8f</guid>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[education]]></category>
            <dc:creator><![CDATA[Illya Klymov]]></dc:creator>
            <pubDate>Tue, 02 Aug 2016 08:58:06 GMT</pubDate>
            <atom:updated>2016-08-03T08:55:46.484Z</atom:updated>
            <cc:license>https://creativecommons.org/licenses/by-sa/4.0/</cc:license>
            <content:encoded><![CDATA[<h4>Пролог</h4><p>Эта серия статей посвящена некоторым из моих учеников. Одна из “печалек” любого преподавателя — когда ученики не достигают в профессии высот, которых могли бы и просто обязаны (в глазах ментора) были достичь. Причины могут быть самыми, самыми разными — не все способны пройти огонь, воду и медные трубы — но это лишь оправдание, которое слабо помогает. И гораздо сложнее бороться не с разовыми трудностями, а с нашими тайными желаниями и слабостями, которые, как ржавчина потихоньку разъедают корпус корабля в плавании по водам профессии.</p><p>Как и любая большая дорога, профессиональный путь извилист и коварен. На нем ждут множественные искушения, но моя вера в том, что каждый должен становиться профессионалом — мир точно был бы лучшим местом, если бы все следовали этому правилу.</p><p>Я попытаюсь проанализировать подводные и надводные камни нашей профессии и, возможно, вы найдете в себе частичку каждого из этих грехов. Что ж, кто безгрешен — пусть первый бросит в меня камень. Не буду лукавить, часть из того что вы прочитаете — мой опыт, за который мне стыдно и именно поэтому хочется, чтоб его избежали те, кто идет по моим следам.</p><p>Начнем.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*EyCQf93SLeuGr-wJkF4kNg.jpeg" /><figcaption>Medium образовательный: Гордыня. Мозаика алтарной части базилики Нотр-Дам-де-Фурвьер</figcaption></figure><h3>Гордыня</h3><p>Гордыня проникает в жизнь каждого программиста незаметно. Она многолика и сладка. Она усыпляет сладким голосом сирен, заставляя нас закрывать глаза и все глубже погружаться в мысли о центре мироздания — о нас самих.</p><p>Все есть яд и всё есть лекарство. Гордыня полезна, меня она заставляет периодически, сцепив зубы, делать что-то, на что мой внутренний прокрастинатор давно забил, я же хочу поговорить о случаях, когда гордыня мешает.</p><h4>Я все могу (сам)</h4><p>Мы приходим в программирование слепыми и беспомощными. Наш первый “Hello World” не компилируется, сыпет кучей ошибок и делает что угодно, кроме того, что мы задумали. Проходит время. Мы учимся. Мы учимся писать более аккуратный код, наши программы, как глина в руках умелого мастера, — становятся все более и более податливыми и послушными. Решаемые задачи всё сложнее и интереснее, и мы уже в полном праве начинать гордиться своими успехами. Как и положено существам с глубоко аналитическим складом ума — мы видим общее в наших проектах и пытаемся это общее унифицировать. Так появляются велосипеды. Каждый начинающий PHP-программист писал собственную CMS или “фреймворк” (я — нет, был слишком ленив для этого). Эта CMS разрасталась, становилась все больше-больше-больше, несколько раз переписывалась с нуля, превращаясь из пары файликов в огромный луна-парк с покером и леди. Мы рекомендуем ее друзьям (которые говорят “круто”, а на самом деле даже не распаковывают zip-архив — в те смутные времена о git и github никто не слышал). Мы верим, что используя именно наше решение задачи можно решать быстрее, эффективнее и приятнее. Так проявляется гордыня.</p><blockquote>Он учился на своих ошибках, но его опередили те, кто учился по книжкам (автор неизвестен)</blockquote><p>Создать кардинально новый, успешный продукт могут единицы (я себя к ним не отношу). Выбирая путь “самостоятельного развития”, вы обрекаете себя на повторение пути, уже пройденного другими. Полезно ли это для саморазвития — да, несомненно. Но мир IT развивается по канонам Льюиса Кэрролла: нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее. Занимаясь чтением чужого кода (а еще лучше — наблюдая за развитием проекта) вы получаете квинтэссенцию чужих мыслей. Если при этом человек еще и делится своими мыслями, почему так сделано (допустим в Github Issues — это вообще феноменально). В JS community превосходными примерами таких людей для меня являются <a href="https://medium.com/u/a3a8af6addc1">Dan Abramov</a> (особенно его <a href="https://twitter.com/dan_abramov">твиттер</a>) и <a href="https://medium.com/u/3ba9db42812d">André Staltz</a> (<a href="https://twitter.com/andrestaltz">твиттер</a>) — их рассуждения для меня становятся превосходной пищей для ума.</p><p><em>N.B.: за это я, к примеру, люблю коллективные аккаунты, типа </em><a href="http://twitter.com/jsunderhood"><em>@jsunderhood</em></a><em> — вам подносят на блюдечке с голубой каемочкой каждый раз человека со своим мнением, своими историями и своим опытом. Если этот человек еще и неплохой рассказчик (рассказчик в формате 140 символов — o tempora, o mores!) — то вообще идеально. И если вы не согласны с тем, что вам рассказывают — помните, у некоторых людей настолько узкий кругозор, что его называют точкой зрения.</em></p><p>А еще любовь к написанию всего самостоятельно очень любит пожирать время. Я давно пришел к выводу, что лучший код — это написанный не мной код и (признаюсь, иногда с внутренним отвращением) адаптирую некоторые вещи, убирая свою реализацию потоков, и вставляя RxJS, выкидывая шаблонизатор, написанный мной 6 лет назад и вставляя handlebars — все более и более концентрируясь на новых проблемах, которые не решаются стандартными библиотеками.</p><p>Бритва Оккама — лучшее оружие против такого проявления гордыни. Нещадно режьте свои велосипеды и будьте аккуратны создавая что-то новое, для решения уже существующей задачи. Возможно, каждый из нас грезит стать автором очередного Redux или Leaflet (<a href="http://agafonkin.com/">Владимир</a> для меня всегда был примером “гуру” коммьюнити, сделавшего восхитительный проект путем титанического труда), но чаще всего конец немного предсказуем:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/0*DlMkuoa-r6hZDOGA.png" /><figcaption>(с) <a href="http://xkcd.com/927/">http://xkcd.com/927/</a></figcaption></figure><p>Я не хочу даже вспоминать, как любовь к велосипедам ужасна для бизнеса — в один прекрасный момент вы пойдете дальше, а кто-то останется сопровождать ваше уникальное и неповторимое решение. И этот кто-то может знать где вы живете. Оно вам надо?</p><h4>Изоляция</h4><p>У меня есть коллега, которого я считаю очень крутым специалистом. С ним всегда можно обсудить новейшие веяния в мире JS, поработать над решением сложной задачи или “как исправить вот эту фигню вот здесь не переделывая половину проекта”. У него превосходное чутье на потребности бизнеса между “сделать правильно — сделать быстро”. Другими словами — профессионал, рядом с которым приятно работать и находиться.</p><p>Этот человек не ходит на наши местные конференции и встречи, мотивируя тем, что ничего нового и толкового там не расскажут — все можно и так прочитать в интернете — и, как следствие, всю конференцию можно сократить до одного gist’а с 10 ссылками — и поэтому все это просто пустая трата времени. Формально, он прав. В нашем провинциальном Харькове не бывает докладчиков уровня React Europe или даже конференций проводимых Яндексом, а темы зачастую совпадают с хайпом, вокруг нас. Если на встрече мне интересен один доклад — это большой успех — чаще всего выношу одну-две интересные мысли “на подумать” и пару ключевых слов на погуглить. А вот в кулуарах начинается магия.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*YDCempmodzT574UB.jpg" /><figcaption>FDConf#15, Минск, Беларусь. <a href="https://medium.com/u/bcc7cdd477fe">Vladimir Agafonkin</a> и я в кулуарах :)</figcaption></figure><p>Проявив минимум коммуникативных навыков можно и нужно вступить в дискуссию или обсуждение любой темы, которая Вас заинтересовала. Лично меня пару раз удивляли своими решениями люди, которых моя внутренняя боги…гордыня мысленно наделяет ярлыком “да он же даже не сеньйор, что он мне может рассказать”. А пару раз я ощущал себя совершенно полным идиотом, признавая что все во что я верил — неправда или не совсем правда. Можно красиво назвать это Ньютоном, увидевшим подтверждение теории относительности, но я предпочитаю называть это выщипыванием перьев у своего внутреннего павлина.</p><p>Да, возможно вы на конференции будете “самым умным”. Поделитесь своими знаниями с менее опытными коллегами, опуститесь до их уровня и попытайтесь объяснить, что они не правы. Меня всегда поражало молчание людей, которые точно не являются интровертами, и которые приходят домой после встречи и ведут себя так:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/300/1*GybQefvqQX3zn5FWoj7HJw.png" /><figcaption>(c) http://xkcd.com/386</figcaption></figure><p>Подобная изоляция от сообщества, которое мы имеем и попытка приобщиться вместо этого к большим умным людям, которые “где-то” там портят людей. Я видел, как потом подобные личности начинают раздражаться (или огорчаться, в зависимости от характера) от “тупости людей вокруг” и отправляются в <a href="https://lleo.me/dnevnik/2011/03/06.html">долгий поход за лучшей жизнью</a></p><h4>Я эксперт</h4><p>Этой разновидностью гордыни любят болеть тим лиды и прочие люди, которые в силу тех или иных причин обрели полноту власти. Фактически, у них появилось новое, почти безотказно работающее заклинание “Я так сказал”. С его помощью можно эффективно защищаться от критики, даже не задумываясь конструктивна она или нет. Каждая претензия воспринимается как посягательство на полноту власти и попросту игнорируется.</p><p>Так вот, господа “эксперты”. Запомните простую истину — профессионал отличается от новичка тем, что терпел неудачу большее число раз, чем новичок пытался. Это значит, что каждая ваша ошибка стоит и для вас, и для вашей компании, и “в принципе” — гораздо больше чем ошибка вот того “джуниора с шилом в заднице”, который уже вторую неделю пытается достучаться до вас с утверждением “Мне кажется у нас проблемы в архитектуре”. Я обожаю смотреть на Ваши лица, когда вот этот вот джуниор оказывается прав, и как вы юлите, только чтобы не признавать его правоту.</p><p>Вам показалось, что предыдущий абзац был немного резок? Вам не показалось :) Считайте это моей детской травмой, ведь этим джуниором был именно я. И тогда мне было печально осознавать, что убытки, которые понесла компания превышали тогда пару моих годовых доходов. Зато это стало для меня уроком и я всегда, перед тем как сказать подчиненным “делайте так, потому что я сказал” прошу свою гордыню подождать в сторонке и пытаюсь реально, безэмоционально взвесить те аргументы, которые они излагают</p><p><em>N.B.: Это не означает, что никогда нельзя прибегать к позиции “sudo делай так как я сказал”. Иногда коллега, ставящий под сомнение Ваши идеи, просто не обладает той информацией, которой обладаете Вы, иногда Вы просто не можете с ним ею поделиться — да и вообще, я могу придумать тысячи вариантов, когда приходится заставлять. Просто помните, что если ваши исходные предпосылки неверны — вы можете завести не только себя, но и свою команду в страшный темный лес. Вы готовы за это отвечать?</em></p><p>Второе проявление “Я эксперт” в компании — это незаменимость. Когда в силу ряда причин Вас действительно некем заменить — это расслабляет. Я сам пару раз становился более наглым и вел себя вот так:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*5pA-3cQOIqhGrShFtiAGQg.png" /></figure><p>Вряд ли это прочитает кто-то из моих предыдущих работодателей, но мне правда стыдно за те моменты, когда я так себя вел. Просто всегда помните — времена меняются, и если Вы будете вести себя так, как вел себя я — вас выкинут вон сразу же, как вы перестанете быть превосходным, незаменимым и с “уникальной экспертизой”.</p><h4>Резюме</h4><p>Гордыня — один их самых распространенных грехов программиста. Мы все любим считать себя уникальными, с пиететом относиться к своим достижениям и не воспринимать как “ачивки” успехи коллег. Но никогда не забывайте, что павлиний хвост при всей своей красоте закрывает обзор — и вы никогда не узнаете, что скрывается за ним: возможности которые вы упускаете, новые знакомства в личной или профессиональной сфере или даже коварного подчиненного, пытающегося вас подсидеть. Поэтому раз мы уже начали с библейских мотивов, давайте ими и закончим — любите себя, но не забывайте любить и ближнего своего.</p><p><em>Следующая статья</em></p><p><a href="https://medium.com/russian/7-%D0%B3%D1%80%D0%B5%D1%85%D0%BE%D0%B2-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82%D0%B0-%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D1%82%D1%8C-330d3dfbc52a">7 грехов программиста: Зависть</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=fffd58553f8f" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Как учить людей JS: Часть 1. Заметки на полях]]></title>
            <link>https://medium.com/@xanf/%D0%BA%D0%B0%D0%BA-%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%BB%D1%8E%D0%B4%D0%B5%D0%B9-js-%D1%87%D0%B0%D1%81%D1%82%D1%8C-1-%D0%B7%D0%B0%D0%BC%D0%B5%D1%82%D0%BA%D0%B8-%D0%BD%D0%B0-%D0%BF%D0%BE%D0%BB%D1%8F%D1%85-8c94eb35cebb?source=rss-8c69a7a174f3------2</link>
            <guid isPermaLink="false">https://medium.com/p/8c94eb35cebb</guid>
            <dc:creator><![CDATA[Illya Klymov]]></dc:creator>
            <pubDate>Mon, 01 Aug 2016 06:33:26 GMT</pubDate>
            <atom:updated>2016-08-01T06:33:26.568Z</atom:updated>
            <content:encoded><![CDATA[<p>Когда я неосмотрительно давал в <a href="http://twitter.com/jsunderhood">@jsunderhood</a> обещание рассказать о моем видении обучения JavaScript — я был искренне уверен, что справлюсь в рамках одной, пусть даже большой статьи. Однако попытка систематизировать свои разрозненные заметки вылилась к тому, что я понимаю, что еще даже и близко не приблизился к созданию единой теории “всего” в контексте обучения.</p><p>Эта статья — результат промежуточной победы внутреннего философа над перфекционистом — открывает небольшую серию статей о моем видении преподавания.</p><h4>Disclaimer</h4><p>Я никогда не учился в педагогическом ВУЗе (впрочем в рамках моего университетского образования изучал педагогику и как магистр, и как аспирант (мне повезло — у меня ее велвосхитительный практикующий психолог)</p><p>За долгое время “обинтернетивания” моей грамматической сущности и “отвиттеривания” моего аватара, он изрядно растерял впитанную со школы любовь к правильно поставленным запятым, поэтому любые грамматические, стилистические и прочие правки к любому моему контенту только приветствуются.</p><p>Если Вы профессиональный преподаватель или преподаете 10+ лет — боюсь, мои изыскания будут для вас тривиальными и очевидными. Я с радостью выслушаю ваше мнение в комментариях, особенно если укажете на мои ошибки или на, что именно у Вас не работает.</p><p>Теперь, что касается JavaScript упомянутого в названии статьи. Да, я буду акцентировать внимание на некоторых реалиях, которые к сожалению специфичны для нашего любимого языка, по одной простой причине — именно этим я занимаюсь долгое время. И хотя общие методики и подходы будут универсальными, по всему циклу статей изюминками (а скорее изюмом) будут рассыпаны мысли об особенностях обучения этой конкретной теме.</p><h4>Цель</h4><p>Преподавание ради преподавания — сродни ментальной мастурбации. Еще хуже — когда преподаватель ставит перед собой (или перед ним ставят) задачу <em>“вычитать Х часов”</em>, а не выработать определенные навыки и знания. Я буду акцентировать большее внимание на выработку навыков — передача знаний осуществляется путем рассказа об этих знаниях, самостоятельной работы с материалами и упором на тот тип восприятия информации, который максимально комфортен студенту (нет, я не знаю как максимально эффективно доносить JavaScript кинестетикам).</p><p>Итак, я считаю что цель преподавания JavaScript как языка программирования в следующем:</p><ul><li>выработать понимание базовых принципов работы <strong>среды выполнения</strong> JavaScript (типы данных, event loop, низкоуровневая логика)</li><li>выработать навыки решения реальных задач на JavaScript на базе фундаментальных основ языка. На данный момент я выделяю всего три подобных основы: <em>асинхронность, событийная модель, функциональный подход</em></li><li>выработать понимание высокоуровневых взаимодействий кода (паттерны проектирования, модули и т.д.)</li></ul><p>Хочу обратить внимание, что первый пункт не является измеримым — тем не менее его отсутствие затрудняет дальнейшее развитие программиста</p><h4>Кто может преподавать?</h4><p>Преподавание — один из лучших, но один из тяжелейших путей улучшения собственных навыков. Распространенной считается ошибка, что преподавать можно только <strong>полностью </strong>разобравшись “в теме”. Это не так, и я вообще не верю, что можно в чем-то полностью и досконально разобраться.</p><ul><li>Не бойтесь признавать что чего-то не знаете. На начальном этапе вашей преподавательской жизни лучшим, что Вы можете сделать является фраза “у меня нет ответа на Ваш вопрос, но я обязательно разберусь и расскажу”. Хорошего преподавателя от “заб(и/ы)валы” отличает то, что он приходит и рассказывает с чем разобрался.</li><li>Не бойтесь совершать ошибки. Иногда я на лекции могу 10 минут искать идиотскую ошибку в только что написанном коде. Вы человек и ошибаться — это естественно. Учитесь признавать свои ошибки</li><li>Старайтесь избегать “идеально” заготовленных материалов для обучения. Лучше потратить время и написать код с нуля (при условии что это займет у вас 2–3 минуты), чем воспользоваться готовым куском. Когда вы пишите (и рассуждаете при этом вслух) студенты бессознательно запоминают ваши мысли. Если вы допустите ошибку в коде — то они же научатся искать эти ошибки, подсматривая как это делали Вы.</li><li>Не бойтесь признавать, что у кого-то что-то вышло лучше, чем у Вас. Вы не обязаны делать все самостоятельно. Стойте на плечах гигантов — не бойтесь в своих курсах использовать доступные в Интернете материалы (если тот же Илья Кантор рассказал о webpack’е гораздо лучше вас — воспользуйтесь этим. It’s all about sharing, но не забывайте указывать авторство и пиарить людей, которые делают крутой контент)</li></ul><h4>“Они ничего не понимают” или коварство аналогий</h4><p>Да, не понимают. Если вы попытаетесь объяснить зеленым джуниорам механизм работы промисов, вдаваясь в дебри языка (хотя казалось бы, чего тут сложного) — утонут даже самые умные. Ищите аналогии. Аналогии должны позволять вам проводить параллели между понятийным аппаратом области, в которой вы натаскиваете падаван и той, которая ему известна. Вы можете сколько угодно приводить аналогии про прыжок с парашютом, но если у студента не было подобного опыта — все будет мимо.</p><blockquote>Теория, это когда все понятно, но ничего не работает.</blockquote><p>Еще одна важная мысль — забавные аналогии лучше запоминаются. Ученики лучше запоминают какую-нибудь забавную историю про колонну танков, на башнях у которых нарисованы единици и нолики, чем такую же аналогию про ленту из телеграфного аппарата. Но помните, аналогия может быть <strong>забавной</strong>, но не <strong>абсурдной</strong>. Если вы в своей аналогии заставляете, к примеру голубя нырять под воду или бурить скважины — то подобным бредом вы только засоряете мозг слушателей, а не облегчаете понимание.</p><p>И еще одно, не совсем про аналогии, но про объяснения. Однажды у Артемия Лебедева спросили, почему он, вроде такой умный человек, а когда его просят дать определение чего-то он начинает со слова “когда”. На что Артемий глазом не моргнув ответил: “Хорошее объяснение — это когда все понятно”.</p><h4>Злейший враг ученика</h4><p>В жизни преподавателя JavaScript нет более злого и коварного “помощника”, чем Google и его приспешники — StackOverflow, W3Schools и прочее. Эти сервисы обещают начинающему джаваскриптеру решение всех проблем, и, как “двое из ларца”, готовы помочь с самой сложной проблемой. Но начинающий падаван (а скорее даже юнлинг) сталкивается с тем, что перед ним куча немодерированной информации разной степени устаревания.</p><blockquote>С количеством ужасного кода на JavaScript в интернете может поспорить, наверное, PHP, и то я не уверен, кто победит в этой битве слона с китом.</blockquote><p>И дело совсем не в потраченном времени. Выработка любого навыка, каким бы rocket science на первый взгляд он ни казался, осуществляется путем повторения цикла “смотрю — пишу”. (на самом деле цикл чуть сложнее и мы детально рассмотрим его в следующих статьях). Человек, который нашел уродливое решение задачи и воспользовался им — не просто тратит время зря. Он формирует у себя на задворках мозга зарубку о том что вот такая-то задача решается вот таким-то кодом. В дополнение к этому его вера в то, что почти любую проблему можно решить Гуглом крепнет и ширится. Наверняка все из нас встречались с программистами, которые вроде бы способны решать реальные задачи (до поры до времени), но их код представляет собой мешанину из разных стилей, парадигм, а иногда даже и отступов. Более того, они при попытке указать на это недоумённо и совершенно искренне говорят: “а что тут такого, я всегда так делал, всё же работает”. И искренне считают, что вы придираетесь.</p><h4>Практика и обратная связь</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*IBpmh9BnYUOfaVMP.jpg" /><figcaption>Автоматизированные тесты vs Ручная проверка</figcaption></figure><p>Не верьте студентам. Они кивают головами, что все понятно и они правда в это верят. Любую базу, на которую вы рассчитываете опираться в дальнейшем проверяйте минимум два раза в двух разных домашних заданиях — один раз “по горячим следам”, второй раз для закрепления материала (в среднем через две-три недели). Будьте готовы к тому, что вам прийдется повторять уже объясненное еще раз — наличие видеозаписей и прочих подобных штук сильно облегчит Ваши страдания.</p><p>Я не верю в <strong>автоматизированные </strong>тесты при проверке домашних заданий студентов на начинающем уровне обучения. Когда вам доверяют по-сути еще неоперившихся птенцов — ваша задача в максимально короткие сроки отучить их писать лажу. Лажа многолика. Она может притаиться в именовании переменных. Она может спрятаться за одной большой функцией, которая делает все. Она может прикинуться красивым трюком, который нравится студенту, но чреват реальными проблемами в будущем (Пример: одно из заданий на базовом курсе — операция flatten над массивом — превратить массив содержащий массивы произвольной вложенности в плоский массив — и в качестве входных данных используются числа и строки. Каждый год я вижу решение arr.toString().split(‘,’). За такой код надо бить по рукам как можно раньше, приучая людей логически мыслить, находить изъяны в своей логике и подбирать контрпримеры. Автоматизированные тесты эффективно скрывают за видимой успешностью проблемы студента с написанием поддерживаемого и управляемого кода</p><p>Я не верю в peer-review работ (когда одни студенты оценивают или хотя бы просматривают чужие работы). Если вы <strong>учите</strong> людей JavaScript — то у них в голове еще нет правильных и адекватных паттернов написания кода. Любые же ваши слова о том, как должно быть сделано задание, будут извращены до неузнаваемости — и не со зла,а просто в силу особенностей восприятия одних и тех же букв разными людьми.</p><h4>P.S.</h4><p>Если вы ощутили некую фрагментарность этой статьи — знайте, вам не показалось. Она писалась в разные временами и порой мне даже кажется что разным мной. Сейчас я занимаюсь тем, что собираю из Evernote, ЖЖ, пары блокнотов и одной тетради свои мысли в одну кучу и самым ценным делюсь с Вами. Я смотрю на некоторые из них, и понимаю, что сам с собой не согласен — боже, мне жалко моих студентов, которых я учил 10 лет назад. И я приятно удивлен, что из некоторых из них выросли действительно крутые специалисты.</p><p>Помните, что направление этой серии статей задаете Вы, поэтому я буду Вам благодарен, если вы поставите лайк — тогда я буду уверен, что тема интересна и стоит ее продолжать — и напишете в комментариях волнующие Вас вопросы — это поможет мне со следующими частями.</p><p>Учите и учитесь. Становитесь круче.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=8c94eb35cebb" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>