This media is not supported in your browser
VIEW IN TELEGRAM
#Где_то_за_кадром
Как обучают нейронные сети?
Примерно так же, как и детей, но называется этот процесс красивым словосочетанием "машинное обучение". По факту, искусственному интеллекту дают множество почти однотипных входных данных с пояснением что из этого что.
Например, чтобы научить нейросеть находить кошку на фотографии, необходимо дать ей множество разнообразных картинок с кошками и говорить, где что изображено (аля это - животное, а это - подушка). Причем если изображений будет мало, то неройсеть обучится на троечку и работать будет как алкоголик дядя Вася - видеть черных кошек там, где их нет.
Как обучают нейронные сети?
Примерно так же, как и детей, но называется этот процесс красивым словосочетанием "машинное обучение". По факту, искусственному интеллекту дают множество почти однотипных входных данных с пояснением что из этого что.
Например, чтобы научить нейросеть находить кошку на фотографии, необходимо дать ей множество разнообразных картинок с кошками и говорить, где что изображено (аля это - животное, а это - подушка). Причем если изображений будет мало, то неройсеть обучится на троечку и работать будет как алкоголик дядя Вася - видеть черных кошек там, где их нет.
This media is not supported in your browser
VIEW IN TELEGRAM
#Do_you_understand
Баг - злейший враг всех разработчиков. Переводится с английского как "ошибка" или "жук". И то, и то довольно малоприятное явление.
Под багом разработчики чаще всего подразумевают функциональность, которая работает не так, как хотелось бы. Например, ты заказываешь дорогой ирландский кофе, а тебе приносят дешманский зеленый чай в пакетике. Больно, неприятно, не вкусно.
Для достаточно забавных ошибок у программистов есть крылатая фраза - "не баг, а так и было задумано".
Баг - злейший враг всех разработчиков. Переводится с английского как "ошибка" или "жук". И то, и то довольно малоприятное явление.
Под багом разработчики чаще всего подразумевают функциональность, которая работает не так, как хотелось бы. Например, ты заказываешь дорогой ирландский кофе, а тебе приносят дешманский зеленый чай в пакетике. Больно, неприятно, не вкусно.
Для достаточно забавных ошибок у программистов есть крылатая фраза - "не баг, а так и было задумано".
Я уже достаточно долгое время рассказываю тебе интересные факты из мира IT, однако до сих пор мы не коснулись основны основ - языков разработки. Это вопиющее недоразумение, которое я буду исправлять в нашей новой рубрике.
#Вавилон_нашей_эры - пожалуй, единственный, сложный (но не слишком) тэг на канале. Он попробует рассказать тебе о различных языках программирования, их сильных и не очень сторонах, а также кто это придумал и нафига. Ну и объяснить вот эти все локальные шуточки, которыми программисты подначивают носителей других языков.
#Вавилон_нашей_эры - пожалуй, единственный, сложный (но не слишком) тэг на канале. Он попробует рассказать тебе о различных языках программирования, их сильных и не очень сторонах, а также кто это придумал и нафига. Ну и объяснить вот эти все локальные шуточки, которыми программисты подначивают носителей других языков.
#Вавилон_нашей_эры
Естественные языки - это те, на которых мы говорим. Русский, английский, китайский и т.д. Естественными обычно их называют только в IT. В программировании они не используются по нескольким причинам:
- слишком много всевозможных конструкций
- неоднозначность толкования
- постоянное изменение языка
Например, как объяснить машине значение фразы: "За песчаной косой косой косой косой косой косой косил прокос"? Да даже тебе наверняка с первого раза сложно это воспринять.
Однако естественные языки могут использоваться при обучении новичков программированию.
Естественные языки - это те, на которых мы говорим. Русский, английский, китайский и т.д. Естественными обычно их называют только в IT. В программировании они не используются по нескольким причинам:
- слишком много всевозможных конструкций
- неоднозначность толкования
- постоянное изменение языка
Например, как объяснить машине значение фразы: "За песчаной косой косой косой косой косой косой косил прокос"? Да даже тебе наверняка с первого раза сложно это воспринять.
Однако естественные языки могут использоваться при обучении новичков программированию.
#Фантастические_твари_и_кем_они_работают
Помнишь статью про системного администратора? Я там рассказывала на кого похож среднестатический представитель данной профессии. Однако статистика и реальная жизнь не всегда совместимые понятия, поэтому иногда системный администратор выполняет не совсем "свои" функции.
Во многих малых и средних компаниях сисадмин планирует развитие и модернизацию оснащения. Грубо говоря - "Компьютер модели А устареет через полгода, поэтому мы часть техники заменим на модель B, а другую часть отдадим туда, где это не критично. А еще необходимо усовершенстовать информационную безопасность, поэтому через два месяца приобретем модель Г". Хотя, по-хорошему, это уже задача менеджеров.
Помнишь статью про системного администратора? Я там рассказывала на кого похож среднестатический представитель данной профессии. Однако статистика и реальная жизнь не всегда совместимые понятия, поэтому иногда системный администратор выполняет не совсем "свои" функции.
Во многих малых и средних компаниях сисадмин планирует развитие и модернизацию оснащения. Грубо говоря - "Компьютер модели А устареет через полгода, поэтому мы часть техники заменим на модель B, а другую часть отдадим туда, где это не критично. А еще необходимо усовершенстовать информационную безопасность, поэтому через два месяца приобретем модель Г". Хотя, по-хорошему, это уже задача менеджеров.
#Где_то_за_кадром
Что было раньше: провайдеры или Интернет? Ты даже не представляешь как сложно ответить на этот вопрос.
Глубоко на дне океана, где обитает Спанч Боб, лежат оптоволоконные кабели, по которым передают 99% всех международных интернет-данных. И владеют этим баснословно дорогим удовольствием крупнейшие провайдеры первого уровня. Их меньше 10 и именно на них держится весь Интернет.
Все остальные провайдеры закупают трафик и продают нам с тобой, конечным потребителем. Например, Ростелеком - провайдер второго уровня, национального. А совсем уж мелкие провайдеры, которые работают в масштабах одного региона, называются провайдерами третьего уровня.
Что было раньше: провайдеры или Интернет? Ты даже не представляешь как сложно ответить на этот вопрос.
Глубоко на дне океана, где обитает Спанч Боб, лежат оптоволоконные кабели, по которым передают 99% всех международных интернет-данных. И владеют этим баснословно дорогим удовольствием крупнейшие провайдеры первого уровня. Их меньше 10 и именно на них держится весь Интернет.
Все остальные провайдеры закупают трафик и продают нам с тобой, конечным потребителем. Например, Ростелеком - провайдер второго уровня, национального. А совсем уж мелкие провайдеры, которые работают в масштабах одного региона, называются провайдерами третьего уровня.
#Респонс_на_реквест
После выхода вчерашнего поста о провайдерах один из подписчиков задал вопрос - а не проще ли напрямую пользователям покупать трафик у провайдеров первого уровня? Так сказать без посредников, наценок и прочих прелестей капитализма.
К сожалению - нет. И тому есть две причины:
1. Провайдеры первого уровня в принципе не продают трафик конечным потребителям.
2. Трафик продается оптом, т.е. малый объем будет стоить дороже. А ты вряд ли захочешь скупать даже десятую часть всего мирового трафика ради котиков в Интернете.
После выхода вчерашнего поста о провайдерах один из подписчиков задал вопрос - а не проще ли напрямую пользователям покупать трафик у провайдеров первого уровня? Так сказать без посредников, наценок и прочих прелестей капитализма.
К сожалению - нет. И тому есть две причины:
1. Провайдеры первого уровня в принципе не продают трафик конечным потребителям.
2. Трафик продается оптом, т.е. малый объем будет стоить дороже. А ты вряд ли захочешь скупать даже десятую часть всего мирового трафика ради котиков в Интернете.
#Do_you_understand
Когда-то давно я чуть не завалила собеседование на свою первую работу в качестве программиста. Суровый, бородатый разработчик с десятилетним опытом за плечами спросил меня о том, какой паттерн мой любимый.
Достаточно стандартный вопрос, но я почему-то была к нему совсем не готова. Точнее из головы вылетело даже определение паттерна. Ну и дабы ты не повторял моих ошибок, рассказываю: паттерн программирования - это шаблоны, согласно которым пишут код.
Например, если тебя забросило в строительство, то без чертежа будет трудновато построить что-то крепкое и надежное. Причем для средневекового замка и для загородного коттеджа чертежи будут абсолютно разные, со своей спецификой. Так и тут.
Когда-то давно я чуть не завалила собеседование на свою первую работу в качестве программиста. Суровый, бородатый разработчик с десятилетним опытом за плечами спросил меня о том, какой паттерн мой любимый.
Достаточно стандартный вопрос, но я почему-то была к нему совсем не готова. Точнее из головы вылетело даже определение паттерна. Ну и дабы ты не повторял моих ошибок, рассказываю: паттерн программирования - это шаблоны, согласно которым пишут код.
Например, если тебя забросило в строительство, то без чертежа будет трудновато построить что-то крепкое и надежное. Причем для средневекового замка и для загородного коттеджа чертежи будут абсолютно разные, со своей спецификой. Так и тут.
#Будь_как_все
Чем отличается искусственный интелект от "естественного"? Это настолько сложный вопрос, что стоит в одном ряду с проблемами Гамлета "быть или не быть". Ответа как такового, естественно нет, но попытки предложить решение есть. Одна из самых известных - тест Тьюринга.
Этот метод был предложен еще в прошлом веке, но до сих пор широко используется. Суть такая - человек (судья этого соревнования) общается с двумя невидимыми собеседниками, например, в чате. Один из них - живой человек, а второй - искусственный интеллект. Судья может задавать любые вопросы, но их количество ограничено. Если по итогу он не сможет отличить машину от человека - значит тест пройден.
Чем отличается искусственный интелект от "естественного"? Это настолько сложный вопрос, что стоит в одном ряду с проблемами Гамлета "быть или не быть". Ответа как такового, естественно нет, но попытки предложить решение есть. Одна из самых известных - тест Тьюринга.
Этот метод был предложен еще в прошлом веке, но до сих пор широко используется. Суть такая - человек (судья этого соревнования) общается с двумя невидимыми собеседниками, например, в чате. Один из них - живой человек, а второй - искусственный интеллект. Судья может задавать любые вопросы, но их количество ограничено. Если по итогу он не сможет отличить машину от человека - значит тест пройден.
#Вавилон_нашей_эры
Машинный код - это самые простейшие инструкции, которые может самостоятельно выполнить процессор компьютера. Их количество ограничено, как правило, можно выполнить следующие операции:
- поместить что-то в память
- извлечь что-то из памяти
- арифметические операции
- логические операции
На этом все) Код выглядит как на картинке - очень интересно и ничего не понятно. Непосредственно на таком, кхем, языке, разработчики не пишут, но все программы автоматически "транслируются" в машинный код, чтобы начать работу.
Машинный код - это самые простейшие инструкции, которые может самостоятельно выполнить процессор компьютера. Их количество ограничено, как правило, можно выполнить следующие операции:
- поместить что-то в память
- извлечь что-то из памяти
- арифметические операции
- логические операции
На этом все) Код выглядит как на картинке - очень интересно и ничего не понятно. Непосредственно на таком, кхем, языке, разработчики не пишут, но все программы автоматически "транслируются" в машинный код, чтобы начать работу.
#Будь_как_все
TMTOWTDI - еще один известный IT принцип. Аббревиатура читается как «Тим Тоуди», хотя некоторые пытаются произносить это прямо как есть. Ну, удачи им. В расшифровке принцип звучит как «There’s More Than One Way To Do It», в переводе на великий могучий - «Есть больше одного способа сделать это». Если ты понимаешь, о чем я. 😏
Суть TMTOWTDI в том, что любой алгоритм, каким бы простым или сложным он не был, можно синтаксически написать разными способами.
В качестве простого примера можно рассмотреть две фразы: «Котик убежден, что миска всегда полна еды» и «Пушистый котяра уверен, что в любой момент найдет что-то съестное в миске». Они абсолютно одинаковы по смыслу и построению, но при этом синтаксически разные.
TMTOWTDI - еще один известный IT принцип. Аббревиатура читается как «Тим Тоуди», хотя некоторые пытаются произносить это прямо как есть. Ну, удачи им. В расшифровке принцип звучит как «There’s More Than One Way To Do It», в переводе на великий могучий - «Есть больше одного способа сделать это». Если ты понимаешь, о чем я. 😏
Суть TMTOWTDI в том, что любой алгоритм, каким бы простым или сложным он не был, можно синтаксически написать разными способами.
В качестве простого примера можно рассмотреть две фразы: «Котик убежден, что миска всегда полна еды» и «Пушистый котяра уверен, что в любой момент найдет что-то съестное в миске». Они абсолютно одинаковы по смыслу и построению, но при этом синтаксически разные.
#Вавилон_нашей_эры
Компилируемый язык программирования - это язык, который преобразуется в машинный код.
Т.е. по окончании разработки на этом языке, чтобы посмотреть что все-так получилось, программист запускает компилятор - специальную программу, которая берет все созданные файлы, и переводит написанное в инструкции машинного кода. Результат этого перевода сохраняется в отдельный файл. А уже потом он передается операционной системе на исполнение.
Я предпочитаю компилируемые языки, потому что они позволяют создавать более быстрые и компактные программы
Компилируемый язык программирования - это язык, который преобразуется в машинный код.
Т.е. по окончании разработки на этом языке, чтобы посмотреть что все-так получилось, программист запускает компилятор - специальную программу, которая берет все созданные файлы, и переводит написанное в инструкции машинного кода. Результат этого перевода сохраняется в отдельный файл. А уже потом он передается операционной системе на исполнение.
Я предпочитаю компилируемые языки, потому что они позволяют создавать более быстрые и компактные программы
#Где_то_за_кадром
Давай немножко отвлечемся от сложностей языков программирования и поговорим на любопытную тему - как работает беспроводная зарядка.
В общем-то все просто - передаем по воздуху ток. Мечта Теслы и Фарадея сбылась. С физической точки зрения оно выглядит так: в смартфоне (или что ты там заряжаешь) и зарядке стоят две маленькие индукционные катушки. Когда зарядка включается в сеть, она становится передатчиком - вокруг образуется магнитное поле. При попадании в него катушка внутри смартфона становится приемником и преобразовывает энергию поля в электричество. Вот и вся магия XXI века.
Давай немножко отвлечемся от сложностей языков программирования и поговорим на любопытную тему - как работает беспроводная зарядка.
В общем-то все просто - передаем по воздуху ток. Мечта Теслы и Фарадея сбылась. С физической точки зрения оно выглядит так: в смартфоне (или что ты там заряжаешь) и зарядке стоят две маленькие индукционные катушки. Когда зарядка включается в сеть, она становится передатчиком - вокруг образуется магнитное поле. При попадании в него катушка внутри смартфона становится приемником и преобразовывает энергию поля в электричество. Вот и вся магия XXI века.
Do_you_understand
Ревертнуть равносильно откату изменений. Помнишь, я недавно рассказывала про сленг, который подарила нам система контроля версий gIt?
Название произошло от команды "revert", которая в переводе обозначает "повернуть назад". В двух словах работает следующим образом: ты выбираешь какие изменения необходимо сбросить, и git создает новые изменения, которые нивелируют старые.
Возможно, последнее предложение было слегка запутанным, поэтому на примере: пусть было 4 + 5 = 9. В качестве операции для реверта ты выбираешь операцию сложения. Тогда git сделает следующую операцию: 9 - 5 = 4.
P.S. Если что, "ally" с картинки - это "союзник".
Ревертнуть равносильно откату изменений. Помнишь, я недавно рассказывала про сленг, который подарила нам система контроля версий gIt?
Название произошло от команды "revert", которая в переводе обозначает "повернуть назад". В двух словах работает следующим образом: ты выбираешь какие изменения необходимо сбросить, и git создает новые изменения, которые нивелируют старые.
Возможно, последнее предложение было слегка запутанным, поэтому на примере: пусть было 4 + 5 = 9. В качестве операции для реверта ты выбираешь операцию сложения. Тогда git сделает следующую операцию: 9 - 5 = 4.
P.S. Если что, "ally" с картинки - это "союзник".
#Do_you_understand
Экстраполяция - очень крутая математическая штука, которая применяется во множестве алгоритмов. Ее суть заключается в том, чтобы обобщить выводы исследования какой-то части множества на все множество.
Например, мы уверены, что все кошки мурлычут. Но никто из людей же не проверял абсолютно всех представителей кошачьих на умение издавать мурчащие звуки? Это и есть экстраполяция - мы точно знаем, что те коты, которых мы встречали, способны мурлыкать, ну и обобщаем это представление на всех усатых.
P.S. Единственное, стоит помнить, что экстраполировать всегда надо аккуратно. Иначе получится как на картинке.
Экстраполяция - очень крутая математическая штука, которая применяется во множестве алгоритмов. Ее суть заключается в том, чтобы обобщить выводы исследования какой-то части множества на все множество.
Например, мы уверены, что все кошки мурлычут. Но никто из людей же не проверял абсолютно всех представителей кошачьих на умение издавать мурчащие звуки? Это и есть экстраполяция - мы точно знаем, что те коты, которых мы встречали, способны мурлыкать, ну и обобщаем это представление на всех усатых.
P.S. Единственное, стоит помнить, что экстраполировать всегда надо аккуратно. Иначе получится как на картинке.
#Респонс_на_реквест
У меня тут недавно был пост про необходимость диплома для программиста, где я упомянула, что военные и IT - это крайне интересный симбиоз. Ну и естественно, меня спросили "почему?".
Итак, чтобы любой технологии попасть на вооружение в вооруженные силы ей необходимо пройти сертификацию, попасть под требования всех ГОСТов и принятых нормативных актов. Собственно, это камень преткновения.
Во-первых, проведение такой сертификации - процесс долгий (от года) и дорогой. А во-вторых, тестировать все новые технологии подряд явно никто не будет - денег нет, так что держитесь. Поэтому, если технология вдруг зародилась не в военном НИИ, а на "гражданке", то до ее появления в вооруженных силах могут пройти десятилетия.
У меня тут недавно был пост про необходимость диплома для программиста, где я упомянула, что военные и IT - это крайне интересный симбиоз. Ну и естественно, меня спросили "почему?".
Итак, чтобы любой технологии попасть на вооружение в вооруженные силы ей необходимо пройти сертификацию, попасть под требования всех ГОСТов и принятых нормативных актов. Собственно, это камень преткновения.
Во-первых, проведение такой сертификации - процесс долгий (от года) и дорогой. А во-вторых, тестировать все новые технологии подряд явно никто не будет - денег нет, так что держитесь. Поэтому, если технология вдруг зародилась не в военном НИИ, а на "гражданке", то до ее появления в вооруженных силах могут пройти десятилетия.
#Вавилон_нашей_эры
Вчера я рассказывала про компилируемые языки, а сегодня поговорим о их дополнениях, противоположностях и главных конкурентах - интерпретируемых языках.
Код, созданный на таких языках, отдается на исполнение интерпретатору. Это специальная программа, которая переводит файлы в машинный код прямо во время исполнения.
Т.е. если в случае с компилированным языком сначала идет перевод, а потом отдельной командной выполнение написанной программы, то для интерпретируемого языка перевод идет прямо в момент выполнения. И это довольно сильно сказывается на скорости.
Вчера я рассказывала про компилируемые языки, а сегодня поговорим о их дополнениях, противоположностях и главных конкурентах - интерпретируемых языках.
Код, созданный на таких языках, отдается на исполнение интерпретатору. Это специальная программа, которая переводит файлы в машинный код прямо во время исполнения.
Т.е. если в случае с компилированным языком сначала идет перевод, а потом отдельной командной выполнение написанной программы, то для интерпретируемого языка перевод идет прямо в момент выполнения. И это довольно сильно сказывается на скорости.
#Фантастические_твари_и_кем_они_работают
У нас когда-то был опрос на тему того, о какой айтишной профессии вы хотите узнать. О системном администраторе я уже рассказала и вроде как обещала написать о втором победителе - архитекторе. Жми на 👍, если все еще ждешь статью об этой профессии и я опубликую ее вечером в воскресенье.
У нас когда-то был опрос на тему того, о какой айтишной профессии вы хотите узнать. О системном администраторе я уже рассказала и вроде как обещала написать о втором победителе - архитекторе. Жми на 👍, если все еще ждешь статью об этой профессии и я опубликую ее вечером в воскресенье.
#Где_то_за_кадром
Кто из нас не копировал файлы в Windows? В начале процесса копирования тебе пишут, что до конца осталось 3 минуты, а через 3 минуты сообщают, что надо подождать еще 10. Почему так происходит?
Представь, что человек считает от 0 до 100, а тебе надо угадать, сколько времени это займет. Перед началом счета навскидку ты называешь число. Когда человек начинает считать медленнее или быстрее - тебе приходится менять оценку в меньшую или большую сторону, но предугадать это с самого начала невозможно.
Так и при копировании. В самом начале алгоритм просто играет в угадайку. Система знает сколько файлов ей надо скопировать, но она не знает насколько загружена память, как быстро ответит диск, какое качество у Интернет-соединения.
Кто из нас не копировал файлы в Windows? В начале процесса копирования тебе пишут, что до конца осталось 3 минуты, а через 3 минуты сообщают, что надо подождать еще 10. Почему так происходит?
Представь, что человек считает от 0 до 100, а тебе надо угадать, сколько времени это займет. Перед началом счета навскидку ты называешь число. Когда человек начинает считать медленнее или быстрее - тебе приходится менять оценку в меньшую или большую сторону, но предугадать это с самого начала невозможно.
Так и при копировании. В самом начале алгоритм просто играет в угадайку. Система знает сколько файлов ей надо скопировать, но она не знает насколько загружена память, как быстро ответит диск, какое качество у Интернет-соединения.
#Будь_как_все
Парадокс лжеца - любопытное противоречие, формулировка которого звучит как "Я лгу". Да и это все. Просто, кратко, лаконично, в лучших традициях Чехова.
Но давай подумаем над истинностью этой фразы. Если человек врет, когда произносит "Я лгу", то он говорит правду. А если человек говорит правду, когда произносит "Я лгу", то он врет.
Впервые этот парадокс появился у древних греков. Эпименид утверждал, что все критяне лжецы, но сам был родом с острова Крит. Сейчас это противоречие является частью теоретической информатики.
Парадокс лжеца - любопытное противоречие, формулировка которого звучит как "Я лгу". Да и это все. Просто, кратко, лаконично, в лучших традициях Чехова.
Но давай подумаем над истинностью этой фразы. Если человек врет, когда произносит "Я лгу", то он говорит правду. А если человек говорит правду, когда произносит "Я лгу", то он врет.
Впервые этот парадокс появился у древних греков. Эпименид утверждал, что все критяне лжецы, но сам был родом с острова Крит. Сейчас это противоречие является частью теоретической информатики.
#Do_you_understand
Рекурсия - это первое понятие, с которым знакомят первокурсников любого технического вуза. В программировании оно обозначает вызов функцией самой себя.
Давай приведу пример из жизни, чтобы было понятно - рекурсия появится, если включить web-камеру компьютера и навести ее на экран этого же компьютера. Камера записывает изображение экрана и передает его на экран, где снова записывает и снова передает, и т.д.
Рекурсия - это первое понятие, с которым знакомят первокурсников любого технического вуза. В программировании оно обозначает вызов функцией самой себя.
Давай приведу пример из жизни, чтобы было понятно - рекурсия появится, если включить web-камеру компьютера и навести ее на экран этого же компьютера. Камера записывает изображение экрана и передает его на экран, где снова записывает и снова передает, и т.д.