Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как настроить сеть на mokrotik?

Лучший ответ:
Отдайте админу, он разберётся.

Худший ответ:
PoE - это ток и данные. Это обычный сетевой кабель, просто с одного конца на нём висит PoE-инжектор или PoE-свитч/роутер, которые посылает ему дополнительные 18 (или сколько там) вольт. И всё, никакого волшебства.

PoE in - куда вставляем кабель PoE, чтобы устройство питалось от него. Если устройство питается от сети из розетки, то вставлять туда ничего не надо.
PoE Out - питание для потребителя на другом конце провода, на Микроте это жёлтый порт. Вот эту белую хреновину в него втыкайте.
На девайсе вижу PoE Out - это если вы задумете от этого же источника запитать ещё одно PoE-устройство.
Вопрос: Для чего объявлять (создавать) имена полей в начале класса если они же по сути объявляются (создаются) в конструкторе?

Лучший ответ:
чтобы в редакторе кода, когда вы набираете 
$object->|
он мог вам подсказать какие свойства есть у объекта.
чтобы явно указать видимость свойств (например, протектед)
чтобы потом не искать какие свойства есть у объекта через год, шарясь по всем его методам.
чтобы у вас не отвалилось все к чертям, если вы перепишите конструктор в классе-потомке.

Худший ответ:
Зачем мыть руки перед едой, ведь и из грязных ложка не выпадет?
Пхп - язык с плохой наследственностью. И эта "возможность" - один из рудиментов оставшихся с тех времён, когда язык писался в памперсы.
Но на самом деле все переменные надо объявлять перед использованием
Вопрос: Где дешевле всего продлевать домен в зоне RU?

Лучший ответ:
Посмотрите список официальных (аккредитованных) регистраторов:
https://cctld.ru/domains/reg/

У всех разные цены регистрации и продления, особенно любят прятать цену продления. Но среди них есть лоукостеры без сюрпризов.

Худший ответ:
Это у многих регистраторов,  первичная плата копейки а за продление уже конская цена идет. Так что копеечного продления вы не найдете.
Вопрос: Существуют ли программы для Windows чтобы проверить папку с файлами на вредоносный код?

Лучший ответ:
Не надо путать бэкдоры и трояны, работающие на сайте, и десктопные вирусы.
Это две не пересекающиеся сферы, и проверки на них разные.

Первая сильно размыта, поскольку один и тот же код может быть как штатным файл-менеджером, так и скриптом, внедренным для заливки файлов злоумышленником.

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

Худший ответ:
Решение: проверять каждый файл вручную!
Вопрос: Почему именно такое отношение между классами ( Trip has Airplane)?

Лучший ответ:
Да все эти задания "на ООП" c высосанными из пальца иерархиями наследования, как ты выразился, "конченные". Не задумывайся, нет там логики, автор никогда не писал реальный код.

Худший ответ:
Очевидно, тут имеется в виду жизнь аэропорта в динамике. То есть не заполнить его данными и замолкнуть, а вести вылеты-прилёты, сажать пассажиров в самолёты и т.д.
Trip — это маршрут, и в одном самолёте могут ехать несколько маршрутов (например, с посадками, или рейс вообще чартерный и несколько турагентств заполняют самолёт).
Вопрос: Пожалуйста, проведите код ревью, норм, не норм?

Лучший ответ:
Если кратко — главное чтобы работало, в вашем случае. 

Если чуть развёрнуто:

Функция в функции плохо. Выносите. 
Весь код в контроллере тоже плохо. Выносите в калькуляторы, сервисы, репозитории.
Используйте camelCase в переменных.
Посмотрите в документации как правильно получать через консоль пользовательские данные (input)
Некоторые комментарии излишние и некоторые названия не логичны. Уберите лишние комментарии и поработайте над неймингом.

Это основные моменты. Тут стоит опираться не на код, а на Ваши знания. Вам не хватает знаний и стоит погрузиться в тему рефакторинга, ООП, чистый код и т.д. 

Ваш код — результат Ваших знаний. 

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

Описание метода денормализации данных
Вопрос: Как посчитать вероятность того, что конкретная подстрока встретится во всей строке только 1 раз?

Лучший ответ:
Тут надо построить конечный автомат, который принимает строки, которые кончаются на заданную строку. Посмотрите эту статью, там в начале расписан этот автомат (секции перфикс функция - атомат КМП).

Только там все вероятности перехода одинаковые, у вас же они заданы для каждой буквы.

Вот построили вы автомат. Теперь задача состоит в том, чтобы найти вероятность, что случайный путь в этом автомате длины n пройдет через конечное состояние ровно один раз. Для этого подсчитайте 2 вероятности: что путь из начала длины k дойдет до конечного состояния один раз, и что путь из конечного состояния длины n-k не вернется в него. 

Обе эти вероятности можно подсчитать динамическим программированием:
P1(i, k) - вероятность того, что путь начиная с состояния i (i < n) за k шагов дойдет до состояния n  первый раз. Это просто сумма по всем возможным переходам: 

P1(i, k) = sum_{c - все символы} P1(next(i, c), k-1) * p(c)
База:
P1(m, 0) = 1
P1(m, k>0) = 0
P1(i < m, 0) = 0

Вторая вероятность: сделать k шаговиз состояния i и ни разу не войти в конечное состояние:
P2(i, k) = sum_{c - все символы, next(i,c) < m} P2(next(i, c), k-1) * p(c)

База:
P1(i, 0) = 1

Ответ к задаче - сумма по всем возможным длинам первой части пути:
sum_{k=m..n} P1(0, k) * P2(m, n-k)

Это решение через динамическое программирование будет O(n*m) по вермени и по памяти.

Замкнутой формулы, как в задаче в моей статье я тут не вижу. Может, если бы вероятности всех символов были бы одинаковы, то что-то можно было бы сократить.

Худший ответ:
Могу рассмотреть только случай когда ВСЕ буквы в подстроке различны. Это означает, что подстроки гарантированно не перекрываются. Т.е. невозможен случай слова "РАКОКОКШЫ" и подстроки "КОК"

Пусть Pw(x) = p1*p2*p3*p4*p5*...*pM — вероятность, что с позиции номер x начинается подстрока длины M, где pi — вероятность каждой конкретной буквы в подстроке (на своём месте). Все Pw(x) равны от x = 1 до x = N-M+1 (для больших x подстрока просто не уместится до конца слова по длине). Однако условная вероятность Pw(y) = 0, если подстрока действительно начинается в позиции x, и при этом позиция y отстоит от x менее чем на M (подстроки не перекрываются).

Пусть ^Pw(x) = (1 - Pw(x)) — вероятность НЕ встреть подстроку, начинающуюся с позиции x.

Тогда вероятность, что подстрока начинается в позиции 1 и больше нигде не встречается:
Pw(1) * [ ^Pw(M+1) *  ^Pw(M+2) * ... ^Pw(N-M+1) ]= Pw * (N-2M+2) * ^Pw

для 2-й позиции:
^Pw(1) * Pw(2) * [ (N-2M+1) * ^Pw ], что то же самое, что и для первой позиции, просто множитель ^Pw перекочевал из скобок [ ] вперёд.

аналогично для i-ой позиции:
^Pw * (i-1) * [ Pw(i) * (N-2M+3-i) * ^Pw ] = Pw * ^Pw * (N-2M+2)

Теперь просуммируем эту вероятность для всех позиций от 1 до N-M+1

P = Pw*^Pw*(N-2M+2)*(N-M+1),

но для случая N < 2M всё ещё проще (дважды подстрока в слове просто не поместится при всём желании):

P = Pw*(N-M+1)

Если же подстроки могут перекрываться, то там возникают сложные условные вероятности (корреляции) и вообще мутота начинается.
Вопрос: Как сделать так, чтобы ключи в объекте шли по очереди даже после удаления?

Лучший ответ:
Есть такая штука - массив называется. Попробуйте как-нибудь.

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

Лучший ответ:
Выбираю из Ubuntu, Windows server 2008, Debian.
Нужно будет запускать win приложения - meta trader 4.
Ну так выбор очевиден: Windows Server.
Не совсем понятно, какого рода сомнения вас терзают.

Худший ответ:
Выбираю из Ubuntu, Windows server 2008, Debian.
Beg your pardon, captain? Разве там поддерживается линух? Там только винда.  Под линухом в вайне работает ооооочень ограниченный набор программ (нормально, чтобы пользоваться)
Вопрос: Сможете ли Вы с нуля написать свой MVC движок?

Лучший ответ:
Всё зависит от ваших целей. Для чего вам изучать MVC, создание движков и PHP в целом?

Сейчас почти никто не пишет с нуля свои движки, а используют фреймворки либо готовые CMS системы.
Если вы понимаете в теории как работает движок то думаю этого достаточно, лучше использовать это время для изучения фреймворка Yii2 / Laravel / Symfony на выбор.

Худший ответ:
Каждый, когда то да и писал свой, свой! фреймворк, помню помню, было было)
Вопрос: Структуры и классы в чем разница?

Лучший ответ:
Структуры - совместимость с языком Си. В С++ структуры и классы эквивалентны, кроме доступа по умолчанию.

Худший ответ:
Структуры - совместимость с языком Си. В С++ структуры и классы эквивалентны, кроме доступа по умолчанию.
Вопрос: Можно ли создать комментари в виде txt файла в Java?

Лучший ответ:
Аннотации - это информация либо для компилятора, либо для виртуальной машины. Первому на комментарии плевать, во время работы второй комментариев вообще нет.

Худший ответ:
Во-первых, это не комментарий, а JavaDoc.
Во-вторых вы можете написать столько текста, сколько желаете.
В-третьих, вы можете добавить ссылку на внешний ресурс, где будет ваш текст
В-четвертых, аннотации это не комментарии...
Вопрос: Каким знаниями должен обладать разработчик blockchain?

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

Худший ответ:
если 
как писать контракты на ethereum
у вас не копипаст с SO - Вы уже много знаете

надо знать основные фреймворки, их до десятка

как правило, из языков это Go или еще веселее  - Rust / c++

все знать ессно не получится

поэтому берете тему и вникаете
Вопрос: Индивидуальный дата центр?

Лучший ответ:
Как вы сами написали - это дорого! Объяснять почему, долго и нудно, да и боюсь, на данном этапе не поймете. Просто почитайте гост на структурированные кабельные системы, а потом поговорим дальше. Поэтому ваши вопросы и удаляют.
Это из разряда, как сделать самолет в гараже и его сертифицировать.

Худший ответ:
Сделать цод Tier 3 из гаража? Я надеюсь с заявкой в Uptime Institute и сертификатом? Если взлетит - дайте знать. Реально интересно как такое возможно, знакомому покажу как цоды делать надо
Вопрос: Как ускорить kali linux?

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

Худший ответ:
Попробуй своп (запись части данных на диск) отключить.
Вопрос: От чего зависит скорость проверки антивируса?

Лучший ответ:
От чего зависит скорость проверки антивируса?От многих факторов.Частота  процессора и количество ядер. и его загруженность другими задачами.Размер, скорость и количество доступной оперативной памяти.Скорость работы диска и текущая нагрузка на диск.Методика и алгоритм проверки файлов антивирусом. - например будет ли он распаковывать архивы и проверять файлы в них.Тип файлов проверяемых антивирусом.И еще куча факторов.
 /ul>До этого была старая железка с 2005 года, каспер проверял 1тб день, а то и два, ну очень долго.Так диск медленный, в него будет упираться скорость. накопителя.

Худший ответ:
от скорости интернета
подключи к 10гбитному каналу, желательно в США, заценишь ))
Вопрос: Как правильно составить план самообучения?

Лучший ответ:
1. Гуглить по тостеру никого не учили видимо, опять
2. Выбирай что хочешь - перспективны не технологии, а люди с головой, не задающие таких вопросов
3. Люди, идущие в IT за деньгами не зарабатывают
4. Нет универсальных или проверенных тропинок - пробуй, набивай шишки и учись на них. Будут конкретные затычки в процессе - задавай тут, не стесняйся

Худший ответ:
Не тратьте время на составление плана. Если в ходе обучения, каких то знаний будет не хватать, подтянете при необходимости. Вообщем не парьтесь и делайте.
Вопрос: React native или swift что выбрать веб-разработчику для перехода на ios?

Лучший ответ:
Думаю все зависит от направления и требования. Если вы собираетесь писать например банковское ПО, то вам точно в swift. если же нужна быстрота разработки под несколько платформ то вам в react native. Влиться в react-native после react js намного проще чем в swift. Ну как ни крути производительность в swift будет выше чем на react native, но это не означает что вы будете ждать отрисовку часами. Это значит что будут подтормаживания. Многие заказчики готовы жертвовать небольшой производительностью ради продукта на двух системах так что без работы не останетесь.

Худший ответ:
React Native мне кажется идеальным для приложений по типу "хочу сайт, только чтобы в App Store и Google Play". Как правило таким приложениям не нужно глубокое внедрение в нативное АПИ и не нужна сложная анимация.
Если есть знания и опыт работы в React, то смело пробуйте React Native, довольно быстро освоитесь. Если понравится и возникнет желание сделать что-то покруче, то двигайтесь в сторону Swift.
Вопрос: Как сделать чтобы блоки не красились при наложении?

Лучший ответ:
Не использовать прозрачность.

Худший ответ:
Сделать вот так https://jsfiddle.net/hwvgdton/
Для гладкости подберите точки перехода градиента.
И, наверное, вам понадобится pointer-events

div {
  position: relative;
}
div::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: linear-gradient(to left top, transparent calc(50% - 51px), gray calc(50% - 50px), gray calc(50% + 50px), transparent calc(50% + 51px)),
  linear-gradient(to right top, transparent calc(50% - 51px), gray calc(50% - 50px), gray calc(50% + 50px), transparent calc(50% + 51px));
  opacity: 0.7;
}
Вопрос: Программа для создание компьютерной сети?

Лучший ответ:
Cisco Paсket Tracer.
Лучшая в этой области.

Худший ответ:
OpenVpn - создает виртуальную сеть.
Вопрос: Как стать олимпиадником с нуля?

Лучший ответ:
Вы не понимаете сути олимпиад, олимпиады это не "ОЛОЛО, Я ЩАС КИНУ ЗАДАЧУ НА ТОСТЕР, ТАМ РЕШАТ". На олимпиаде вы столкнетесь с профессиональными, дистиллированными задротами из самого нижнего уровня ада преисподней, которые активно писали код с того момента, как смогли дотянуться до клавиатуры.

Нам дают задачу развернуть лист - мы смеемся. Написать софтварный 3d рендер, интерпретатор с собственным мини-языком программирования - мы смеемся и просим еще. 

Самодельный архиватор, бутсектор, чекдиск,  2D платформер - мы бездушно напишем что угодно, лишь бы посмеяться в лицо серой массе, не отличающей O(1) от O(n log n)

Олимпиада призвана как раз найти таких самородков среди серой массы "обычных" мальчиков и девочек, которым все это задротство за компом - до лампочки.

Без внутреннего мотиватора добраться до уровня талантливого соперника (который придет, не сомневайтесь) невозможно.

Худший ответ:
Хочу попасть в Москву во ВШЭ,
Удачи.

Просто решайте и всё. Вопрос под удаление.
Вопрос: В какой город лучше ехать учиться и работать js разработчиком Новосибирск или Екатеринбург?

Лучший ответ:
учиться самому. ехать куда душа и возможности позволяют.

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

Лучший ответ:
Можно теоретически снизить пинг на треть
Известно, что скорость света в оптоволокне 0,69с (с - скорость света)
Кроме того оптоволокно как правило проложено не по кратчайшему расстоянию, 
Хотя на участке между Москвой и Питером оптика зарыта вдоль ЖД, которую Николай I рисовал линейкой, так что много тут выиграть не получится

Итак нам нужен радиоканал. Во первых скорость в воздухе близка к с
а во вторых так мы получим минимальное расстояние по кратчайшему пути

Единственный момент - нам нужно учесть кривизну земли. 
У Unifi есть такая клевая утилита https://link.ui.com
с помощью нее вычисляем высоту на которой нужно установить радиопередающие устройства:


Оказывается чтобы снизить пинг на треть достаточно построить в Москве и Хельсинки радиовышки высотой в 15500 метров. Впрочем, на первое время, можно обойтись аэростатами.

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

Худший ответ:
распределенные сервера с геоднс.
и сервера ya.ru находятся очень близко к запрашивающему адресу.
яндекс умеет огромное комерческое яндекс-облако, так что он несомненно имеет большое количество серверов в разных геоточках страны и шарика.
Вопрос: Анонимен ли TOR?

Лучший ответ:
На вопрос невозможно дать однозначный ответ.
Тру-параноик не верит даже почтовым голубям.
Для либеральных каментов на Йэху его секурности хватит с головой.

Худший ответ:
Нет не анонимен. 
Поищите в сети кучу видосов, как ломается ТОР (достаточно быть владельцем ноды) и то как быстро вычисляют людей в нем.
Вопрос: Прокомментируйте код в python 3?

Лучший ответ:
Прокомментируйте код
Говно.

Худший ответ:
Датасатанисты делают это так:
Вопрос: В чем смысл данного порядка цветов обжима RJ-45 (роутер-компьютер) и правилен ли он?

Лучший ответ:
Провайдер нанимает с улицы кого попало по объявлению - штукатуров, электриков, зоотехников, но никак не техников по сетям  

Если делать подключение с нарушением стандарта, сигнал вместо дифференциальной пары (зеленой) попадет фиг знает куда (половина в зеленую, половина в синюю), что приведет к плохому качеству соединения.

Если вы хотите, чтобы  в дальнейшем не возникало вопросов, сделайте с обоих сторон стандартный обжим T568B.

Худший ответ:
 Кабель устанавливал работник провайдера вместе с установкой роутера
Я так понимаю, вы роутером называете тот бытовой девайс, который сочетает в себе маршрутизатор+коммутатор+точку доступа?
В этом случае на самом деле компьютер втыкается в коммутатор и обратный обжим не нужен. 
Но если бы даже был нужен - сейчас большинство устройств умеют автоматом определять тип обжима и включать нужный режим.
Вопрос: Как получить yii\web\Application Object(Yii:$app) frontend из backend в yii2?

Лучший ответ:
Yii:$app->controller получает текущий контроллер. Не важно где вы находитесь. Скорее всего вы имели ввиду роутинг между frontend и backend. 
Что бы во frontend иметь возможность формировать ссылки на контроллеры backend необходимо вo frontend добавить новый urlManager
В \progect\frontend\config\main.php добавьте следующий компонент'urlManagerBackend' => [
            'class' => 'yii\web\urlManager',
            'baseUrl' => 'http://yoursitedomain.ru',
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => require(__DIR__ . '../backend/routes.php'),
        ],
После это вы можете легко создавать ссылки на backend из frontend используя второй менеджерYii::$app->urlManagerBackend->createUrl(['controller/action', 'parametr1' => 'value1']),
Обратите внимание что правила роутинга вынесены в отдельный файл т.к. эти правила будут использоваться как в urlManager backend, так и в urlManagerBackend во frontend. Это избавляет нас от дублирования. 
Аналогичным образом вы сможете настроить формирование ссылок на frontend из backend
Если вам нужно именно получить все роуты в системе, то можно посмотреть как это реализовано популярном в расширении RBAC

Худший ответ:
Вы явно что то делаете не так... В принципе ситуация, когда из одного контроллера нужно дёргать другой - это нарушение архитектуры. А данные получаются через модели. Если модель используется только во frontend или backend, то она должна лежать в соответствующем каталоге. Если это общая модель, то используйте common.
Вопрос: Как организовать обращение к API с задержкой?

Лучший ответ:
Во первых используйте много проксей
Во вторых что вам мешает делать тупо sleep 2
Чтобы подождать две секунды

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

Лучший ответ:
для этого существуют авторизация и права доступа.

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

Лучший ответ:
Вот именно поэтому на собеседованиях у кандидатов я спрашиваю про их  pet-projects. Если их нет, то ему программирование не интересно. До свидания.

Худший ответ:
Открой для себя два сайта
Хх ру и гитхабком
Вопрос: Как распаковать файл .bin?

Лучший ответ:
из каментовfullunpack --keep "C:\alldata\alldata.bin" zlib nY/RHn+XH8T77 64
zlib это кодек
nY/RHn+XH8T77 это sid
64 это длина ключа
пока что валимся на кодеке, за все остальное не известно VS крутой инструмент, в дебагере оказалось легко заметить, что кодаков всего два. точнее 3 варианта параметра zlib, zstd, zstandard, но 2 из них синонимы
правильная строка параметров fullunpack --keep "C:\alldata\alldata.bin" zstd nY/RHn+XH8T77 64
но на этом мытарства не заканчиваются, библиотека кодека zstandard.net кросс платформенная, но использует сторонние бинарные libzstd.dll, которые различны для x86 и x64, по этому копируются в выходной каталог приложения в подпапки. надо скопировать нужную (по разрядности операционки) в выходной каталог приложения пришлось.. еще немного поскрипеть мозгами и погуглить, что бы разгадать этот ребуси последний вопрос - вам в паблик выложить начинку? или свяжтесь в личке? ))ps если не свяжетесь в течении 5-10 минут, здесь и выложу время вышло
вот ваш контент https://1drv.ms/u/s!AiSqqnKTCEDNkYdFZT0Pv-YnGbLTpQ...что требовалосьчто бы собрать с нуля самостоятельно
- установить VS2019 Community
- выбрать рабочую нагрузку .Net Core
- в "отдельных компонентах" поставить галочку ".Net Core 2.2 runtime"
- форкнуть проект по ссылке прямо в студии
- сменить режим просмотра с "папки" на "решение" (автор проекта работает в VS Code)
- в диспетчере пакетов Nuget, освежить пакеты (когда предлагает обновления, лучше этого не делать)
- в параметрах проекта, на вкладке Debug, ввести корректную строку параметров
- собрать приложение
- скопировать нужную libzstd.dll в выходной каталог
- запустить и получить содержимое бинарника
но не имея опыта общения со студией и коркой, все это не так уж и очевидно

Худший ответ:
Судя по вашему описанию это файл с исходным кодом, а не какой-то архив.
Что вы надеетесь увидеть после "распаковки"?
Вопрос: Создание онлайн компилятора?

Лучший ответ:
Если знаешь как компилировать из терминала — exec(). Другой вопрос как ты защитишься от выполнения вредоносного кода на сервере, а это тебе точно будет не по силам.

Худший ответ:
Например вот это: https://github.com/mattgodbolt/compiler-explorer
Ну и сам проект онлайн: https://godbolt.org/
К слову, большая часть профессиональных C++ разработчиков пользуются этим инструментом.
Вопрос: Стоит ли возвращаться в профессию?

Лучший ответ:
Лучше отталкиваться от рынка труда в вашем городе. Изучить вакансии, требования. 
Многое встанет на свои места.
Я бы не стал учиться программированию. 
Программист - кропотливая работа, её нужно с горящими глазами осваивать, потом немного по инерции учишься.
Тут главное желание, мне кажется если бы был реальный интерес, то такой вопрос бы и не возник... 
Может быть лучше тестировщиком?

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

Лучший ответ:
Как может меняться активный класс, если вы нигде его не меняете?
snippet

Худший ответ:
убери класс активности в верстке и добавляй/убирай его динамически, тогда все будет ок

или же можешь оставить его и пользоваться методом toggle()