Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Doctrine — структура БД для хранения документов, и участников документооборота?

Лучший ответ:
Задача не сложная. Но вы сами себя запутали. Методик вы не найдёте. Вам надо научиться анализировать происходящий у вас бизнес-процесс и разделять его на алгоритм и контекст. Решать эту задачу за вас было бы неправильно, поэтому вот вам советы:
1. Выкиньте из документа все признаки, отвечающие за согласование.
2. Введите новую сущность Согласование.
3. Свяжите Документ с сущностью Согласование единственной ссылкой. Так вы очистите документ от ненужной ему информации. Ссылка должна храниться на стороне Согласования (Owning Side Relation), но на стороне Документа должна быть возможность получить сущность Согласования (Inverse Side Relation).
4. Если я правильно понял, то ваш документ может быть согласован по трём разным алгоритмам. Если это так, то воспользуйтесь возможностью доктрины Class Table Inheritance. Вы получите одну связь со стороны документа, но разные алгоритмы аппрува со стороны Согласования.
5. В каждом из Согласований реализуйте метод isApproved со своей логикой.
6. После такого разделения вы сможете строить алгоритмы, привязываясь к каждому типу Согласований по отдельности, не обращая внимание на другие.

Худший ответ:
Приветствую! Мне в течение последнего года доводилось делать три похожих проекта документооборота. Хотелось бы поделиться со своим решением, как я организовал структуру таблиц (они же и сущности в доктрин).Первое:
У моих проектов было несколько маршрутов согласования. Поэтому я хранил их отдельно. И называл их workflow (бизнес процесс)Workflow: (Маршрут согласования)
    id
    name (Название маршрута согласования)
WorkflowPoint: (Точка согласования)
    id
    title (Название точки. Например "Согласование фин директора")
    workflow_id (Связанный маршрут)
    user_id (Пользователь, который рассматривает документ в этой точке согласования)
    order_id (Порядковый номер точки в маршруте)
    roles (Права пользователя, в данной точке согласования)Второе:
В моих проектов в одном документе согласования могли храниться несколько файловых вложении. Поэтому Файл и Документ согласования хранились отдельно.Approval: (Документ согласования)
    id
    title (Название документа)
    author_id (Инициатор)
    state = 0 (Состояние документа. 0 - черновик. 1 - в процессе согласования. 2 - одобрено. 3 - отказано. 4 - архивировано)
    workflow_id (Маршрут, по которому движется данный документ. По умолчанию null, кроме того, когда состояние документа в процессе согласования)
    workflow_point_id (Текущая точка согласования в маршруте. При одобрении, указывается следующая точка)
    approval_user_id (Пользователь, который должен рассмотреть документ в текущий момент. Это поле чисто для удобства в поиске)
Attachment: (Файл-вложение)
    id
    approval_id (Связанный документ)
    file_path (Путь к файлу)
    author_id (Пользователь, который вложил файл)
Я значительно упростил структуру, чтобы просто дать Вам идею для размышления. В реальных проектах было гораздо сложнее
Вопрос: Как заставить работать связку WEBDAV + ЯндексДиск + Windows 7?

Лучший ответ:
Решена проблема!
Оказывается в личном кабинете стояла галочка "Отдельные пароли для приложений".
Галочка сама ставится если включить двухфакторную авторизацию на яндексе. После выключения двухфакторной авторизации галочка Отдельные пароли для приложений остается включенной.

Худший ответ:
в Windows webdav сделан не по стандарту. отличаются формат определенных команд, мож изза этого ??
ставил по офф.рекомендациям - все воркает на ура.
https://yandex.ru/support/disk/webdav/webdav-win.h...
Вопрос: Как сверстать hover для нестандартных форм?

Лучший ответ:
Попробуйте использовать SVG

Худший ответ:
попробуйте jquery.maphilight.js
Вопрос: Какой выбрать ноутбук для работы с графикой?

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

Худший ответ:
Ваша проблема в действительности заключена в том, что ноут принципиально проектируется для работы от батареи, т.е. при ограниченном энергопотреблении. Поэтому процессоры в нём всегда слабее, чем на настольных компах - просто для экономного расходования этой самой электроэнергии.
Если найдёте ноут с процом, в названии которого не будет слова "mobile" или буквы М - это и будет ваш выбор. Но заранее смиритесь с временем работы от батареи 1...1,5 часа максимум.
Вопрос: Можно ли так сверстать?

Лучший ответ:
flexbox если ie10+
либо 
display: table > display: table-cell 
и, если память не изменяет, у фиолетового блока width: 100%

Худший ответ:
В дополнение к тому, что предложил Андрей Хохлов есть еще древний способ, которым такую хрень делали еще на шестых осликах.parent-block {
  display:inline-block;width:100%; /* или другой клирфикс*/
}
.gray-block {
  white-space: nowrap;
  float: right;
}
.purple-block {
  overflow: hidden;
}
Вопрос: Как сделать composer install внутри docker контейнера?

Лучший ответ:
COPY ./%относительный путь от Dockerfile%/composer.json /www/composer.json
RUN composer install --prefer-source --no-interaction

Худший ответ:
Чтобы composer не ругался на root/super user, нужно установить переменную окруженияENV COMPOSER_ALLOW_SUPERUSER 1
https://getcomposer.org/doc/03-cli.md#composer-all...
Вопрос: Почему гугл не отображает картинки в письме?

Лучший ответ:
1. Base64 — не как положено. Оптимально — собирать письмо на сервере и ссылки делать на тот же сервер. Или CDN, но это уже так.
2. Верстка писем — ад, который почти никак не связан с обычной версткой) Хочешь меньше мучений — MailChimp в помощь.

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

Лучший ответ:
 Берётся сначала анализатор исполняемых файлов. Там нужно посмотреть, защищён ли бинарник каким-то алгоритмом, запакован ли, зашифрован?Если защищён, то нужно снять защиту. Для этого нужно знать реверс-инжиниринг и тонкости работы операционной системы. Обычно, защиты снимаются в модифицированных виртуальных машинах. Ну, или руками ковырять можно, но это очень долго. После снятия защиты, нужно расчехлять дизассемблер, отладчик, можно, опять же, пропатчить виртуалку под свои требования. По опыту скажу, что реверс и эталонная реализация простой библиотеки АПИ с 4-5 сотнями функций занимает около двух месяцев, в зависимости от опыта. Если опыта нет, можно и на полгода засесть.Ещё один важный момент: игра может детектить доступ с неоригинального клиента и банить. Банить может как просто аккаунт, так и по идентификатору железа вашего компьютера, т.е. второй аккаунт с этого железа вы уже не создадите. Это САМЫЙ сложный этап, на котором фейлятся даже мировые лидеры ботостроения. Здесь одному в принципе нереально ничего сделать. Здесь сотни человек работают, и несмотря на это бывают фейлы, как у известного бота для WoW, у которого была упущена пара байт в протоколе, которые с виду ничего не значили (всегда передавался ноль), а потом, как оказалось, это было замедленной защитой, которая внезапно "включилась" в следующем обновлении, и 50 тысяч пользователей получили баны. Ну и, наконец, игра может содержать античит. Они обычно реализуются в виде ядерного драйвера. Соответственно, нужно знать принципы работы ядра операционной системы. 
Грубо говоря, если вы задаёте подобные вопросы, у вас опыта нет вообще. Поэтому, если интересно, учите реверсинг, ассемблер, операционные системы. Годика должно хватить для понимания. А потом, уже зависит от того, насколько хорошо усвоили, насколько работает логика, решение нестандартных ситуаций. В игры уровня WoW одному можно даже не соваться. А что-то поменьше за 2-3 года можно раскурить, в свободное от работы время.

Худший ответ:
с постановки задачи и формулирования ТЗ
Вопрос: Можно ли сделать сайт под ключ на cms не зная backend?

Лучший ответ:
Хорошо знаю frontend
Уверены?но сейчас сложно на фрилансе найти заказы чисто по frontend(у).
На upwork по одному только React более 1800 результатов.

Худший ответ:
Wordpress - для простых сайтиков
Opencart - для магазинов
Вопрос: Можно ли ограничеть скорость в домашних условиях?

Лучший ответ:
ftp.dlink.ru/pub/ADSL/DSL-2640U/Description/DSL-26... в вашей модели не предусмотрено. В более новых есть.

Худший ответ:
есть приложение на android arcai.com netcut, с моим тплинком работает, может и с вашим будет работать
Вопрос: Нужен ли антивирус и фаервол?

Лучший ответ:
Начиная с Windows 7 использую только встроенный антивирус.
Файервол кроме штатного тоже никогда не использовал, ибо штатный достаточно хорош.Он такой же фиговый как и брэндмауэр (омг откуда они только слово то такое взяли...)? Вот уж не знаю откуда вы такое слово взяли А у майкрософта используется нормальное слово - брандмауэр, или в переводе на английский - firewall.Вообще фаервол он нужен? Или не особо? Кому как. А нужен ли он вам, это у вас спросить надо. Мы то откуда знаем что вам нужно?

Худший ответ:
На личном ПК анвирь вообще имхо мало нужен https://habrahabr.ru/post/101971/
отдельные же файлы проще проверить на https://www.virustotal.com/ или аналогах
Вопрос: Учить jQuery в 2019?

Лучший ответ:
Альтернатива сейчас это фреймворки по типу React, Angular, Vue
А отзывы такие вследствие того, что большинство методов jQuery уже реализованы как нативные.
Тем не менее, jQuery все еще лидер как самая простая и документированная либа для работы с DOM. И никуда она не денется..

Худший ответ:
Специально учить jQuery нет смысла, когда столкнетесь с ним в конкретном проекте, зная JS, сможете быстро изучить документацию. 
Для новых проектов, по большей части, достаточно современных возможностей JS и в некоторых случаях методов из Lodash/underscore.js
Вопрос: Чем отличается FTTH от FTTB?

Лучший ответ:
Как следует из расшифровки, FTTH - Fiber To The Home и FTTB - Fiber To The Building, в первом случае оптику кидают до двери, во втором - до здания.

Худший ответ:
FTTB -оптика до дома, коммутатор в подвале/чердаке и витая пару в квартиру абонента.FTTH-оптика в квартире абонента.
Вопрос: Бесконечная рассылка оповещений на почту. Как проверить?

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

Худший ответ:
Так вы сами подпишитесь на свою рассылку, и узнаете что и как там приходит. 
У нас в компании есть ящик куда шлется копия всех отправленных писем. Да, там сотни тысяч писем, зато все знаем. Плюс к этому все письма шлются через очередь, остаются записи в БД. 
Для локального тестирования мы используем MailCatcher. Можете его развернуть, тестировать, смотреть что приходит.
Вопрос: Как на поднять вопрос вверх?

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

Худший ответ:
В данный момент такой возможности не предусмотрено.
Вопрос: Как обойти cобытийную модель js?

Лучший ответ:
Почитайте про обещания.

Худший ответ:
Можно использва "async", замечательно для таких ведей подходит.
Делаете массив с функциями и потом этот массив скармливается "asycn.parallel" или "async.serial", в зависимости от того хотите вы их последовательно или паралелльно выполнять.
Вопрос: Какой wi-fi роутер лучше купить до 2500 рублей из имеющихся в продаже?

Лучший ответ:
Никакой. У всего что до 2500 флешка на 4 мегабайт и оперативки под 32, даже у сраного длинка. А это значит что функций будет минимум - на 32 мегабайтах особо не разгуляешься.
Если взять TP-Link Archer C5 то у него цена больше 2500.
вот список моделей для одной популярной прошивки:
https://wiki.dd-wrt.com/wiki/index.php/Supported_D...
и для другой
https://openwrt.org/toh/start
флешка минимум на 16 и опративки на 128 чтобы была напичканность и модинг, но в 2500 новый не купить...

Худший ответ:
TP-Link самых разных моделей никогда не подводили.
Вопрос: Как привлечь массовую аудиторию к тестированию проекта?

Лучший ответ:
Привлечь "массовую" аудиторию к тестированию проекта можно двумя способами:
a) Сделать интересный проект и вбросить его в мир с помощью реддита/пикабу/ещеКакойТоРесурс или той же статьи на хабре
б) Заплатить людям (компаниям) за тестирование вашего продукта.Знакомства через телеграм бот - проект не интересный и уже несколько тысяч раз реализованный и удаленный в силу своей бесполезности.upd:
ВНЕЗАПНО придумал еще один вариант:
Если вы учитесь в каком-то учебном заведении - вы можете разместить объявление на стене новостей (физической, которая должна присутствовать в любом учебном заведении). Ссылку на приложение разместить QR кодом.
Желательно это согласовать с руководством данного заведения (например с секретаршей ректора или деканом).
В таком случае можно еще будет и ссыль в группе вк повесить, а то и на странице уч.зав.Обычно высшие учебные заведения любят подобные штуки, если их правильно подать - в духе - смотрите какие у нас талантливые программисты учатся и т.д. 
Да и к тому же - знакомства внутри университета (особенно если он большой) могут быть куда юзабельнее.

Худший ответ:
Отдать школе тестирования как подопытный проект?
Вопрос: Зачем «+» перед «function»?

Лучший ответ:
Что бы сразу выполнить данную функцию.
То есть, мы создаем анонимную функцию и сразу ее запускаем. + здесь арифметическая операция.
Вместо + можно использовать "-", "!"

Худший ответ:
Что бы сразу выполнить данную функцию.
То есть, мы создаем анонимную функцию и сразу ее запускаем. + здесь арифметическая операция.
Вместо + можно использовать "-", "!"
Вопрос: Node.js что мне нужно, синхронность или асинхронность?

Лучший ответ:
node v7.6+ или транспайлим бабелем async2generatorsfunction requestAsync(params) {
  return new Promise((resolve, reject) => {
    request(params, (err, response, body) => {
      if(err) { return reject(err); }
      resolve({response, body});
    });
  });
}

async function getURL(_url) {
  var data, url = _url;
  do {
    const {body} = await requestAsync({url});
    data = JSON.parse(body);
    url = _url + '&pageToken=' + data.nextPageToken;
  } while(data.nextPageToken !== undefined);
  return data;
}

Худший ответ:
Есть решение, вот такоеvar page = 2,
    lastPage = 100;

async.whilst(function () {
  return page <= lastPage;
},
function (next) {
  request("http://some_json_server.com/data?page=" + page, function (error, response, body) {
    if (!error && response.statusCode == 200) {
      store_data(body)
    }
    page++;
    next();
  });
},
function (err) {
  // All things are done!
});
Но подключается сторонний пакет Async, и хотелось бы без нее как-то обойтись.
Вроде в javascript были async, await, но не особо получается их использоватьawait request({}, function(){})
Вопрос: Как подружить принтер Canon G 3400 и Ubuntu?

Лучший ответ:
Скачал драйвера на английском сайте Canon (мне нужны были 64-bit) - www.canon.co.uk/support/consumer_products/products... 
Принтер настроил. У меня Kubuntu 16.04. Распаковал скачанный архив с драйверами и в папке packages запустил пакет deb. Дальше через Параметры системы зашел в Принтеры - Добавить принтер. Принтер сам обнаружился (до этого через планшет на Андроиде я настроил принтер на роутер). Далее выбрал драйвера G3000 series и вуаля - все печатает.
Сканер тоже настроил. По ссылке выше также есть драйвера сканера Scaner Gear MP - скачиваем архив с драйвером, распаковываем и далее как с принтером в папке packages запускаем пакет deb. (или по феншую  через запуск install.sh командой sudo sh) Сканер установлен.
Сканирование запускаем командой scangearmp2. Появляется окно Select Scanner (если нашей МФУ нет, то жмем кнопку Update Scanner List   -  Canon G3000 series нашелся) Жмем Ok - появляется окно сканирования ScanGear MP. Дальше дело техники - выбираем нужные настройки и сканим.

Худший ответ:
попробуйте support-sg.canon-asia.com/contents/SG/EN/010071310...
нашел на сингапурском сайте canon (модель не 100% соответствует но в линуксе часто один и тот же драйвер подходит для всей линейки.)
search-sg.canon-asia.com/canon__sg_en__sg_p_en/sea...
Если не выйдет, меняйте принтер на совместимый. Серьезно.
Вопрос: Почему после загрузки сайта на pythonanywhere изменился дизайн админки?

Лучший ответ:
Прежде чем деплоить делай python manage.py collectstatic, у тебя в папке static появится папка admin.

Худший ответ:
Проверяйте пути к статике, css не загружается, потому такой вид.
python manage.py collectstatic выполняли?
Вопрос: Как внести данные в базу mysql?

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

Худший ответ:
в екселе задается знак разделения разрядов, это настройки интерфейса, в мускуле тип данных с плавающей точкой не меняется. Отсюда вывод - два клика в екселе проще чем обработчик на любом ЯП. Тут например обсуждали этот вопрос.
Вопрос: Можно ли изменить input, чтобы он был как на картинке?

Лучший ответ:
Можно.
В стилях пишите что вам нужно и будет так же.input#file-input {

}

Худший ответ:
Можно.
В стилях пишите что вам нужно и будет так же.input#file-input {

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

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

Худший ответ:
На Ваш вопрос нет однозначного ответа... Многое зависит от страны, от того, что Вы хотите получить.
НУ например вот в Германии или США очень сильны позиции у c#. По миру в целом сильна Java.
Вне привязки к региону стоит обратить внимание на Javascript. Динамично набирает обороты Go.Не стоит забывать и о Python
Вопрос: Как отслеживать комментарии в социальных сетях?

Лучший ответ:
Как вариант - LiveDune, там есть отслеживание комментариев в Инстаграм, ВКонтакте и Facebook. Все собирается в одном месте, есть уведомления в Телеграм и выгрузка комментариев.
Подробнее у них в блоге расписано - https://livedune.ru/blog/monitoring_kommentariev_i...

Худший ответ:
я уже несколько месяцев пользуюсь Парсинджером. В отличии от всех подобных сервисов, у них цены на порядок ниже. вот ссылка на их сообщество в вк: https://vk.com/parsinger
Вопрос: Может ли злоумышленник перехватить Wi-Fi трафик?

Лучший ответ:
Может Main In the Middle никто не отменял.

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

Лучший ответ:
\CJSCore::Init(); подключение ядра

Худший ответ:
Дело в том, что битрикс не подключает bx_core если, не инициализировать ни одно расширение. А подключить только core нельзя :) подключите любое из расширений, например ajax CUtil::InitJSCore(['ajax']) тогда и core подключится.
Вопрос: Как загрузить на httpS сайт скрипт с другого сайта, который не httpS?

Лучший ответ:
Ctrl+C содержимое скрипта
Делаем такой же файл на нашем сервере и Ctrl+V содержимое

Худший ответ:
Nginx proxy_pass и подключать по локальному адресу.
Или выкачать его на свой сервер к своим ресурсам
Вопрос: Разумно ли использование semantic-ui вместо Bootstrap?

Лучший ответ:
Если Вы сами не видите выгод, при чем весомых, для своего проекта - то ответ точно НЕТ.
Бутстрап знают почти все, небольшая часть из них знает semantic-ui. Есть еще дятлы и староверы, они ничего не знают (вторым лень, а первые наслушались отмазок вторых). Иногда встречаются редкие дятлы, которые почему-то решили, что есть объективная причина знать semantic-ui или еще более экзотичный продукт, но не знать bs. Но говорят скоро научатся такое лечить.
Если у Вас вопрос "разбираться с semantic-ui" или нет? Тогда ответ "точно да". Так как времени это много не займет, а что бы использовать bs4, надо же понимать, чем он лучше других и вообще, какие другие они бывают. semantic-ui - наверное номер 2 или 3 в списке.

Худший ответ:
Обьективной причины менять шило на мыло однозначно нет, думаю бутстрап предпочтительней в силу своей зрелости и комьюнити. Ну а если Вам нравяться плюшки semantic-ui то почему бы и нет.
Вопрос: Роутер раздает WiFi без доступа в интернет, что делать?

Лучший ответ:
обратитесь в техподдержку провайдера

Худший ответ:
Или физически не работает порт на роутере. Или проблема с кабелем или с разъемом.
Вопрос: Как решить проблему в градиентом в safari?

Лучший ответ:
Используй первым цвтом не transparent, а rgba(white,.0001) - например.#scss
background: linear-gradient(to right, rgba(white,.0001), #fff)

Худший ответ:
Используй первым цвтом не transparent, а rgba(white,.0001) - например.#scss
background: linear-gradient(to right, rgba(white,.0001), #fff)
Вопрос: Как зайти под root в phpmyadmin?

Лучший ответ:
По умолчанию рутовый вход запрещен. Советую создать отдельного пользователя под свои нужды:
(вводить по одной строке)sudo mysql -u root -p (спросит пароль)
create user 'пользователь'@localhost identified by 'пароль';
grant all privileges on *.* to 'пользователь'@localhost;
grant grant option on *.* to 'пользователь'@localhost;
flush privileges;
quit;

Худший ответ:
а куда это вписывать?
Вопрос: Как скачать шрифт из онлайн Figma?

Лучший ответ:
Задайте этот вопрос дизайнеру. Это его обязанность, предоставить вам все исходники.

Худший ответ:
Ищите OCR распознавалки шрифтов, проверьте ещё шрифт на https://www.fontsquirrel.com/matcherator
Вопрос: Вопрос по тому как надо верстать правильно?

Лучший ответ:
Как хочешь, так и делай.

Худший ответ:
Нужно ли, когда делаешь работу в портфолио, делать дизайн сначала в редакторе
Без этого никак,ты же должен видит что верстаешь
Вопрос: Есть ли слайдер как у гугла и flickity?

Лучший ответ:
flickity.pkgd.js - 116Kbflickity.pkgd.min.js - 52Kb
Вы явно делаете что-то не так. Подключите через cdn<link rel="stylesheet" href="https://unpkg.com/flickity@2/dist/flickity.min.css">
<script src="https://unpkg.com/flickity@2/dist/flickity.pkgd.min.js"></script>

Худший ответ:
можешь использовать например kenwheeler.github.io/slick
Вопрос: Я изучаю одно а в колледже другое. что делать?

Лучший ответ:
Как по мне, так чем с большими языками получится познакомиться, тем лучше. Это просто расширяет кругозор. В любом случае когда(если) в будущем станете профессиональным программистом на каком-то определенном языке, то вас не будет пугать код на другом языке.

Худший ответ:
Как минимум вам повезло что у вас будут учить не Паскалю и не Ворду, а C++(!). 
Первое: берёте и определяетесь что вам нравится, если это GameDev - C# + Unity, C++ +  Unreal Engine или CryEngine, если Android - Java, если Web - HTML,CSS, PHP или Ruby или Python, JavaScript(Не относится к Java!), если машинное обучение - Python или Lisp, если микроконтроллеры то Assambler.
Второе: Заканчиваете школу. У вас будет ещё 2 года что-бы разобраться, что к чему и просто подучить что вам нравится, чтобы при поступлении были почти готовым Джуниором.
Потом в ВУЗе упражняетесь, вас доучивают и выходите на роботу. Это если все будет хорошо...
В ВУЗе вы можете не найти язык который вы учили или просто не найдёте ВУЗ где не учат Паскалю и Ворду.
Или найдите колледж где учат Java.
Если не то не другое не подходит то учите C++ и Java параллельно. Изучив C++ вы будите очень хорошо понимать, что творится внутри других языков и их будет легче учить.
Вопрос: Почему на некоторых сайтах такие странные названия стилей (См. подробнее)?

Лучший ответ:
Это стили, которые генерирует React.

Худший ответ:
Исходные названия стилей — нормальные. Такое происходит при их минификации / сборке / и т.п.