# Информационные технологии (ИТ)

**Методические указания и тесты по модулям — в списке файлов выше.**

[Репозиторий для выполнения лабораторных работ](http://uit.mpei.ru/git/main/it-labs)

[Дополнительные материалы к лабораторным работам](http://uit.mpei.ru/git/main/it/metod)

[Программа экзамена.](exam.docx)

[Материалы 2021 года](https://github.com/uii-mpei/study/tree/master/courses/it), слайды могут быть полезны.

## Материалы к лекциям

### Язык и среда R

<https://www.r-project.org>

* [Кто за всех решил, что python удобен для «гражданской» аналитики?](https://habr.com/ru/articles/670250/)
* [Важно ли DS аналитику знать про software development?](https://habr.com/ru/articles/690080/)
* [Как R облегчает мою жизнь разработчика](https://habr.com/ru/companies/yandex/articles/873308/)

### Форматы данных

* «Абсолютный минимум, который каждый разработчик программного обеспечения
обязательно должен знать о Unicode и наборах символов»
([оригинал][joel-en], [перевод][joel-ru]).

* Текстовые форматы:
    * CSV, TSV (Comma/Tab-Separated Values)
    * JSON (JavaScript Object Notation)
    * XML (eXtensible Markup Language)

[joel-en]: https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses/
[joel-ru]: http://web.archive.org/web/20170619210306/http://local.joelonsoftware.com/wiki/%D0%90%D0%B1%D1%81%D0%BE%D0%BB%D1%8E%D1%82%D0%BD%D1%8B%D0%B9_%D0%9C%D0%B8%D0%BD%D0%B8%D0%BC%D1%83%D0%BC,_%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B9_%D0%9A%D0%B0%D0%B6%D0%B4%D1%8B%D0%B9_%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA_%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%9E%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D1%8F_%D0%9E%D0%B1%D1%8F%D0%B7%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE_%D0%94%D0%BE%D0%BB%D0%B6%D0%B5%D0%BD_%D0%97%D0%BD%D0%B0%D1%82%D1%8C_%D0%BE_Unicode_%D0%B8_%D0%9D%D0%B0%D0%B1%D0%BE%D1%80%D0%B0%D1%85_%D0%A1%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D0%BE%D0%B2

* Языки описания интерфейсов (interface description language, IDL):

    * [ASN.1](https://www.itu.int/en/ITU-T/asn1/Pages/introduction.aspx)
    * [Protocol Buffers (язык)](https://protobuf.dev/)
    * [Kaitai Struct](https://kaitai.io/)

* Бинарные форматы:
    * ASN.1 BER ([цикл статей](https://habr.com/ru/articles/150757/) на «Хабре»)
    * [Protocol Buffers (кодировка)](https://protobuf.dev/programming-guides/encoding/)
    * [HDF5](https://support.hdfgroup.org/documentation/)

* Случай из практики: [описание проприетарного формата в Kaitai Struct][evrista]
    (см. объяснение в документации проекта по ссылке).

* Случай из практики: [предложения по оптимизации модели данных][p4] (со слайда 16).
    Существующая структура сообщений Protocol Buffers создавала значительные накладные расходы.
    Переход к передаче данных, сгруппированных по атрибутам вместо сущностей, резко снизил их.

[evrista]: https://github.com/PlushBeaver/evrista/blob/master/evrista.ksy
[p4]: https://opennetworking.org/wp-content/uploads/2022/05/Alan-Lo-and-Milind-Chabbi-Final-Slide-Deck-1.pdf?page=16

### Сети

* [Материалы](http://uit.mpei.ru/study/courses/int/) дисциплины по сетям и сетевому программированию, там же — еще ссылки.

* [Сети для самых маленьких](https://linkmeup.gitbook.io/sdsm/2.-switching/00-teoriya/05-put-paketa) (часть 2, разделы «OSI», «Путь пакета»)

* [Мир, в котором IPv6 придуман хорошо](https://habr.com/ru/articles/340626/):
    статья, в которой простым языком объясняют логику создания сетевых протоколов,
    и из которой видно, как инертна модернизация в сетях.

### Карьера в ИТ

* [Don't Call Yourself A Programmer](https://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/)
