<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>@abaha91</title><author><name>@abaha91</name></author><id>https://teletype.in/atom/abaha91</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/abaha91?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@abaha91?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=abaha91"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/abaha91?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-05-13T20:57:37.567Z</updated><entry><id>abaha91:RNJfXoWkJ</id><link rel="alternate" type="text/html" href="https://teletype.in/@abaha91/RNJfXoWkJ?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=abaha91"></link><title>Media Frontend / Data Science</title><published>2021-03-24T19:09:07.169Z</published><updated>2021-06-07T19:05:32.564Z</updated><summary type="html">Статистика - telemetr.me | tgstat.ru
Условия: 
1.  Топ не менее 4 часов / 4 дня в ленте - 7500 рублей 
2. Топ не менее 4 часов / неделю в ленте - 8500 рублей

</summary><content type="html">
  &lt;h3&gt;&lt;strong&gt;Frontender&amp;#x27;s notes&lt;br /&gt;&lt;/strong&gt;&lt;/h3&gt;
  &lt;p&gt;&lt;strong&gt;Статистика - &lt;/strong&gt;&lt;a href=&quot;https://telemetr.me/@frontendnoteschannel&quot; target=&quot;_blank&quot;&gt;telemetr.me &lt;/a&gt;| &lt;a href=&quot;https://tgstat.ru/channel/@frontendnoteschannel&quot; target=&quot;_blank&quot;&gt;tgstat.ru&lt;/a&gt;&lt;strong&gt;&lt;br /&gt;Условия: &lt;br /&gt;1.  &lt;/strong&gt;Топ не менее &lt;strong&gt;4 часов / 4 дня в ленте &lt;/strong&gt;- &lt;strong&gt;7500&lt;/strong&gt; рублей &lt;br /&gt;&lt;strong&gt;2. &lt;/strong&gt;Топ не менее &lt;strong&gt;4 часов / неделю в ленте&lt;/strong&gt; - &lt;strong&gt;8500 &lt;/strong&gt;рублей&lt;/p&gt;
  &lt;h3&gt;&lt;strong&gt;Data Science [ru]&lt;/strong&gt;&lt;/h3&gt;
  &lt;p&gt;&lt;strong&gt;&lt;br /&gt;Статистика - &lt;/strong&gt;&lt;a href=&quot;https://telemetr.me/@devsp&quot; target=&quot;_blank&quot;&gt;telemetr.me&lt;/a&gt;&lt;strong&gt; &lt;br /&gt;Условия &lt;/strong&gt;- Топ не менее &lt;strong&gt;4 часов&lt;/strong&gt;, в ленте &lt;strong&gt;7&lt;/strong&gt; дней&lt;br /&gt;&lt;strong&gt;Стоимость&lt;/strong&gt; &lt;strong&gt; -&lt;/strong&gt; 2000 рублей&lt;/p&gt;
  &lt;p&gt;В рекламном посту &lt;strong&gt;не должно&lt;/strong&gt; быть нецензурной лексики.&lt;/p&gt;
  &lt;p&gt;&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Реквизиты:&lt;/strong&gt;&lt;/p&gt;
  &lt;ol&gt;
    &lt;li&gt;&lt;strong&gt;Тинькоф&lt;/strong&gt;: 5536 9137 7308 3254&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Yandex&lt;/strong&gt;: 410013454525609&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p&gt;&lt;strong&gt;Возможна оплата через счет самозанятого&lt;/strong&gt;&lt;/p&gt;

</content></entry><entry><id>abaha91:HJOTdQdGS</id><link rel="alternate" type="text/html" href="https://teletype.in/@abaha91/HJOTdQdGS?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=abaha91"></link><title>Здоровый программист — счастливый программист</title><published>2019-07-26T07:16:16.266Z</published><updated>2019-07-26T07:17:12.694Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://teletype.in/files/c9/c9d256df-f759-427f-9298-4bcb3440acf7.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://teletype.in/files/fe/fe75679c-85a9-471e-a740-b6ab3f4f8742.jpeg&quot;&gt;Нам приходится работать очень напряженно: вредные начальники (не все), жесткие сроки, мозговые штурмы, решение самых разных проблем и, прежде всего, работа допоздна не лучшим образом отражаются на здоровье. Все вышеперечисленные обстоятельства приводят к депрессии, курению, «заеданию» стресса — словом, портят здоровье.</summary><content type="html">
  &lt;p&gt;&lt;strong&gt;Нам приходится работать очень напряженно: вредные начальники (не все), жесткие сроки, мозговые штурмы, решение самых разных проблем и, прежде всего, работа допоздна не лучшим образом отражаются на здоровье. Все вышеперечисленные обстоятельства приводят к депрессии, курению, «заеданию» стресса — словом, портят здоровье.&lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;А от здоровья в конечном итоге зависит наша жизнь — и это главная причина что-то с этим делать. Вторая по важности причина — от этого зависит карьера. Часто разработчики жалуются, что у них болит спина — иногда настолько сильно, что они не могут сидеть за столом. У многих из-за постоянного использования клавиатуры и мыши проблемы с запястьями. Все это может сделать работу неприятной, а в худшем случае и невозможной. И дело не только в мелких недугах: такая работа без заботы о собственном здоровье может укоротить жизнь. Возможно, это звучит слишком громко, но давайте вспомним, что главная причина смертности в мире — сердечно-сосудистые заболевания. Кроме того, все больше распространяются такие заболевания, как диабет 2-го типа и ожирение. Образ жизни программиста способствует появлению этих проблем, однако в большинстве случаев их можно предотвратить с помощью физических упражнений и правильного питания. Мы рассмотрим причины этих и других проблем со здоровьем, а затем поговорим о том, как эти причины устранить.&lt;/p&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/fe/fe75679c-85a9-471e-a740-b6ab3f4f8742.jpeg&quot; width=&quot;900&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;&lt;strong&gt;Сидеть — вредно&lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;Да, это в прямом смысле вредит здоровью. Исследователи из Массачусетского университета попросили группу здоровых молодых людей ходить с помощью костылей и тростей так, чтобы мышцы на левой ноге не напрягались. После двух дней такого эксперимента ученые провели биопсию мышц обеих ног. В левой ноге был нарушен механизм репарации ДНК, снизилась инсулиновая реакция, повысился окислительный стресс, а метаболическая активность в отдельных мышечных клетках замедлилась.&lt;/p&gt;
  &lt;p&gt;Для программистов это почти приговор, ведь писать код (а это наша работа и наша страсть) — значит сидеть за компьютером. Но последствий сидячей работы можно избежать: достаточно каждый час делать пятиминутный перерыв на физическую активность. Чтобы улучшить обмен веществ, достаточно просто пройтись до уборной.&lt;/p&gt;
  &lt;h3&gt;&lt;strong&gt;Нам нравится неправильно питаться&lt;/strong&gt;&lt;/h3&gt;
  &lt;p&gt;Ради достижения высоких целей мы можем бросаться в нездоровые крайности. По пути с работы — заскочим в автокафе, можем каждый день обедать с коллегами в общепите или брать в офис много газированных напитков и сладостей — потому что нет времени пообедать. А главное, мы ведь решили, что кофеин — это чуть ли не единственный способ оставаться энергичными и вообще тайный источник суперсилы разработчиков. В результате мы превращаемся в курильщиков, кофейных наркоманов и литрами поглощаем газировку. Таким образом мы закрепляем крайне плохие привычки в питании. Но чтобы исправить эти привычки, сначала придется их осознать.&lt;/p&gt;
  &lt;p&gt;У каждого разные потребности, поэтому очень важно подобрать себе диету и сбалансировать ее: кто-то любит фрукты, кто-то без ума от овощей. Одному нужно сбросить вес, другому — набрать. В некоторых случаях причины нездорового питания кроются в психологическом и эмоциональном стрессе. С ними нужно разобраться — с помощью врача или самостоятельно, мысленно настроив себя на то, чтобы справиться со стрессом и эмоциональным давлением.&lt;/p&gt;
  &lt;p&gt;Чтобы улучшить питание, посоветуйтесь с диетологом, составьте себе режим питания и строго ему следуйте. В ежедневный рацион нужно включить как можно больше фруктов и овощей. Пейте много воды и меньше ешьте богатую углеводами пищу — она вызывает невосприимчивость организма к инсулину, что с медицинской точки зрения называется преддиабетическим состоянием, которое легко может перерасти в &lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;http://www.diabetes.org/diabetes-basics/type-2/&quot; target=&quot;_blank&quot;&gt;диабет 2-го типа&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;. Снизьте потребление жирной пищи, которая повышает уровень холестерина и &lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;http://www.webmd.com/cholesterol-management/tc/high-triglycerides-overview&quot; target=&quot;_blank&quot;&gt;триглицеридов&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;, что может приводить к различным заболеваниям сердечно-сосудистой системы.&lt;/p&gt;
  &lt;h3&gt;&lt;strong&gt;Ой! Спина болит!&lt;/strong&gt;&lt;/h3&gt;
  &lt;p&gt;Обычно разработчик более 40 часов в неделю проводит сидя за компьютером. И лишь немногие из нас знают, как правильно расположиться в кресле. Поэтому у многих из-за неправильного положения и плохой эргономики кресла развиваются хронические боли в спине.&lt;/p&gt;
  &lt;p&gt;Проверить силу спинных мышц можно с помощью упражнения из теста&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;http://www.topendsports.com/testing/kraus-weber.htm&quot; target=&quot;_blank&quot;&gt;Крауса — Вебера&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;.&lt;/p&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://habrastorage.org/r/w1560/files/4af/c09/91b/4afc0991bb7b4d96801ca69392e33961.jpg&quot; width=&quot;638&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Если вы можете из положения лежа на животе поднять туловище и удерживать его в таком положении 10 секунд — поздравляем, тест пройден. Если нет — вам нужно обратиться к врачу.&lt;/p&gt;
  &lt;p&gt;В первую очередь важно найти достаточно эргономичное кресло, которое должно регулироваться в соответствии с весом и приспосабливаться к разным позам. Хорошее кресло действительно может значительно улучшить осанку и уменьшить боль в спине — впрочем, у вас, возможно, уже есть безупречное кресло. Но сидите вы в нем неправильно. Правильная посадка зависит от физических параметров тела. Отрегулируйте высоту кресла так, чтобы оно должным образом поддерживало позвоночник, равномерно распределяло вес тела и чтобы ноги стояли на земле.&lt;/p&gt;
  &lt;h3&gt;&lt;strong&gt;Боль в запястьях&lt;/strong&gt;&lt;/h3&gt;
  &lt;p&gt;Если вы пишете код или любите поиграть, у вас из-за постоянного использования клавиатуры и мыши может появиться боль в запястьях — онемение и покалывание в запястьях и руках. Создавая шедевры компьютерных систем, мы полагаемся на собственные руки — это наш рабочий инструмент, и когда поджимают сроки, часто этот инструмент работает без отдыха допоздна.&lt;/p&gt;
  &lt;p&gt;В запястье очень мало места: нервы, сухожилия, мышцы и кровеносные сосуды сжимаются, протискиваясь через несколько маленьких подвижных костей. Это вызывает трение, напряжение, растяжение, и с течением времени небольшое повреждение находящихся внутри мягких тканей приводит к &lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;http://rsi.unl.edu/&quot; target=&quot;_blank&quot;&gt;регулярным деформационным травмам&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;. Чтобы избавиться от боли в запястьях, достаточно ежедневно выполнять простые упражнения. Подробнее —&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;http://sequencewiz.org/2016/08/03/how-to-prevent-wrist-pain/&quot; target=&quot;_blank&quot;&gt;здесь&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;.&lt;/p&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://habrastorage.org/r/w1560/files/804/168/103/8041681035b341658b2a2b9dfb8976e5.png&quot; width=&quot;1024&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;&lt;em&gt;Упражнения на запястье. Источник изображения — &lt;a href=&quot;http://sequencewiz.org/&quot; target=&quot;_blank&quot;&gt;sequencewiz.org.&lt;/a&gt;&lt;br /&gt;&lt;/em&gt;&lt;/p&gt;
  &lt;h3&gt;&lt;strong&gt;Головная боль и напряжение глаз&lt;/strong&gt;&lt;/h3&gt;
  &lt;p&gt;Программирование — это во многом творчество, а головные боли — одна из основных причин снижения эффективности работы. В большинстве своем головные боли напрямую связаны со зрением. Самое распространенное заболевание (им страдают более 80 % людей, ежедневно проводящих за компьютером более 3 часов) —&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;http://www.aoa.org/patients-and-public/caring-for-your-vision/protecting-your-vision/computer-vision-syndrome?sso=y&quot; target=&quot;_blank&quot;&gt;синдром компьютерного зрения&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;. Это один из основных факторов, приводящих к головной боли, а в худших случаях — даже к галлюцинациям.&lt;/p&gt;
  &lt;p&gt;Важно носить правильные линзы, потому что без них глаза будут больше напрягаться, чтобы сфокусироваться, а это утомляет м��шцы вокруг глаз, что может приводить к головным болям и еще бо́льшим проблемам со зрением.&lt;/p&gt;
  &lt;p&gt;Следующий список поможет проверить, достаточно ли вы заботитесь о своем зрении:&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Насколько близко к экрану вы сидите? &lt;/strong&gt;Монитор должен находиться на расстоянии 0,5–1 м от глаз — это примерно длина вытянутой руки, так что здесь проверить довольно легко.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Насколько экран компьютера ярче, чем освещение в комнате? &lt;/strong&gt;Большая разница между яркостью экрана и освещенностью помещения быстро утомляет глаза. Если в кабинете естественное освещение, яркость дисплея должна в течение дня регулироваться. Для этого можно установить &lt;a href=&quot;https://justgetflux.com/&quot; target=&quot;_blank&quot;&gt;f.lux&lt;/a&gt; — это приложение будет автоматически изменять яркость экрана и температуру цвета в течение д��я (достаточно указать свои географические координаты).&lt;br /&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://habrastorage.org/r/w1560/files/445/7e8/c74/4457e8c7486142a398b5cca653624ddf.png&quot; width=&quot;546&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;&lt;em&gt;f.lux в действии&lt;/em&gt;&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Не слишком ли сильно бликует экран?&lt;/strong&gt; Если на экране можно увидеть свое лицо или четкое отражение фона, значит, он слишком бликует. Наклейте на экран матовую или антибликовую пленку или раздобудьте безбликовый монитор — не откладывайте это надолго.&lt;br /&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;Некоторые рекомендации, ежедневное выполнение которых поможет избежать синдрома компьютерного зрения:&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Моргайте глазами чаще&lt;/strong&gt;. При работе за компьютером мы обычно моргаем реже и даже можем так сосредотачиваться, что забываем моргать. Моргание не дает глазам пересыхать. Подробнее можно прочитать &lt;a href=&quot;http://commons.pacificu.edu/verg/2/&quot; target=&quot;_blank&quot;&gt;в этом исследовании&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt;
    &lt;li&gt;Если надолго сфокусироваться на чем-то одном, глаза устают. &lt;strong&gt;Размять мышцы глаз&lt;/strong&gt; можно, отведя на некоторое время взгляд в сторону. Здесь отлично работает следующая рекомендация: после 20 минут работы отведите взгляд от компьютера и в течение 20 секунд смотрите на удаленный предмет на расстоянии не менее 6 метров.&lt;br /&gt;&lt;/li&gt;
    &lt;li&gt;Чтобы уменьшить блики и снизить напряжение глаз, &lt;a href=&quot;http://valleyeyecareaz.com/4-health-benefits-when-wearing-polarized-lenses/&quot; target=&quot;_blank&quot;&gt;носите &lt;strong&gt;антибликовые поляризованные линзы&lt;/strong&gt;&lt;/a&gt;: они эффективно снимают раздражение, снижают сухость и утомляемость.&lt;br /&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;Чтобы избежать головной боли, потребляйте меньше кофеина и &lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/List_of_fermented_foods&quot; target=&quot;_blank&quot;&gt;ферментированных продуктов&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;. Если вы устранили перечисленные факторы, а головная боль осталась, обратитесь к врачу и проверьте глаза, чтобы вам назначили надлежащее лечение.&lt;/p&gt;
  &lt;h3&gt;&lt;strong&gt;Заключение&lt;/strong&gt;&lt;/h3&gt;
  &lt;p&gt;Жизнь — это невероятно ценный дар. И обязанность каждого человека — заботиться об этом даре. Поэтому приобретайте хорошие социальные привычки и стремитесь к здоровому образу жизни. Ваша жизнь, ваше видение и ваши стремления — это намного больше и важнее, чем добиться каких-то целей, угробив здоровье и потеряв запал.&lt;/p&gt;

</content></entry><entry><id>abaha91:Hkgd8OVfN</id><link rel="alternate" type="text/html" href="https://teletype.in/@abaha91/Hkgd8OVfN?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=abaha91"></link><title>Frontender’s notes</title><published>2019-05-06T13:40:19.530Z</published><updated>2019-12-04T12:57:29.556Z</updated><summary type="html">&lt;img src=&quot;https://teletype.in/files/46/46d00843-0a4c-413f-b4da-4d9f35cf89a9.png&quot;&gt;Статистика:</summary><content type="html">
  &lt;p&gt;&lt;strong&gt;Статистика:&lt;/strong&gt;&lt;/p&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/46/46d00843-0a4c-413f-b4da-4d9f35cf89a9.png&quot; width=&quot;947&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Стоимость и правила рекламного поста на канале Frontender’s notes&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Топ не менее &lt;strong&gt;20&lt;/strong&gt; &lt;strong&gt;часов&lt;/strong&gt;, с ленты не удаляется – &lt;strong&gt;2500 рублей&lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;В канале &lt;strong&gt;не размещается:&lt;/strong&gt; рекламные посты порно, казино, пирамид и МЛМ.&lt;/p&gt;
  &lt;p&gt;В рекламном посту &lt;strong&gt;не должно&lt;/strong&gt; быть нецензурной лексики.&lt;/p&gt;
  &lt;p&gt;&lt;br /&gt;&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Отзывы о рекламе: &lt;/strong&gt;&lt;a href=&quot;https://t.me/frontfeeds&quot; target=&quot;_blank&quot;&gt;https://t.me/frontfeeds&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Контакты:&lt;/strong&gt;&lt;/p&gt;
  &lt;ol&gt;
    &lt;li&gt;&lt;strong&gt;Администратор&lt;/strong&gt; - @g_abashkin&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Менеджер&lt;/strong&gt; - @my_little_trump&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Email&lt;/strong&gt;:      &lt;a href=&quot;mailto:frontender-notes@mail.ru&quot; target=&quot;_blank&quot;&gt;frontender-notes@mail.ru&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;VK&lt;/strong&gt;:          &lt;a href=&quot;https://vk.com/abaha91&quot; target=&quot;_blank&quot;&gt;https://vk.com/abaha91&lt;/a&gt;&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p&gt; &lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Реквизиты:&lt;/strong&gt;&lt;/p&gt;
  &lt;ol&gt;
    &lt;li&gt;&lt;strong&gt;Сбербанк&lt;/strong&gt;: 4276 5500 9783 5196&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Тинькоф&lt;/strong&gt;:   5536 9137 7308 3254&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Yandex&lt;/strong&gt;:      410013454525609&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Qiwi&lt;/strong&gt;: По запросу&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt; Webmoney&lt;/strong&gt;: R208459710782&lt;/li&gt;
  &lt;/ol&gt;

</content></entry><entry><id>abaha91:BkCrNnBs4</id><link rel="alternate" type="text/html" href="https://teletype.in/@abaha91/BkCrNnBs4?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=abaha91"></link><title>Из фронтенда в бэкенд</title><published>2019-04-30T11:40:54.220Z</published><updated>2019-04-30T11:40:54.220Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://teletype.in/files/40/406baa25-3e74-4a6f-80b4-505c96421bf6.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://habrastorage.org/webt/tu/qg/ny/tuqgnybvnrsizxmi6vtd01qxdje.png&quot;&gt;К переходам внутри департаментов иногда относятся по-разному. Кому-то просто привычнее видеть любые карьерные изменения внутри одной компании через призму роста должностей. Кто-то не считает возможным сменить сферу деятельности, даже если она смежная с текущей. Третьи же в принципе уверены, что переход из департамента в департамент означает, что человек занимает позицию “ни рыба, ни мясо”, и вряд ли добьётся чего-то значимого.</summary><content type="html">
  &lt;p&gt;К переходам внутри департаментов иногда относятся по-разному. Кому-то просто привычнее видеть любые карьерные изменения внутри одной компании через призму роста должностей. Кто-то не считает возможным сменить сферу деятельности, даже если она смежная с текущей. Третьи же в принципе уверены, что переход из департамента в департамент означает, что человек занимает позицию “ни рыба, ни мясо”, и вряд ли добьётся чего-то значимого.&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://habrastorage.org/webt/tu/qg/ny/tuqgnybvnrsizxmi6vtd01qxdje.png&quot; width=&quot;625&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;При этом некоторые работодатели всячески это приветствуют и считают чем-то вроде предохранителя от выгорания – человек сменит фокус внимания, сменит департамент или отдел, но не сменит саму работу в целом.&lt;/p&gt;
  &lt;p&gt;Меня зовут Костя, и я работаю в QIWI почти 4 года. Сегодня расскажу вам, как успешно перешел из frontend-разработки в backend.&lt;/p&gt;
  &lt;h2&gt;Frontend&lt;/h2&gt;
  &lt;p&gt;В QIWI я с конца 2014 года, начинал работать как разработчик iOS–приложений, и, в принципе, пару лет занимался разработкой QIWI-кошелька. При этом не могу сказать, что было скучно – задачи были довольно разные и в рамках одного приложения: мы занимались интеграцией кошелька с другими нашими сервисами, чинили баги, подтягивали анимацию. Кроме этого, был занятный опыт по созданию приложения для Apple Watch. Потом немного расширил фокус и поработал еще и над iOS-приложением для «Совести».&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://habrastorage.org/webt/l2/_1/sw/l2_1sw5mdm4uukpvqyb5_ap2cf4.png&quot; width=&quot;1800&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;И вот примерно тогда я начал потихоньку переходить в бэк. В плане гибкой методологии это даже удобно – я переключался, в первом спринте мог делать какие-то задачки по бэкенду, а во втором проводить интеграцию API, которое я же и написал.&lt;/p&gt;
  &lt;p&gt;Но в бэкенде на то время было слишком мало разработчиков и слишком здоровенный бэклог, так что в итоге я все же переключился на бэкенд полностью. То, что я делаю сейчас, это классические задачи бэкендера – пишу код в наших микросервисах, чиню баги, занимаюсь рефакторингом, постигаю Kotlin. Есть возможность работать и над свежим продуктом компании – QIWI Инвестор.&lt;/p&gt;
  &lt;p&gt;Кстати, не могу сказать, что за эти два года получилось как-то закостенеть во фронте, я отчетливо осознавал, что там тоже есть, куда развиваться. К примеру, я вижу, что сейчас происходит в команде мобильной разработки, и понимаю, что, останься я там, продолжил бы расти дальше вместе с ребятами.&lt;/p&gt;
  &lt;p&gt;Так что тут сложилась win-win ситуация – я хотел помочь команде и продукту (перевес в разработке был сильно не в сторону бэкендеров) и набраться новых знаний. Тимлиды все поняли и отпустили меня без каких-то претензий, продакт тоже.&lt;/p&gt;
  &lt;p&gt;Кроме этого, знания хотелось именно диверсифицировать, чтобы не привязываться к одной платформе (Android мне немного не по душе, но и Apple все же сдает позиции). Ну и было желание в случае чего уметь взять и сделать себе приложение самому (и фронт, и бэк), если вдруг появится какая-то клевая идея. Пока вот не пригодилось, правда.&lt;/p&gt;
  &lt;h2&gt;Backend&lt;/h2&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://habrastorage.org/webt/pe/hj/sh/pehjshxdspwrfgjrhsbyypd1l08.png&quot; width=&quot;939&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Само собой, сама первая проблема, с которой сталкиваешься при таком переходе, это пробелы в матчасти. В моем случае это были некоторые тонкости работы с базами данных, но здесь помогла как способность к самообучению, так и команда – ребята отзывчивые и всегда готовы прийти на помощь и что-то подробно объяснить. В QIWI в принципе с обучением на любых этапах все хорошо, будь ты хоть джуниором в самом начале работы, хоть вот так реши и смени сферу пару лет спустя.&lt;/p&gt;
  &lt;p&gt;Никого не раздражало, что первое время я явно работал не так эффективно, потому что во многое надо было въезжать (но в долгосрочной перспективе команда-то все равно в выигрыше).&lt;/p&gt;
  &lt;p&gt;Конечно, у меня и до этого был небольшой опыт в разных сферах – мобильные игры и веб, но это все были, скорее, попытки нащупать что-то свое, нежели именно набивание практического серьезного опыта.&lt;/p&gt;
  &lt;h2&gt;Впечатления от бэкенда после фронтенда&lt;/h2&gt;
  &lt;p&gt;Нет работы с UI. Вообще. Раньше приходилось убивать время на исправление багов в UI, сейчас – нет. Минусы такого положения – конечный пользователь не видит результатов конкретно моей работы, как это было с фронтом. Я пытался определить, что же сложнее – бэк или фронт, и понял, что (лично для меня) тяжелее всегда было работать с многопоточностью и сетевым стеком. И тут уже не так важно – за фронт ты или за бэк. На фронте я просто столкнулся с такими задачами впервые, без подготовки, а на бэкенде уже с каким-никаким опытом.&lt;/p&gt;
  &lt;p&gt;Набраться опыта и делать что-то крутое можно в любой области, было бы желание и усидчивость, здесь практики сходятся – сделать что-то (и сделать хорошо), и чтобы это работало надежно и легко поддерживалось. Причем для бэкендера не столь критично наличие или отсутствие опыта во фронте. Если разраб учитывает все мелочи, сам продумывает корнер-кейсы и в целом понимает, как будут использовать его API, то он и без фронт-знаний сделает все, как надо.&lt;/p&gt;
  &lt;p&gt;Мне проще обнаруживать возможные проблемы как раз потому, что я знаю особенности реализации наших мобильных приложений. Но это не какая-то сверхспособность – это набор знаний, которыми так или иначе обрастает любой бэкендер, который часто работает с фронтами.&lt;/p&gt;
  &lt;h2&gt;Что в итоге&lt;/h2&gt;
  &lt;p&gt;Backend-разработка стала для меня еще одним хорошим опытом – я научился писать код и проводить ревью, продумывать архитектуру. Это на самом деле интересно.&lt;/p&gt;
  &lt;p&gt;Но при этом, попробовав вживую что фронт, что бэк, я не скажу, что в случае чего сразу выбрал бы бэкенд в самом начале карьеры. Для меня все же важно видеть и понимать, как мой продукт воспринимают пользователи. С бэкендом это все довольно призрачно.&lt;/p&gt;
  &lt;p&gt;Скорее всего, выбирая сферу сейчас, я бы пошел в геймдев или веб-фронтенд. Веб все еще остается хорошей платформой для запуска новых продуктов, и при этом перестал быть жутким и сложным для понимания. Все эти туториалы из спагетти-кода и callback-hell остались далеко позади, к счастью.&lt;/p&gt;

</content></entry><entry><id>abaha91:SJDA0qBiE</id><link rel="alternate" type="text/html" href="https://teletype.in/@abaha91/SJDA0qBiE?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=abaha91"></link><title>14 советов, с которыми ты начнёшь мыслить как программист</title><published>2019-04-30T10:09:18.546Z</published><updated>2019-04-30T10:10:22.319Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://teletype.in/files/ac/aca3de6e-bfe0-46f1-aafc-19042f01b529.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://proglib.io/wp-content/uploads/2019/04/think.jpg&quot;&gt;Изменить свой образ мышления – не самая простая задача. Эти 14 крутых советов помогут тебе начать мыслить как программист.</summary><content type="html">
  &lt;p&gt;Изменить свой образ мышления – не самая простая задача. Эти 14 крутых советов помогут тебе начать мыслить как программист.&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://proglib.io/wp-content/uploads/2019/04/think.jpg&quot; width=&quot;1200&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2&gt;1. Помни о целях своего приложения&lt;/h2&gt;
  &lt;p&gt;На любых стадиях разработки помни о цели приложения, которая заключается в помощи людям.&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Цель приложения – это не хвастовство своими знаниями.&lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;Разработчик, не понимающий целей, напишет плохое приложение. Плохое приложение – это сложная система, которая не помогает людям в полной мере.&lt;/p&gt;
  &lt;p&gt;Принимай решения о приложении с вопросом: как мы можем помочь? Этим же вопросом легко расставлять приоритеты.&lt;/p&gt;
  &lt;h2&gt;2. Выбирай технологии правильно&lt;/h2&gt;
  &lt;p&gt;&lt;strong&gt;Не опирайся на внешние технологии или уменьшай зависимость от них.&lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;Зависимости порождают сложности. Они могут поставить под угрозу разработку и сделать проект сложнее. Большой баг в зависимости заставит тебя ждать пока разработчики его не пофиксят. С такой зависимостью, которая является центральной частью проекта, ты не сможешь двигаться дальше. Вот почему так важно выбирать правильные технологии для своего проекта.&lt;/p&gt;
  &lt;p&gt;Вот несколько факторов, которые помогут определиться:&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;Технология находится в активной разработке?&lt;/li&gt;
    &lt;li&gt;Поддерживается разработчиками?&lt;/li&gt;
    &lt;li&gt;Сложно ли отказаться от неё?&lt;/li&gt;
    &lt;li&gt;Что говорит сообщество?&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;Найдёшь правильные ответы – снизишь риск выбора неподходящей технологии.&lt;/p&gt;
  &lt;h2&gt;3. Не изобретай… сам знаешь что&lt;/h2&gt;
  &lt;p&gt;Услышав советы вроде «Давай сделаем собственный сборщик мусора вместо встроенного по умолчанию?!», знай, что это трата времени впустую. Вместо этого займись непосредственно программой.&lt;/p&gt;
  &lt;p&gt;Вот единственные причины, оправдывающие «изобретение велосипеда»:&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;Тебе нужно что-то, чего ещё не существует.&lt;/li&gt;
    &lt;li&gt;Все существующие «велосипеды» плохи, и не покрывают твои нужды.&lt;/li&gt;
    &lt;li&gt;Существующие «велосипеды» не поддерживаются разработчиками.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;Простое правило:&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Не изобретай велосипед.&lt;/strong&gt;&lt;/p&gt;
  &lt;h2&gt;4. Будь последовательным&lt;/h2&gt;
  &lt;p&gt;Последовательность упрощает проект. Придерживайся одного способа реализации во всех местах. Назвал переменную &lt;strong&gt;thisIsVariable&lt;/strong&gt;? Тогда называй таким образом все переменные (&lt;strong&gt;otherVariable&lt;/strong&gt;, &lt;strong&gt;anAnotherVariable&lt;/strong&gt;, и не &lt;strong&gt;other_variable&lt;/strong&gt;).&lt;/p&gt;
  &lt;p&gt;Нелогичный код труднее понять. Не заставляй других разработчиков изучать твою систему заново каждый раз, когда показываешь новый кусочек.&lt;/p&gt;
  &lt;p&gt;Этот практический совет помогает мыслить как программист – упорядочено.&lt;/p&gt;
  &lt;h2&gt;5. Автоматизируй&lt;/h2&gt;
  &lt;p&gt;Не трать своё время на рутину. Настрой и забудь. Повторяющиеся задачи могут выполняться в фоне, пока ты спишь. Когда понимаешь, что делаешь что-то снова и снова, вспомни правило:&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Автоматизируй то, что можешь.&lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;Читай книгу &lt;a href=&quot;https://t.me/progbook/4&quot; target=&quot;_blank&quot;&gt;«Автоматизация рутинных задач с помощью Python»&lt;/a&gt;. С ней ты заставишь компьютер выполнять за тебя поиск определённого текста в файлах, обновление и форматирование данных в электронных таблицах и прочие рутинные задачи.&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://proglib.io/wp-content/uploads/2019/04/python-automation.jpg&quot; width=&quot;327&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2&gt;6. Контролируй сложность&lt;/h2&gt;
  &lt;blockquote&gt;«Управление сложностью – это сущность компьютерного программирования» – Брайан Керниган.&lt;/blockquote&gt;
  &lt;p&gt;Сложность – источник неудач программного обеспечения. Давай представим: ты начинаешь с простого проекта, который можно закончить за месяц. Затем добавляешь сложности и получаешь три месяца разработки. С добавлением новых фич система становится сложнее – шесть месяцев.&lt;/p&gt;
  &lt;p&gt;Это ещё не конец.&lt;/p&gt;
  &lt;p&gt;С улучшением каждой отдельной фичи система усложняется дальше. Получаем девять месяцев. Из-за сложности кода тебя приветствуют новые баги. Ты начинаешь их фиксить, не думая о том, как это отразиться на других частях. Малейшие изменения становятся затруднительными. Когда исправление багов рождает новые баги, ты приходишь к самому страшному сну разработчиков:&lt;/p&gt;
  &lt;p&gt;Переписывание кода с нуля.&lt;/p&gt;
  &lt;p&gt;Неважно, как ты попал в этот кошмар. Главное – как его предотвратить?&lt;/p&gt;
  &lt;p&gt;Всё просто. Первое, что нужно знать – это цель и определение своего приложения. Второе: будь проще во всех местах своего кода. Третье: оценивай изменения и новые фичи, исходя из цели приложения.&lt;/p&gt;
  &lt;p&gt;Сопротивление – нормальная реакция разработчика на требования внести (необязательные) изменения. Защищай свой код и требуй убедить тебя в необходимости изменений прежде, чем вносить их.&lt;/p&gt;
  &lt;p&gt;И это не единственные причины роста сложности. Скажем проще:&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Контролируй сложность, не создавай.&lt;/strong&gt;&lt;/p&gt;
  &lt;h2&gt;7. Умей просить о помощи&lt;/h2&gt;
  &lt;p&gt;Не знаешь как реализовать какое-то решение? Подумай обо всём, что может помочь. Это важно, когда ты плохо знаком с концепциями языка.&lt;/p&gt;
  &lt;p&gt;Не можешь ничего придумать? Ищи! Проверь найденные ответы и адаптируй под свой код. Пойми, почему они работают.&lt;/p&gt;
  &lt;p&gt;А главное, ищи совета.&lt;/p&gt;
  &lt;p&gt;Возможно, ты перепробовал всё и не нашёл работоспособное решение. Время искать советы сеньоров. Предоставь свой код на ревью и читай &lt;a href=&quot;https://proglib.io/p/ask-a-right-question/&quot; target=&quot;_blank&quot;&gt;8 простых советов, как задавать правильные вопросы&lt;/a&gt;.&lt;/p&gt;
  &lt;h2&gt;8. Довольствуйся просто хорошим&lt;/h2&gt;
  &lt;blockquote&gt;«Совершенное – враг хорошего» – Вольтер.&lt;/blockquote&gt;
  &lt;p&gt;Разработчики часто планируют всё до мелочей на старте проекта или новой фичи. Когда хочется сделать первую версию идеальной, теряется внимание к проблеме, которую решает приложение, обдумывается каждая возможная деталь. Так можно приступить к реализации версии, идеализированной в своём воображении. Никто не задумывается о том, что их ждёт и во что обойдётся совершенство.&lt;/p&gt;
  &lt;p&gt;Напоминаем тебе:&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;Ты будешь писать ненужный код&lt;/li&gt;
    &lt;li&gt;Ты усложнишь систему необязательным кодом&lt;/li&gt;
    &lt;li&gt;У тебя не будет дедлайнов&lt;/li&gt;
    &lt;li&gt;Ты будешь встречать баги из-за сложности&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;Не очень заманчиво? Тогда разберёмся, что делать.&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Начинай с малого, улучшай, расширяй.&lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;https://ru.wikipedia.org/wiki/%D0%98%D1%82%D0%B5%D1%80%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%B0%D1%8F_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0&quot; target=&quot;_blank&quot;&gt;Итеративная разработка&lt;/a&gt; – это твой гайд. Рассмотрим на примере с калькулятором:&lt;/p&gt;
  &lt;ol&gt;
    &lt;li&gt;Запланируй систему, которая не умеет ничего, кроме сложения.&lt;/li&gt;
    &lt;li&gt;Реализуй.&lt;/li&gt;
    &lt;li&gt;Улучшай существующий дизайн системы для добавления других операций.&lt;/li&gt;
    &lt;li&gt;Добавь вычитание и повтори шаги 2 и 3.&lt;/li&gt;
    &lt;li&gt;Добавляй умножение и повтори шаги 2 и 3.&lt;/li&gt;
    &lt;li&gt;Добавь деление и повтори шаги 2 и 3.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;h2&gt;9. Практикуйся&lt;/h2&gt;
  &lt;p&gt;Хочешь мыслить как программист? Начни менять себя и своё окружение. Изменение мышления – это сложная задача, которая затрагивает процессы в мозге. Для этого мало читать: нужно действовать и выходить из зоны комфорта. Наше мышление не перестраивается в режиме покоя. Для этого ему нужны обстоятельства, условия и даже стресс.&lt;/p&gt;
  &lt;p&gt;Начни со своего круга общения. Люди, связанные с разработкой, помогут увлечь твоё сознание. Можно сказать, что сообщество программистов «делает» программистов.&lt;/p&gt;
  &lt;p&gt;Меняй своё цифровое пространство: онлайн-сообщества, в которых ты состоишь, источники информации и привычки. Посвящай больше времени практике и изучению непонятных концепций.&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://proglib.io/wp-content/uploads/2019/04/wtf.jpg&quot; width=&quot;1500&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2&gt;10. Тестируй&lt;/h2&gt;
  &lt;p&gt;Добавляй логирование и обработку ошибок на ранних этапах. Это облегчит поиск проблем и сэкономит время.&lt;/p&gt;
  &lt;p&gt;В тестах тоже допускают ошибки. Давай рассмотрим пример с простым условием &lt;strong&gt;if-else&lt;/strong&gt;. Разработчики подают входные данные в блок &lt;strong&gt;if&lt;/strong&gt;, затем тестируют и коммитят. Сделано! А что насчёт блока &lt;strong&gt;else&lt;/strong&gt;? Когда код дошёл до продакшена, это вызвало много проблем. Запускай все новые строки и тестируй частями прежде, чем перейти ко всему коду.&lt;/p&gt;
  &lt;p&gt;Видишь баг – воспроизведи его. Не нужно строить догадки о причине бага и фиксить исходя из своих предположений. Увидишь причину бага – не ошибёшься.&lt;/p&gt;
  &lt;p&gt;Будь надёжным. Когда другие разработчики видят твой коммит, они должны быть уверены, что твой код протестирован и работает.&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Не тестированный код = неработающий код.&lt;/strong&gt;&lt;/p&gt;
  &lt;h2&gt;11. Документируй, комментируй&lt;/h2&gt;
  &lt;p&gt;Неправильное представление о комментариях в коде приводит к тому, что разработчик начинает объяснять в них то, что делает код. Работа кода должна быть очевидна при чтении. Не очевидна? Значит, код или фрагмент нечитаемы и должны быть упрощены.&lt;/p&gt;
  &lt;p&gt;Не можешь упростить? Тогда объясняй эту сложность в комментариях.&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://proglib.io/wp-content/uploads/2019/04/55c8bcff18b94.png&quot; width=&quot;960&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;&lt;strong&gt;Не пиши комменты о том, что делает код, объясняй для чего он это делает.&lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;Ещё одна важная вещь – документирование. Важно иметь документацию, которая объясняет архитектуру твоего приложения, каждый модуль и компонент. Это необходимо для высокоуровневого видения программы.&lt;/p&gt;
  &lt;p&gt;Мыслить как программист – это также уметь объяснять.&lt;/p&gt;
  &lt;h2&gt;12. Поддерживай код&lt;/h2&gt;
  &lt;p&gt;Быстрый код и запуск выглядят важнее поддержки и обслуживания кода. И это ошибка, которая сказывается в будущем.&lt;/p&gt;
  &lt;p&gt;Реализация будет меняться всегда. Мало вносить изменения, их нужно поддерживать со временем.&lt;/p&gt;
  &lt;blockquote&gt;Все изменения требуют обслуживания&lt;/blockquote&gt;
  &lt;p&gt;Сложность – это фактор, влияющий на поддержку кода. Лёгкость поддержки любой части программы пропорциональна простоте отдельных частей.&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Важнее снизить сложность поддержки, чем сложность реализации.&lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;Ответственность за свой код научит тебя мыслить как программист.&lt;/p&gt;
  &lt;h2&gt;13. Изучай математику чтобы мыслить как программист&lt;/h2&gt;
  &lt;p&gt;&lt;a href=&quot;https://proglib.io/p/how-to-learn-maths/&quot; target=&quot;_blank&quot;&gt;Математика нужна программисту&lt;/a&gt; не меньше, чем кассиру.&lt;/p&gt;
  &lt;p&gt;Без иронии – разработчик должен превосходить относительно средний уровень знания математики в технических профессиях. И это не просто требования рынка труда. Информатика, как наука и языки программирования разных уровней, имеет под собой твёрдую математическую базу. Поэтому знание математики вытекает в вопрос статуса и компетентности.&lt;/p&gt;
  &lt;p&gt;Высшей и дискретной математикой прививают определённый образ мышления в хороших учебных заведениях.&lt;/p&gt;
  &lt;p&gt;Полезные книги:&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://t.me/progbook/2766&quot; target=&quot;_blank&quot;&gt;The Art of Computer Programming: Volume 1: Fundamental Algorithms&lt;/a&gt; – несмотря на упоминания алгоритмов, книга содержит необходимый математический минимум для программиста.&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://t.me/progbook/2834&quot; target=&quot;_blank&quot;&gt;Конкретная математика&lt;/a&gt; – практическая книга математики для программистов.&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://t.me/progbook/420&quot; target=&quot;_blank&quot;&gt;Удовольствие от X&lt;/a&gt; – книга для широкого круга читателей, которые упустили математику в своё время.&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.ozon.ru/context/detail/id/4612107/?partner=proglib&amp;utm_content=link&quot; target=&quot;_blank&quot;&gt;Апология математики&lt;/a&gt; – ещё одна книга из серии «математика для нематематиков».&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://t.me/progbook/2830&quot; target=&quot;_blank&quot;&gt;Линейная алгебра и аналитическая геометрия&lt;/a&gt; – эта книга для тех, кто не хочет читать всё вышеперечисленное, а хочет ограничиться исключительно «боевыми» знаниями.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2&gt;14. Найди свой подход&lt;/h2&gt;
  &lt;p&gt;Как выбрать поле для изучения из всего объёма информации? Тебе нужно выбрать то, в чём ты будешь чувствовать себя комфортно. Не забывай про реалии и следи за спросом на рынке.&lt;/p&gt;
  &lt;p&gt;Хочешь пойти традиционным путём? Изучай объектно-ориентированное программирование и меняй своё мышление книгой &lt;a href=&quot;https://t.me/progbook/92&quot; target=&quot;_blank&quot;&gt;Объектно-ориентированное мышление&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;Хочешь двигаться дальше к лямбда-исчислениям, чистым функциям и неизменяемым типам? Изучай &lt;a href=&quot;https://proglib.io/p/fp-digest/&quot; target=&quot;_blank&quot;&gt;функциональное программирование&lt;/a&gt;, всё больше набирающее популярность.&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;https://proglib.io/p/programmer-mindset-advices/&quot; target=&quot;_blank&quot;&gt;Источник&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>abaha91:rkO5b5pm4</id><link rel="alternate" type="text/html" href="https://teletype.in/@abaha91/rkO5b5pm4?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=abaha91"></link><title>Бесплатные игровые движки на HTML5 и JavaScript</title><published>2019-01-29T08:40:48.377Z</published><updated>2019-01-29T08:41:01.044Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://teletype.in/files/16/1621a25d-cbf7-4a8e-be7b-022f9d02592c.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://cdn.tproger.ru/wp-content/uploads/2016/07/547n4OxQs8k.jpg&quot;&gt;HTML5 вместе с CSS3 и JavaScript дают разработчику широкие возможности создания игр с использованием 3D, анимации, Canvas, математики, цветов, звука, WebGL. Одно из наиболее очевидных преимуществ HTML5 заключается в его независимости и от платформы, и в общем случае от аппаратной начинки.</summary><content type="html">
  &lt;p&gt;HTML5 вместе с CSS3 и JavaScript дают разработчику широкие возможности создания игр с использованием 3D, анимации, Canvas, математики, цветов, звука, WebGL. Одно из наиболее очевидных преимуществ HTML5 заключается в его независимости и от платформы, и в общем случае от аппаратной начинки.&lt;/p&gt;
  &lt;p&gt;При детальном рассмотрении можно выявить предоставляемые движками дополнительные возможности: упрощение некоторых часто встречающихся задач или подгрузка ресурсов, оформленный ввод, физика, звук, bitmap’ы (таких, конечно же, немного). Есть и довольно слабо оформленные движки, а есть и те, которые предоставляют в пользование разработчику редактор 2D уровней и инструменты отладки.&lt;/p&gt;
  &lt;p&gt;Предполагается, что большинство движков служат для сокращения временных затрат на разработку полноценной игры. Однако многие разработчики предпочитают создавать свой проект полностью с нуля, чтобы лучше представлять его устройство. Существует немного JavaScript-HTML5 движков, которые действительно чего-то стоят, однако и у них может быть один большой недостаток: они более не поддерживаются или близки к прекращению поддержки. Поэтому, выбирая движок, остановите свой выбор на тех продуктах, поддержка которых будет длиться достаточно продолжительное время.&lt;/p&gt;
  &lt;p&gt;Итак, вот, собственно, сами движки.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3&gt;Crafty&lt;/h3&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://cdn.tproger.ru/wp-content/uploads/2016/07/547n4OxQs8k.jpg&quot; width=&quot;604&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Легкий модульный &lt;a href=&quot;http://craftyjs.com/&quot; target=&quot;_blank&quot;&gt;игровой движок&lt;/a&gt;, включающий множество функций: анимацию, управление событиями, перерисовку регионов, отслеживание пересечений и столкновений, спрайтовую графику и многое другое. Поддерживает все браузеры, в т.ч. IE9. Никаких дополнительных усилий прилагать не требуется.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3&gt;Quintus&lt;/h3&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://cdn.tproger.ru/wp-content/uploads/2016/07/TDUqiDpsDB4.jpg&quot; width=&quot;809&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Quintus – игровой HTML5-&lt;a href=&quot;http://html5quintus.com/&quot; target=&quot;_blank&quot;&gt;движок&lt;/a&gt;, разработанный, чтобы быть модульным и легковесным, с четким JavaScript-подобным интерфейсом. Для того, чтобы реализовать основные особенности ООП-игрового движка в HTML5-движке, в Quintus в некотором отношении схож с jQuery, а также поддерживает плагины, управление событиями и гибкую модель наследования, чтобы упростить повторное использование реализованных функций.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3&gt;gameQuery&lt;/h3&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://cdn.tproger.ru/wp-content/uploads/2016/07/MYpPfOS28oc.jpg&quot; width=&quot;604&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Простой в использовании &lt;a href=&quot;http://gamequeryjs.com/&quot; target=&quot;_blank&quot;&gt;плагин&lt;/a&gt; jQuery, упрощающий разработку игры за счет использования реализованных игровых компонентов. Благодаря особенностям реализации совместим со множеством браузеров, в т.ч. их мобильными версиями.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3&gt;GMP&lt;/h3&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://cdn.tproger.ru/wp-content/uploads/2016/07/CLOaCSCOfGM.jpg&quot; width=&quot;604&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Идеально подойдет для реализации 2D спрайтовых аркад в ретро-стиле и головоломок вроде Судоку. &lt;a href=&quot;http://gogomakeplay.com/&quot; target=&quot;_blank&quot;&gt;Он&lt;/a&gt; имеет готовый к использованию самозапускающийся игровой цикл. Поддерживаются мышь и клавиатура. Отлично документирован, и главным недостатком можно считать только отсутствие поддержки звуков.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3&gt;lycheeJS&lt;/h3&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://cdn.tproger.ru/wp-content/uploads/2016/06/%D0%91%D0%B5%D0%B7%D1%8B%D0%BC%D1%8F%D0%BD%D0%BD%D1%8B%D0%B9-2-1024x511.png&quot; width=&quot;740&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Игровая &lt;a href=&quot;https://lychee.js.org/#!vision&quot; target=&quot;_blank&quot;&gt;библиотека&lt;/a&gt; JavaScript, которая предлагает готовое решение для проектирования и реализации HTML5 Canvas и WebGL или нативных OpenGL игр внутри браузера или стационарных платформ. Оптимизирован для Google Chrome.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3&gt;Enchant.js&lt;/h3&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://cdn.tproger.ru/wp-content/uploads/2016/07/A2m-0GFuk4w.jpg&quot; width=&quot;604&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;&lt;a href=&quot;http://enchantjs.com/&quot; target=&quot;_blank&quot;&gt;Фреймворк&lt;/a&gt; Enchant.js для HTML5+JavaScript игр был разработан в 2011 году, распространяется с открытым исходным кодом (MIT лицензия) и потому бесплатен.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3&gt;The Render Engine&lt;/h3&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://cdn.tproger.ru/wp-content/uploads/2016/07/Uc8B8k80Ttg.jpg&quot; width=&quot;604&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Кросс-браузерный опенсорсный &lt;a href=&quot;https://github.com/bfattori/TheRenderEngine&quot; target=&quot;_blank&quot;&gt;движок&lt;/a&gt;, написанный полностью на JavаScript. Созданный с нуля для того, чтобы быть максимально гибким, он имеет обширный API и использует самые новые фичи современных браузеров. Этот фреймворк предназначен, чтобы делать все за вас: ваша идея – его реализация с помощью самых часто используемых инструментов.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3&gt;GameJS&lt;/h3&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://cdn.tproger.ru/wp-content/uploads/2016/07/pZOmLFH4zrQ.jpg&quot; width=&quot;604&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Большая &lt;a href=&quot;http://gamejs.org/&quot; target=&quot;_blank&quot;&gt;библиотека&lt;/a&gt; на верхнем уровне HTML Canvas. В добавок к функциям рисования в ней имеется растущий ассортимент полезных для разработки игр модулей. Большинство имеющегося API основан на популярной PyGame.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3&gt;CSS Game Engine&lt;/h3&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://cdn.tproger.ru/wp-content/uploads/2016/07/pgWN6GUlkLc.jpg&quot; width=&quot;604&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Для формирования страницы используются JavaScript и CSS. Вместе они работают достаточно уверенно и слаженно. Разработан для новичков, обучающихся азам программирования видеоигр. Вам будет проще, если у вас уже есть какие-то навыки работы с CSS.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3&gt;ClanFX&lt;/h3&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://cdn.tproger.ru/wp-content/uploads/2016/07/ZbUN8aZgq9I.jpg&quot; width=&quot;604&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;&lt;a href=&quot;https://sourceforge.net/projects/clanfx/&quot; target=&quot;_blank&quot;&gt;clanfx&lt;/a&gt; основан на JavaScript и CSS и использует плиточную графику. Работает на данный момент в Firefox, Epiphany и Opera. Среди реализованных фич: анимированные спрайты, эффекты заклинаний, постройки, плитки/текстуры и базовый искусственный интеллект.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3&gt;gTile&lt;/h3&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://cdn.tproger.ru/wp-content/uploads/2016/07/r_wlchkUb5A.jpg&quot; width=&quot;604&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Браузерный &lt;a href=&quot;http://game.tyler-dewitt.com/&quot; target=&quot;_blank&quot;&gt;движок&lt;/a&gt; на чистом JavaScript и DHTML. В gTile плиточная графика была выбрана за ее простоту и доступность. Упор в реализации был сделан на высокий уровень интерактивности и поведении игровых объектов. Меньшее внимание было уделено графике. А потому движок подойдет больше для создания текстовых РПГ, а графических возможностей должно хватить для изображения локаций.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3&gt;J5g3&lt;/h3&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://cdn.tproger.ru/wp-content/uploads/2016/07/htlG_OEWryo.jpg&quot; width=&quot;604&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Графический JS &lt;a href=&quot;http://j5g3.com/&quot; target=&quot;_blank&quot;&gt;движок&lt;/a&gt; с открытым исходным кодом (GPLv3). Легкий в использовании синтаксис предназначен для того, чтобы сделать фреймворк быстрым и расширяемым.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3&gt;Jaws&lt;/h3&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://cdn.tproger.ru/wp-content/uploads/2016/07/CcoElHE-v90.jpg&quot; width=&quot;604&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;2D игровая &lt;a href=&quot;http://jawsjs.com/&quot; target=&quot;_blank&quot;&gt;библиотека&lt;/a&gt;, основанная на HTML5. Использует и Canvas, и средства DOM.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3&gt;Cocos2D&lt;/h3&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://cdn.tproger.ru/wp-content/uploads/2016/07/QKDve7Rv-jk.jpg&quot; width=&quot;604&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Портированный с iPhone графический 2D HTML5-&lt;a href=&quot;http://www.cocos2d.org/&quot; target=&quot;_blank&quot;&gt;движок&lt;/a&gt; на JavaScript. Позволяет быстро создавать 2D игры и графические приложения, которые могут работать на всех современных устройствах без установки дополнительных плагинов.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3&gt;CopperLicht&lt;/h3&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://cdn.tproger.ru/wp-content/uploads/2016/07/2honcbBmCTM.jpg&quot; width=&quot;604&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;WebGL &lt;a href=&quot;http://www.ambiera.com/copperlicht/&quot; target=&quot;_blank&quot;&gt;библиотека&lt;/a&gt; и JavaScript 3D движок для создания браузерных игр и 3D приложений. Использует WebGL Canvas, поддерживаемый современными браузерами и способный поддерживать рендеринг 3D моделей, используя аппаратное ускорение без плагинов.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3&gt;Aves&lt;/h3&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://cdn.tproger.ru/wp-content/uploads/2016/07/dZ4IgYvyo2k.jpg&quot; width=&quot;604&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Этот HTML/JavaScript &lt;a href=&quot;http://www.wonderlandblog.com/wonderland/2010/04/aves-an-html-javascript-game-engine.html&quot; target=&quot;_blank&quot;&gt;движок&lt;/a&gt; – реинкарнация набора инструментов для разработки олдскульных RPG (но с более привлека��ельной графикой). И все только с помощью HTML и JS. Никаких плагинов. Никакого Flash.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3&gt;LimeJS&lt;/h3&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://cdn.tproger.ru/wp-content/uploads/2016/07/wttta1pLMgQ.jpg&quot; width=&quot;604&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;HTML5 &lt;a href=&quot;http://www.limejs.com/&quot; target=&quot;_blank&quot;&gt;движок&lt;/a&gt; для разработки игр с поддержкой сенсорного ввода. LimeJS создан с использованием Closure Library, созданной Google, и в нем уже реализованы классы и функции для отслеживания времени, событий, обработки форм и анимации. Также фреймворк поддерживает спрайтовые листы (т.е. все используемые изображения могут быть помещены в один файл).&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3&gt;Phaser&lt;/h3&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://cdn.tproger.ru/wp-content/uploads/2016/07/20160704160039122_87a2654.png&quot; width=&quot;639&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Ещё один &lt;a href=&quot;https://phaser.io/&quot; target=&quot;_blank&quot;&gt;фреймворк&lt;/a&gt; для создания мобильных и десктопных игр на HTML5 с применением Canvas и WebGL. Бесплатный и с открытым исходным кодом. Есть быстрые гайды для старта на JavaScript и TypeScript.&lt;/p&gt;

</content></entry></feed>