Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Не корректно отрабатывает try\catch. Как исправить?

Лучший ответ:
Так ты перехватил ошибку, но не выводишь ее.Просмотрел дебагером, исключение генерируется, попадает в блок catch и скрипт продолжает работать (хотя его работа должна прерываться). Не подскажите из-за чего такая штука может происходить?
У тебя еще есть код после try-catch, вот он и выполняется.
UPD. Примерно так должен выглядеть ваш метод<?php
    public function sending(string $event, EmailAddress $recipient, array $tpl = array()): void
    {
        try {
            $this->mailer->addAddress($recipient->email, $recipient->name);
            $this->mailer->Subject = $subject;
            $this->mailer->Body = $body;
            $this->mailer->isHTML(true);
            if (!$this->mailer->send()) {
                throw new EmailSendingFailed("Couldn't send email. Invalid sender address '{$recipient->email}'.");
            }
            return ['status' => 'success'];
            $this->mailer->ClearAddresses();
        } catch (Exception $e) {
            return ['status' => 'error', 'error_message' => $e->getMessage();];
        }
    }
Результат выполнения - массив со статусом, и если есть, с текстом ошибки.

Худший ответ:
Так ты перехватил ошибку, но не выводишь ее.Просмотрел дебагером, исключение генерируется, попадает в блок catch и скрипт продолжает работать (хотя его работа должна прерываться). Не подскажите из-за чего такая штука может происходить?
У тебя еще есть код после try-catch, вот он и выполняется.
UPD. Примерно так должен выглядеть ваш метод<?php
    public function sending(string $event, EmailAddress $recipient, array $tpl = array()): void
    {
        try {
            $this->mailer->addAddress($recipient->email, $recipient->name);
            $this->mailer->Subject = $subject;
            $this->mailer->Body = $body;
            $this->mailer->isHTML(true);
            if (!$this->mailer->send()) {
                throw new EmailSendingFailed("Couldn't send email. Invalid sender address '{$recipient->email}'.");
            }
            return ['status' => 'success'];
            $this->mailer->ClearAddresses();
        } catch (Exception $e) {
            return ['status' => 'error', 'error_message' => $e->getMessage();];
        }
    }
Результат выполнения - массив со статусом, и если есть, с текстом ошибки.
Вопрос: Возьмут ли в мидллы nodejs?

Лучший ответ:
1. Вот вам схема, посмотрите каких скилов у вас не хватает и беритесь за изучение: https://roadmap.sh/backend
2. Конечно же вас никто просто так не возьмет на работу мидлом бэкендером. У вас сейчас другая специальность. Тут может помочь правильное составление резюме, подчеркивание опыта связанного с бэкенд разработкой, всякие разные проекты в этом направлении которые вы можете показать.

Худший ответ:
Теоретически это возможно, но по вашему описанию вы не похожи на мидла.
Посмотрите, какие требования предъявляют мидлу и попытайтесь пройти собеседование.
Вопрос: Как настроить vlan на mikrotik?

Лучший ответ:
В interface vlan у вас будет приходить тегированный трафик на порту, пк у вас отправляет/получает нетегированный трафик, вы либо тегируйте пакеты, либо влан уберите и вешайте напрямую на порт адрес/dhcp

Худший ответ:
Добрый день! 
Вланы нужны для разделения трафика. Незачем создавать один влан на роутер.
Вопрос: Как по лан кабелю подключить приставку как будто напрямую?

Лучший ответ:
 Как бы дублировать подключение к провайдеру?Нет.
Вы можете подключить кабель к роутеру, получить на роутере ваш адрес, и пробросить на приставку или куда там вам нужно соответствующие порты.

Худший ответ:
Узнай какие порты тебе нужны и настрой на роутере проброс портов
www.dlink.ru/ru/faq/246/1156.html
Вопрос: Stepik Всё еще хорош?

Лучший ответ:
Курсы не нужны. Либо вы будете обучаться по учебникам и документации, либо из джунов никогда не выберитесь.

Худший ответ:
А кто удерживает от пробы? Один и тот же курс одним нравится, другим нет.
Всё зависит от преподавателя.
Один из минусов - если не знаешь ответов на задачу, то никогда и не узнаешь.
Вопрос: Как действительно ограничить максимальное время выполнения скрипта PHP?

Лучший ответ:
Для php-fpm есть request_terminate_timeout


The timeout for serving a single request after which the worker process will be killed. This option should be used when the 'max_execution_time' ini option does not stop script execution for some reason. A value of '0' means 'off'. Available units: s(econds)(default), m(inutes), h(ours), or d(ays)
Default Value: 0

Для apache можно глянуть в сторону TimeOut, но я не уверен, что это сработает именно так, как нужно (давно не использовал apache).

Худший ответ:
однако если в процессе выполнения будет вызван, например, file_get_contents, который будет запрашивать url, который отвечает например 100 сек, то при max_execution_time 30 сек, всё равно скрипт будет выполняться 100 сек
тесты в студию)

register_tick_function поможет решить эту абстрактную проблему
Вопрос: Что можно предпринять, если не открывается определенный сайт из сети провайдера?

Лучший ответ:
Адрес keenetic.zendesk.com - это настоящий адрес сервера, на котором хостится сайт help.keenetic.com, о чём и сообщает nslookup. Кстати, если сделать chcp 1250, то nslookup заговорит англицким голоском.

А вот почему этот сайт недоступен именно с вашего адреса - уже сказать намного сложнее, нужно отслеживать всю цепочку. Кстати, в этой цепочке участвуют сервера CloudFlare, может всё из-за них?

Можно попытаться исключить браузеры из проблемы, проверив командой:
telnet help.keenetic.com 80
Если коннект случится, а экран очистится - это уже хорошо, значит физически связь есть. Тогда в пустое окно скопируйте-вставьте следующее:
GET http://help.keenetic.com/ HTTP/1.0
Host: help.keenetic.com
Причём вставлять нужно все 3 строки, две с текстом и одну пустую. Это аналог запроса, который посылают браузеры. Если всё в порядке - появится ответ HTTP-сервера о перенаправлении на адрес https://help.keenetic.com/hc, и следовательно виноват браузер или какой-то прокси-сервер.

А если не в порядке, или коннект просто не начинался - значит где-то трафик режется, нужно искать...

Худший ответ:
Вопрос закрыт. Не знаю что было, но в следствие долговременного отключения электричества после штормов резервного питания не хватило и все сервера ушли в пауерофф. После включения света обнаружил случайно, что доступ ко всем сайтам на zendeske есть. Без понятия что это было, решил отписаться на всякий случай. Вдруг кто искать будет.
Вопрос: Как в Centos 7 подключить модуль WiFi?

Лучший ответ:
Установил на ноутбуке Centos 7.
Но зачем, Карл?! Даже если не касаться того, что на ноутбуках Linux нежизнеспособен, почему вы не поставили хотя бы ту же Ubuntu?
Совет прост - ищите драйвера на свой WiFi-контроллер. Когда не найдёте - поставьте Ubuntu. Если там не заведётся, то поставьте Fedora. Если и там не заведётся, то ставьте нормальную десктопную ОС.

Худший ответ:
Проблему решил!!! Если кому интересно - elrepo.org/tiki/wl-kmod
Вопрос: Не открывается sitemap по ссылке?

Лучший ответ:
Вам бы про Sitemap почитать, чтобы понимать, что к чему.

Худший ответ:
браузер смени
Вопрос: Азы программирования с чего начать?

Лучший ответ:
Изучением как работают поисковые системы, как в них находить нужную информацию.

Информация не просто есть, ее слишком много, поэтому да, сейчас искать сложнее, чем 10-20 лет назад.
Сейчас полно спама, полно текста состоящего из воды.

Поэтому нужно научиться искать, понимать что такое официальная документация, официальный сайт производителя. Отличать сайт развитого портала и сообщества от развлекательного портала.

Потрать на это некоторое время своей жизни, и затем внезапно узнаешь, что ты на почти все вопросы можешь найти уже готовый ответ.

И самое важное - не считай этот ответ издевкой. Это хороший и правильный совет, последовав которому ты действительно сможешь научиться полезному в ИТ как раз из азов.

Худший ответ:
Начните с code-basics, бесплатный проект от создателей хекслета. Судя по всему этот сайт в стоп-листе тостера, поэтому не могу дать прямую ссылку
Вопрос: Побитовые операторы в работе js разработчика?

Лучший ответ:
В 99 случаях из 100 использовать их не придётся. Но на собесе могут спросить (и поступят очень глупо)

Худший ответ:
Посмотри здесь https://learn.javascript.ru/bitwise-operators
Вопрос: Какой мобильный кроссплатформенный фреймворк посоветуете?

Лучший ответ:
Хоть разработчики кроссплатформенного г*%на и будут гореть в аду(кроме разработчиков VSCode), но лучшим вариантом на данный момент является React Native.  Для справки, нынешний Инстаграмм сделан на  React Native. Ближайшим пресоедователем, набирающим обороты является Flutter .
P.S. Всё остальное забудьте как страшный сон!

Худший ответ:
А почему бы просто не сделать PWA?
Вопрос: Есть ли вероятность того что зарядка от ноутбука не может запитать материнку?

Лучший ответ:
Насторожило ноутбук стабильно раз в полгода прочищаю и меняю термо пастуЗапросто при частых разборках могли повредить внутренние шлейфы/разъёмы/платы. Вот оно теперь так и работает случайно - контакт то есть, то нет.

Худший ответ:
К слову, ноутбук стабильно раз в полгода прочищаю и меняю термо пасту. Так вот может ли быть вероятность того что зарядка просто сломалась 
Это как в том анекдоте: 
- Мне так плохо после вчерашнего!
- А что вчера было?
- Выпил две бутылки водки и закусил пирожком.  Наверное пирожок был не свежий.

Я свой ноут первый (и единственный) раз вскрыл через 4 года эксплуотации только потому, что пришлось заменить разъем питания.
Вопрос: При запуске ubuntu открывается консоль, что делать?

Лучший ответ:
Вариант 1: сносить и ставить нормальную ОС.
Вариант 2: пойдём длинным и сложным путём, который всё равно приведёт к варианту 1.
Если выбираете вариант 2, покажите, что выведется при команде:startx

Худший ответ:
Вариант 1: сносить и ставить нормальную ОС.
Вариант 2: пойдём длинным и сложным путём, который всё равно приведёт к варианту 1.
Если выбираете вариант 2, покажите, что выведется при команде:startx
Вопрос: Каким образом я могу сделать систему предустановки конфигурации сайта?

Лучший ответ:
Ну так как исходный код многих CMS открыт, можете его и изучать в качестве наглядного пособия.
Например инсталятор wordpress https://github.com/WordPress/WordPress/blob/master...

Худший ответ:
ну обычно проверяют есть ли фаил конфига. если его нет запускают инсталятор. если он есть запускают цмску

или на оборот проверяют если есть инсталятор то запускают его а если нет то продолжают работу. инсталятор как отработает самоудаляется как бы и система продалжает свою работу

вот кусок из одного фреймворка

if (file_exists('install'.EXT))
{
	// Load the installation check
	return include 'install'.EXT;
}

https://github.com/kohana/kohana/blob/3.3/master/i...
Вопрос: Устаревший сервер терминалов?

Лучший ответ:
Как решить все проблемы с сервером?Пригласить специалиста.
Все проблемы решаемы.

Худший ответ:
Спросить, как с этим справляются люди, считающие, что XP - самая удобная версия винды. Проверить, из какого года пишете. Превозмочь горечь и обновиться.
Вопрос: Что лучше: LibreOffice или Microsoft Office?

Лучший ответ:
если для себя, то пофигу.
если надо шарить, то МО.

Худший ответ:
Добрый день.
Если вопрос денег не обсуждаем, но не исключаем, то посмотрите в сторону Office 365 - Персональный или Для Дома. Полноценный локальный офис, 1 Тб хранилки и другие плюшки. Оплата каждый месяц или год.
Если денег тратить не хотите, то Google Doc с расшариванием через pdf, думаю, Вам подойдёт. Да, проблемы с совместимостью будет, но тут, что в приоритете - деньги или удобство.
Вопрос: Как химику переучиться на одну из digital- профессий?

Лучший ответ:
1. Нужно ли высшее профильное образование или достаточно моего технического?
Достаточно никакого. Я серьёзно. Какие курсы или ВУЗы можете рекомендовать? 
Лично я вот противник курсов. Читайте книги или ищите персонального репетитора.Читая сайт, в основном складывается ощущение, что, раз мне почти 33, то пора уже обзаводиться вставной челюстью и идти в вахтеры. А я еще и женского пола, так что вообще туши свет.
Замануха для студентиков. Не встречал ни одного действительно профессионального программиста младше 25. Работаю с хорошим профи 42-х лет. На подхвате айтишница 36-ти. Девушек в IT не то, чтобы не любят, их там почти нет, вот и всё.Если начать работу на фрилансе, то реально потом устроиться в офис 
Фрилансеров неохотно берут в офис, а биржа фрилансеров переполнена вайтишниками.
Я бы советовал другое направление.
Чем IT-химия не устраивает? Есть же направления в этой сфере.

Худший ответ:
Учите лучше английский, это проще и шансов больше. Оставайтесь  в химии.
Вопрос: Как оптимизация скорости загрузки при большом весе html?

Лучший ответ:
html меню занимает 400 кбДля SEO - придумали sitemap в xml-формате!
Чтобы вот подобного, как раз, не было...

Худший ответ:
Используйте перелинковку на внутренних страницах, если у вас будет сквозной блок с таким большим количеством ссылок, это будет совсем не на пользу SEO, а абсолютно наоборот.
Вопрос: Как правильно делать планирование проекта?

Лучший ответ:
У меня уйдет 5 часов , у новичка 10 часов, а у профи 1 час..
Это решается размером часовой ставки. По вашему примеру у вас ставка должна быть в 2 раза выше чем у новичка и в 5 раз меньше чем у профи.

Мне кажется не правильно давать оценку - относительно того времени сколько я собираюсь потратить.
Бывает фиксированная цена и почасовая оплата. Что вам ближе - выбирать вам.
В любом случае обычно делается примерная оценка по времени.

Худший ответ:
Мне кажется не правильно давать оценку - относительно того времени сколько я собираюсь потратить 

Очень даже правильно. 
Так как верстаю я очень быстро , это же не значит, что я должен брать копейки за верстку .
нет, но если вы верстаете быстро и можете сделать за час то что новичок делает 5, значит ваша оценка - 1 час, стоимость - (стоимость новичка х5)

Профи платят больше не потому что они дольше работают :) 
А потому что их оплата (время х стоимость) в итоге будет дешевле. 1час*$100 это выгоднее, чем 10 часов * $20.

В офисе , знаю , была какая-то формула 
Теперь вы сами за себя в ответе, придумывайте свою. для начала - оцените свое время в час, и умножайте оценку на время которое вы это будете делать. 

Чтобы оценить свое время - берете "сколько я хочу зарабатывать в неделю" и делите на "сколько я часов в неделю хочу работать". В неделю - потому что это удобнее всего. 
Если с этой цифрой у вас достаточно заказов - цифра адекватная (или ниже чем могла быть)
Вопрос: Какой лучше выбрать php-(микро)фреймворк для SPA?

Лучший ответ:
Laravel в тренде. Простой и полно материалов. Ну или Lumen (кастрированный Laravel).

Худший ответ:
Взгляните ещё на pipes https://github.com/jamierumbelow/pipes
Вопрос: Какой дистрибутив Linux выбрать для front-end?

Лучший ответ:
Собираюсь попробовать использовать линукс под фронт енд разработку.
Зачем? Есть серьезная причина или просто "что-то в #опе зачесалось..." ?

Это существенное изменение инструментария. Например gimp вместо фото#опы.
Это существенное изменение приемов работы - в любом DE (если только уже не используете кроссплатформенные инструменты) все не так 

В линухе концепция другая - принципиально. 

Поставьте VB, подымите в нем бубунту например - как самый "виндообразный" дистриб - и посмотрите, как оно.

Худший ответ:
Собираюсь попробовать использовать линукс под фронт енд разработку.
Зачем?

какой пак программ
Сперва выбираете удобные программы, потом ОС в которых они работают.
Выбирать ОС для разработки фронтенда это немного неправильно.
Фронтент ведь работает не в ОС, а в браузере. Поэтому не так важна ОС, как ваш личный комфорт при работе с паком программ.
Вопрос: Как убрать рекламу с ютуб на телевизоре?

Лучший ответ:
поставить стороннее приложение youtube. Условный Youtube Vanced

Худший ответ:
Да, можно. Разрешаю.
Вопрос: В чем превосходство Intel Nuc над самосбором Mini-ITX?

Лучший ответ:
NUC он же гораздо компактнее, чем mini-ITX. Он размером с пятидюймовый DVD-ROM. А mini-ITX уже размером с игровую приставку где-то

Худший ответ:
На прошлой работе юзали нюки, за три года проблем с ними не было.
Зависит от нагрузки которая будет на этом серваке, может и малинка/оранж справится?
Вопрос: Белый список разрешенных веб-адресов по маске подсети?

Лучший ответ:
Никак. В мак оси для этого нет штатных инструментов.  И скорее всего даже в его штатном брандмауэре такого нет.  И да,  это заведомо провальная затея, блочить по ip адресам. Роскомпозору чтобы это понять понадобилось без малого 2 года. Надеюсь вам столько не понадобится

Худший ответ:
личный днс для ребенка настроить сможете ?
накатить локальную копию bind, которая бы ресолвила как вам надо

https://habr.com/ru/post/177649/
Как перенаправить все запросы на один адрес?

нужную подсеть оформите как зону для которой allow-transfer для внешнего ресолва
zone "128.10.in-addr.arpa" {  ... allow-transfer ... }
Вопрос: Как объединить React с Django Rest Framework?

Лучший ответ:
то-то слышал про GET, POST, но не знаю как начать и с чего.
Вот с этого и начните, почитайте про HTTP

Худший ответ:
то-то слышал про GET, POST, но не знаю как начать и с чего.
Вот с этого и начните, почитайте про HTTP
Вопрос: Python для системного администратора, сколько?

Лучший ответ:
Знание python будет огромным плюсом, особенно если двигаться в сторону DevOps . Многие инструменты для DevOps либо написаны с использованием python , либо могут расширяться модулями написанными на python ну и вообще - знаний мало не бывает и python - это хорошее и полезное знание.

Худший ответ:
тыц и тыц.
Вопрос: Как «разместить» компьютер из дочерней подсети в основной, чтобы его видели остальные устройства?

Лучший ответ:
никак. И не репитер это у Вас. Репитер, это когда без всяких назначений ip адресов и прочего, который просто после подключения к себе передаёт данные вышестоящему роутеру и тот уже даёт адреса и прочее.
Сейчас я так понимаю у Вас, например, на Archer адресация 192.168.0.1-254 , а при подключении к DIR-620 скажем 192.168.1.0-254 (да хоть такая же сеть что у Archer, всё равно они друг от друга будут изолированы).
С DIR-620 Вы сможете увидеть устройства из сети Archer'а, а вот устройства сети Archer'а не смогут увидеть сеть что даёт DIR-620.
Настройте DIR-620 в режим репитера (повторителя), для этого никакого на нём шифрования быть не должно, вот тут такая проблема описывается, тогда устройства через DIR-620 подключатся и получат IP от Archer'а и тогда все, кто на Archere'е смогут видеть тех, кто за DIR-620 находится, естественно надо разрешить доступ в фаерволе у устройств, что будут за DIR-620.

Худший ответ:
Что за режим рипитера такой? Переведите dir-620 в режим точки доступа и отключите на нём dhcp, все должно заработать
Вопрос: Набор ЯП для автотестирования?

Лучший ответ:
Тут такое дело: приходите вы, допустим, на проект тестировщиком, а там все тесты уже написаны на spock + groovy + cucumber и фронт еще каким-нибудь jest-ом тестируют. Выбор, получается, уже сделали до вас.

Худший ответ:
Дело вкуса конечно, я автоматизировал и на питоне и на джаве, и на питоне. 
Но на питоне мне автоматизировать больше нравится, ну у плюс в питоне много всякого сахара, который сильно упрощает написание тестов и делает их более лаконичными.
Вопрос: Как отключить отображение ошибок?

Лучший ответ:
так скрипт не выполняется вообще из-за Parse error, поэтому и отключение ошибок не выполняется.

это нужно отключать в php.ini.

Худший ответ:
На хостинге если есть доступ к php.ini или в виде опции. А лучше исправь ошибку, лишние скобки убери.
Вопрос: Telnet: Unable to connect to remote host: Connection timed out?

Лучший ответ:
Скорее всего провайдер блокирует всевозможные smtp порты, 25, 465, 587. Что бы клиенты не спамили, обратитесь в службу техподдержки, после выяснения с вами причин, и объяснения зачем это вам - они вам откроют, убедившись что вы не будущий спамер...

Худший ответ:
А что за странный порт такой? smtps? А с чего Вы взяли, что его кто-то слушает? Как правило, шифрованное соединение идет по тому  же 25-му порту и наччинается командой STARTTLS, от практики слушать отдельные порты, где уже поднято шифрованное соединение, по-моему давно отказались.

UPD: Проверка шифрованного соединения делается через openssl s_client
Вопрос: Как взять values из объекта?

Лучший ответ:
Object.entries(obj).filter(n => Number.isInteger(+n[0])).map(n => n[1]).join(';')
или

Object.keys(obj).reduce((acc, n) => (`${+n}` === n && acc.push(obj[n]), acc), []).join(';')
или

Array.from(obj).join(';')

или

JSON.stringify(obj).match(/(?<="\d+":").*?(?=")/g).join(';')

Худший ответ:
как то это массив очень напоминает
var obj = { 
  0: "А",
  1: "Б",
  2: "В",
  length: 3
};
может сразу сделать 
const array = ["А", "Б", "В"];
console.log(array.join(';')); // А;Б;В
Вопрос: Почему меняется размер шрифта на маленьком экране?

Лучший ответ:
Нет мета тега
https://developer.mozilla.org/ru/docs/Mozilla/Mobi...

Худший ответ:
Попробуйте прописать<meta name="viewport" content="width=1034">
Вопрос: Pure script это тот же typescript?

Лучший ответ:
TypeScript - это надмножество JavaScript призванное привнести статическую типизацию сохраняя обратную совместимость (любой JS есть валидный TS)
PureScript - это диалект Haskell созданный специально, как язык компилируемый в JavaScript.
Общее лишь в том, что оба компилируются в JS.  В остальном - абсолютно разные языки.
Ну и TS - main-stream, знать его сегодня норма для любого frontend или node.js разработчика, а PureScript нишевое решение с небольшим количеством сторонников (в англоязычном телеграм канале 12 участников и 100+ в русскоязычном, это говорит за себя)

Худший ответ:
 сюда
Вопрос: Почему indexOf сначала видит подстроку в строке, а затем не видит?

Лучший ответ:
Потому что в аргументы нужно совать что искать, а не в чем, во втором случае вы ищете 'sto re ' в строке 'sto '

Худший ответ:
У вас в аргументе метода indexOf передается то, чего нет в строке относительно которой вызывается метод.

Вот так вернее.
console.log('sto '.indexOf('sto ')); // 0 - true

console.log('sto re '.indexOf('sto ')); // 0 - true
Вопрос: Где граница между Джуном и Мидлом?

Лучший ответ:
Эти категории очень условны, соответственно и чёткой границы нет. Сеньор из одной компании может быть едва мидлом в другой, и наоборот. Определить уровень зрелости программиста может только другой программист, существенно превосходящий его опытом.

Худший ответ:
Мой вариант ответа: 
Надо посмотреть его вопросы и ответы на Тостере!
И сколько процентов решений.
Например, 10% решений — значит джун, если набрал 25% , значит мидл и т.д. :)
Вопрос: Возможно ли скрутить 3 кабеля витой пары?

Лучший ответ:
Вот так можно - при помощи трансформатора


Худший ответ:
Как вариант в качестве эксперимента просто скрутить все провода по цветам, обжим везде одинаковый)))
Вопрос: Что лучше для работы с файлами QT или C#?

Лучший ответ:
Возможно, использованы высокоуровневые функции без понимания того, как они реализованы на низком уровне.
Например, если программа на Qt читает файл кусками, отображая в память только то, что читает сейчас, а программа на Шарпе вычитывает весь файл в память и только потом начинает по нему искать - вполне возможна шестикратная разница даже при совершенно идентичной реализации алгоритма собственно поиска.

Худший ответ:
Исходя из постановки вопроса, на 99% уверен в корявой реализации алгритма поиска на обоих языках. Рекомендую погуглить про алгоритм поиска подстрок методом Кнута-Морриса-Пратта. Чем больше искомая строка, тем быстрее будет выполняться поиск (зависит от содержимог оподстроки, но в общем быстрее).
Вопрос: Есть ли такой университет?

Лучший ответ:
Через дорогу от университета, в котором изучают Excel.

Худший ответ:
Гуглите Computer Science