<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Academic | Хусаинова Д. А.</title>
    <link>https://dakhusainova.github.io/ru/tag/academic/</link>
      <atom:link href="https://dakhusainova.github.io/ru/tag/academic/index.xml" rel="self" type="application/rss+xml" />
    <description>Academic</description>
    <generator>Wowchemy (https://wowchemy.com)</generator><language>ru-ru</language><lastBuildDate>Wed, 01 Jun 2022 00:00:00 +0000</lastBuildDate>
    <image>
      <url>https://dakhusainova.github.io/media/icon_hu0b7a4cb9992c9ac0e91bd28ffd38dd00_9727_512x512_fill_lanczos_center_3.png</url>
      <title>Academic</title>
      <link>https://dakhusainova.github.io/ru/tag/academic/</link>
    </image>
    
    <item>
      <title>Прошедшая неделя 6</title>
      <link>https://dakhusainova.github.io/ru/post/last-week6/</link>
      <pubDate>Wed, 01 Jun 2022 00:00:00 +0000</pubDate>
      <guid>https://dakhusainova.github.io/ru/post/last-week6/</guid>
      <description>&lt;h2 id=&#34;обзор&#34;&gt;Обзор&lt;/h2&gt;
&lt;p&gt;На прошлой неделе не произошло абсолютно ничего сверхъестественного. Обычная неделя учебы, а затем возвращение к текстовым играм. Чудесная жизнь.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Научное программирование</title>
      <link>https://dakhusainova.github.io/ru/post/programming5st/</link>
      <pubDate>Wed, 25 May 2022 00:00:00 +0000</pubDate>
      <guid>https://dakhusainova.github.io/ru/post/programming5st/</guid>
      <description>&lt;h2 id=&#34;научное-программирование&#34;&gt;Научное программирование&lt;/h2&gt;
&lt;p&gt;Наука в программировании — прошлое или реальность? Сколько всего этого в языках и почему существуют холивары о преимуществах одних языков перед другими? Если вам интересно, я спрашиваю под кат.&lt;/p&gt;
&lt;p&gt;Уже давно идут &amp;ldquo;священные войны&amp;rdquo;, в которых обсуждаются и критикуются различные подходы в написании программ и в самом программировании, в основном критикуется объектно-ориентированное программирование (раз, два, три).&lt;/p&gt;
&lt;p&gt;Егор Бугаенко критикует ООП на практических примерах (один, два, видео), используя идеи Дэвида Уэста и, как я понял, недавно перешел к теории. Эффективность этих споров стремится к нулю. Почему? Потому что все эти споры уже ведутся на основе реализации каких-то мыслей, практик и мнений отдельных людей, а не на основе теоретических работ. О научном методе и подходе с его теориями, гипотезами, аксиомами, экспериментами, доказательствами и фактами в последние годы в этих спорах и &amp;ldquo;войнах&amp;rdquo; вообще нет ни слова!&lt;/p&gt;
&lt;p&gt;В математике, как и в любой другой науке, любые теоремы и теории требуют доказательств. В качестве примера: Теорема Пифагора. На первом месте теория, за ней следует практика. В программировании этому подходу не следовали уже несколько десятилетий. Все было заменено догмами и мнениями отдельных людей, которых иногда называют &amp;ldquo;евангелистами&amp;rdquo; или &amp;ldquo;пророками&amp;rdquo;. Своим словоблудием они продвигают в массы только те идеи, которые им нужны, не заботясь о теории или доказательствах (посмотрите на конференции и презентации по этому поводу). Где здесь наука, а где религия? И не скатываемся ли мы в мракобесие и веру в слова, написанные давно и не требующие доказательств? Вы слышали о сторонниках плоской Земли? Напоминает ли это вам что-нибудь с точки зрения подходов к убеждению и упрямству?&lt;/p&gt;
&lt;p&gt;И в течение последних 30-40 лет программисты, ослепленные религиозными убеждениями проповедников ООП или ОП, создавали абстракции поверх других абстракций, новые языки поверх других языков, новые фреймворки и библиотеки поверх старых. И зачем все это было нужно? Ради упрощения и повышения производительности их работы по написанию программ. Только этот путь вел в тупик. Потому что вместо упрощения мы получили усложнение, и теперь мы изучаем не алгоритмы, а API и документацию для другого модного фреймворка, а может быть, и нескольких. Теперь они начали искать ошибки не только в собственном коде, но и в чужом. Отладка кода должна выполняться с помощью множества прокси-серверов, шаблонов архитектуры и шаблонов проектирования, помощников, фреймворков и библиотек. И, как показывают исследования, использование ООП вообще не приводит к увеличению скорости написания кода.&lt;/p&gt;
&lt;p&gt;Немного истории. Как все это началось? Сначала появилось процедурное программирование, затем структурное программирование, а затем на сцену вышло императивное программирование. Некоторые люди подумали о том, чтобы ввести понятие объекта — так родилось объектно-ориентированное программирование. И в этот момент произошел резкий поворот, который привел всю отрасль в то состояние, в котором мы сейчас находимся.&lt;/p&gt;
&lt;p&gt;Введение объекта должно было быть теоретически обосновано. Но этого не произошло. Вместо этого каждый язык вводил понятие объекта по-своему. И каждый разработчик языка интерпретировал постулаты ООП на свой вкус и цвет. Особо упрямые фундаменталисты придумали Функциональное программирование, основанное на математике, списках и функциях более высокого порядка. Это звучит серьезно и даже немного научно обосновано, потому что математика - вещь необходимая и полезная, но какое отношение списки и функции имеют к реальному миру?&lt;/p&gt;
&lt;p&gt;Какие задачи решает чистый ОП без использования состояний и есть ли оптимальный, удобный и правильный способ со стороны человека — вот вопрос, который нужно задать &amp;ldquo;пророкам&amp;rdquo; ОП. И его спрашивают (раз, два).&lt;/p&gt;
&lt;p&gt;Разработчики функциональных языков начали применять некоторые парадигмы из ООП, чтобы перейти из области прикладных математических задач в область реальных проблем. В ответ
на это некоторые языки ООП внедрили парадигмы из OP. И &amp;ldquo;Лошади и люди смешались в кучу&amp;rdquo; (с)&lt;/p&gt;
&lt;p&gt;В результате реализация чистых парадигм ООП и ОП на современных языках похожа на песню — &amp;ldquo;Я сделал это из того, что было, и из того, что было, и я влюбился&amp;rdquo;! И получается, что без теоретической работы и научной основы все эти языки - всего лишь плод фантазий и желаний их разработчиков. И таких языков существует более сотни! И так не должно быть! В идеале должно быть всего 2 языка низкого уровня и 3-4 языка высокого уровня, построенных на их основе.&lt;/p&gt;
&lt;p&gt;Я могу предположить, что когда они вводили понятие объекта, они брали за основу то, что видели вокруг себя — людей и животных. И это было главной ошибкой, которая впоследствии разрослась до огромных размеров! Таким образом, возможно, появилось наследование (предок-потомок и связь между ними объясняются наследованием, но как насчет других объектов в мире? И что означает само определение слова &amp;ldquo;наследование&amp;rdquo; в реальном мире? Кровь и ДНК? Азотистые основания?). Как другие термины, а именно абстракция, инкапсуляция и полиморфизм, относятся конкретно к ООП? И почему-то они не потрудились предоставить доказательства такой связи. В конце концов, вы можете написать что угодно, и это звучит логично, но проблема в том, что приведенные аргументы не имеют ничего общего с ООП. Ведь в ООП была допущена логическая ошибка — (неполная индукция) был осуществлен переход от одного частного случая ко всему общему множеству. Чтобы показать это, я приведу пример — если за основу можно взять только живые существа с наследственностью, то почему бы, следуя той же логике, не взять за основу планету или целую галактику? В конце концов, планета или галактика также являются наследниками других объектов из космоса и имеют состояние и какое-то поведение. Или представьте себе все горы как объекты без наследования и практически без поведения.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Язык программирования C# в разработке игр</title>
      <link>https://dakhusainova.github.io/ru/post/topic/</link>
      <pubDate>Wed, 25 May 2022 00:00:00 +0000</pubDate>
      <guid>https://dakhusainova.github.io/ru/post/topic/</guid>
      <description>&lt;h2 id=&#34;язык-программирования-c&#34;&gt;Язык программирования C#&lt;/h2&gt;
&lt;p&gt;Unity использует производительный язык программирования C#. Благодаря C# и моно – кроссплатформенной реализации.NET, Unity-проекты могут быть собраны и одинаково стабильно работать в разных операционных системах.&lt;/p&gt;
&lt;p&gt;В будущем вам нужно будет полностью выучить язык, но для начала подойдет следующий набор тем:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;основные конструкции;
объекты, типы и ссылки;
перечисления и коллекции;
объектно-ориентированное программирование;
обработка исключений.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Если вы планируете создавать сетевые игры, крайне желательно знать ASP MVC, фреймворк для создания веб-приложений, упрощающий создание сетей и работу с базами данных.&lt;/p&gt;
&lt;p&gt;Общим требованием для всех программистов является знание алгоритмов и структур данных. Эти знания не устареют, независимо от того, какой язык программирования вы используете и для какой операционной системы разрабатываете.&lt;/p&gt;
&lt;p&gt;В дополнение к языку программирования и алгоритмам обязательными для изучения являются шаблоны проектирования – продуманные архитектурные решения, используемые программистами. Необходимо хорошо понимать, как и в какой ситуации использовать тот или иной шаблон.&lt;/p&gt;
&lt;p&gt;Большая часть учебных и справочных материалов написана на английском языке, и поэтому мы советуем вам овладеть языком хотя бы на среднем уровне. Знание английского языка не является специфическим требованием для программистов Unity, а является стандартным требованием к НЕМУ.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Как создавать презентацию</title>
      <link>https://dakhusainova.github.io/ru/post/presentationmake/</link>
      <pubDate>Thu, 12 May 2022 00:00:00 +0000</pubDate>
      <guid>https://dakhusainova.github.io/ru/post/presentationmake/</guid>
      <description>&lt;h2 id=&#34;описание&#34;&gt;Описание&lt;/h2&gt;
&lt;p&gt;Создание хорошей презентации начинается с создания контента. Каким бы убедительным ни было ваше сообщение, если вы не выбросите его из головы и не перенесете на экран простым способом, вас встретит море пустых лиц. Итак, с чего начать?&lt;/p&gt;
&lt;p&gt;Создайте легкую для понимания структуру&lt;/p&gt;
&lt;p&gt;Когда дело доходит до того, что вы хотите сказать, разбейте это на три простых раздела: ваша презентация нуждается во введении, основной части и заключении.&lt;/p&gt;
&lt;p&gt;Убедительное вступление. В вашем вступлении должно быть кратко изложено то, о чем вы собираетесь говорить, и почему это полезно или актуально для вашей аудитории.
Предложите множество доказательств. Основная часть вашей презентации - это то, где вы приводите факты, цитаты и доказательства, подтверждающие ваши основные тезисы.
Подведите итог с ключевыми выводами. В заключение вы возвращаетесь к своему первоначальному утверждению и даете аудитории несколько ключевых советов о том, как они могут применить на практике то, чему они научились.
Всего не более 10 слайдов. Кто хочет просиживать страницы и страницы слайдов? Никто, вот кто. Ограничивая количество слайдов 10 слайдами, даже если ваша презентация длится 30 минут, вы дадите аудитории возможность переварить сообщения на экране в соответствии с вашим выступлением. Использование концептуальных карт перед структурированием слайдов может помочь придерживаться сути.
Ограничьте количество копий на каждом слайде&lt;/p&gt;
&lt;p&gt;На самом деле меньше значит больше, особенно когда речь идет о создании хорошей презентации. Слишком много текста, и аудитория будет просто читать экран вместо того, чтобы смотреть на вас и чувствовать эмоциональное воздействие вашего сообщения.&lt;/p&gt;
&lt;p&gt;Не более шести слов на слайд. Король маркетинга Сет Годин говорит, что на слайде должно быть всего шесть слов – это не так уж много текста. Тщательно подбирайте слова и переписывайте до тех пор, пока у вас не получится все правильно.
Подумайте об информации &amp;ldquo;размером с укус&amp;rdquo;. Мы назвали себя Biteable не просто так: исследования показали, что информация сохраняется лучше, когда она разбита на небольшие кусочки. Видео - отличный способ обучения, и исследования показывают, что оно на 95% более убедительно, чем текст.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Прошедшая неделя 3</title>
      <link>https://dakhusainova.github.io/ru/post/last-week3/</link>
      <pubDate>Thu, 12 May 2022 00:00:00 +0000</pubDate>
      <guid>https://dakhusainova.github.io/ru/post/last-week3/</guid>
      <description>&lt;h2 id=&#34;описание&#34;&gt;Описание&lt;/h2&gt;
&lt;p&gt;На прошлой неделе я была в Казани, замечательном городе, потому что это мой родной город. А я мучилась над лабораторными работами, смотрела видеоуроки на немецком языке и просто отдыхала.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Прошедшая неделя 9-12 мая</title>
      <link>https://dakhusainova.github.io/ru/post/last-week2/</link>
      <pubDate>Thu, 12 May 2022 00:00:00 +0000</pubDate>
      <guid>https://dakhusainova.github.io/ru/post/last-week2/</guid>
      <description>&lt;h2 id=&#34;описание&#34;&gt;Описание&lt;/h2&gt;
&lt;p&gt;Лучшим днем на этой неделе был первый день, потому что это был День Победы. Мы с братом смотрели парад по телевизору. После этого я отправилась в парк Победы, а потом в центр Казани. В конце дня мы смотрели фейерверк в честь победы.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Что такое Маркдаун?</title>
      <link>https://dakhusainova.github.io/ru/post/markdown/</link>
      <pubDate>Thu, 12 May 2022 00:00:00 +0000</pubDate>
      <guid>https://dakhusainova.github.io/ru/post/markdown/</guid>
      <description>&lt;h2 id=&#34;описание&#34;&gt;Описание&lt;/h2&gt;
&lt;p&gt;Markdown - это облегченный язык разметки, который можно использовать для добавления элементов форматирования в текстовые документы открытого текста. Созданный Джоном Грубером в 2004 году, Markdown в настоящее время является одним из самых популярных языков разметки в мире.&lt;/p&gt;
&lt;p&gt;Использование Markdown отличается от использования редактора WYSIWYG. В таком приложении, как Microsoft Word, вы нажимаете кнопки для форматирования слов и фраз, и изменения видны сразу. Уценка совсем не такая. Когда вы создаете файл в формате Markdown, вы добавляете синтаксис Markdown к тексту, чтобы указать, какие слова и фразы должны выглядеть по-другому.&lt;/p&gt;
&lt;p&gt;Вы можете добавить элементы форматирования Markdown в текстовый файл с помощью приложения текстового редактора. Или вы можете использовать одно из многочисленных приложений Markdown для операционных систем macOS, Windows, Linux, iOS и Android. Существует также несколько веб-приложений, специально разработанных для записи в Markdown.&lt;/p&gt;
&lt;p&gt;В зависимости от используемого приложения вы можете не иметь возможности просматривать отформатированный документ в режиме реального времени. Но это нормально. По словам Грубера, синтаксис Markdown разработан так, чтобы быть читаемым и ненавязчивым, поэтому текст в файлах Markdown можно прочитать, даже если он не отображается.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Прошедшая неделя</title>
      <link>https://dakhusainova.github.io/ru/post/last-week/</link>
      <pubDate>Tue, 03 May 2022 00:00:00 +0000</pubDate>
      <guid>https://dakhusainova.github.io/ru/post/last-week/</guid>
      <description>&lt;h2 id=&#34;описание&#34;&gt;Описание&lt;/h2&gt;
&lt;p&gt;Друзья, прошлая неделя была для меня ужасно трудной. Я потратила ее на лабораторную работу и первый этап индивидуального проекта. К счастью, я все сдала вовремя и ничего не забыла, и это будет случаться со мной еще не раз.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Прошедшая неделя 5</title>
      <link>https://dakhusainova.github.io/ru/post/last-weekst5/</link>
      <pubDate>Tue, 03 May 2022 00:00:00 +0000</pubDate>
      <guid>https://dakhusainova.github.io/ru/post/last-weekst5/</guid>
      <description>&lt;h2 id=&#34;описание&#34;&gt;Описание&lt;/h2&gt;
&lt;p&gt;На прошлой неделе я наконец-то написала главу своей книги, которую не могу никак закончить. Мне нужна мотивация для этого, поэтому я посмотрела много видео на Youtube, которые я бы предпочла не смотреть, потому что там так много дезинформации о том, что происходит в мире.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Управление версиями</title>
      <link>https://dakhusainova.github.io/ru/post/version-control/</link>
      <pubDate>Tue, 03 May 2022 00:00:00 +0000</pubDate>
      <guid>https://dakhusainova.github.io/ru/post/version-control/</guid>
      <description>&lt;h2 id=&#34;управление-версиями&#34;&gt;Управление версиями&lt;/h2&gt;
&lt;p&gt;Системы контроля версий (VCS) используются, когда над одним проектом работают несколько человек. Обычно основное дерево проекта хранится в локальном или удаленном репозитории, доступ к которому настроен для участников проекта. При внесении изменений в содержимое проекта система контроля версий позволяет исправлять их, объединять изменения, внесенные разными участниками проекта, при необходимости выполнять откат к любой более ранней версии проекта.
В классических системах контроля версий используется централизованная модель,
предполагая наличие единого хранилища для хранения файлов. Большинство функций контроля версий выполняются специальным сервером.&lt;/p&gt;
&lt;p&gt;Участник проекта (пользователь)
получает нужную ему версию файлов перед началом работы с помощью определенных команд. После внесения изменений пользователь
помещает новую версию в репозиторий. В то же время предыдущие версии не удаляются
из центрального хранилища, и вы можете вернуться к ним в любое время. Сервер может
не сохранять полную версию измененных файлов, а выполнять так называемое дельта—сжатие - сохранять только изменения между последовательными версиями, которые
уменьшает объем хранимых данных.&lt;/p&gt;
&lt;p&gt;Системы контроля версий поддерживают возможность отслеживания и разрешения
конфликтов, которые могут возникнуть, когда несколько человек работают над одним
файлом. Вы можете объединить (объединить) изменения, внесенные разными участниками (автоматически или вручную), вручную выбрать нужную версию, полностью отменить изменения
или заблокировать файлы для изменения. В зависимости от настроек, блокировка не
позволяет другим пользователям получить рабочую копию или запрещает изменять
рабочую копию файла с помощью файловой системы ОС, предоставляя таким образом
привилегированный доступ только одному пользователю, работающему с файлом.
Системы контроля версий также могут предоставлять дополнительные, более гибкие
функциональные возможности. Например, они могут поддерживать работу с несколькими версиями одного файла, сохраняя общую историю изменений вплоть до разветвления
версий и свои собственные истории изменений каждой ветви. Кроме того, обычно доступна
информация о том, кто из участников, когда и какие изменения были внесены. Обычно такого
рода информация хранится в журнале изменений, доступ к которому может быть ограничен.
В отличие от классических, в распределенных системах управления версиями центральное
хранилище не является обязательным.
Среди классических венчурных капиталистов наиболее известными являются CVS, Subversion, а среди распределенных — Git, Bazaar, Mercurial. Принципы их работы схожи, отличаются они
в основном синтаксисом команд, используемых в работе.&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>
