Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Преимущества C# в GameDev?

Лучший ответ:
C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Так что вы без трудов его освоите)
Преимущества:
- Язык программирования C# претендует на подлинную объектную
ориентированность (всякая языковая сущность претендует на то, чтобы
быть объектом);
- Компонентно-ориентированный подход к программированию,
способствующий меньшей машинно-архитектурной зависимости
результирующего программного кода, гибкости, переносимости и легкости
повторного использования (фрагментов) программ;
- Ориентация на безопасность кода (в сравнении с С и С++);
- Унифицированная система типизации;
- Расширенная поддержка событийно-ориентированного
программирования.
Несмотря на достоинства, язык С# имеет некоторые недостатки, такие как:
- Довольно сложный синтаксис (75% из Java, 10% из C++, 5% из
Visual Basic);
- Мало свежих концептуальных идей (приблизительно менее чем
10% конструкций языка);
- Относительно невысокая производительность (намного медленнее,
чем язык C, но сравним с Java);
- Не кросс-платформенный язык. Так как С# разработан компанией
Microsoft, то и работает он только под операционной системой Windows,
хотя в данный момент уже разрабатывается кросс-платформенная версия
данного языка. (Моё мнение)
Перспективы:
Unity включает полностью поддерживаемую современную среду выполнения .NET (С 2018 версией).
Экосистема .NET продолжает развиваться и по сей день, улучшая производительность своего языка.
Больше каких-то перспектив и не знаю)

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

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

Худший ответ:
например, сделать свой Account а код получения авторизации встроить в свою существующую активити, которая стартовала раньше.вот такой чудесный репозиторий есть еще
Вопрос: Что учить первым OOP или java?

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

Худший ответ:
Предлагаю начать с первоисточника.
Вопрос: Как в c# одновременно скачивать несколько web страниц?

Лучший ответ:
Быстрый способ:var urls = new List<string>()
{
    "http://google.com",
    "http://yandex.com"
}
Parallel.ForEach(urls, (url) => 
{
    // код получения и обработки.
});
В отличие от реализации через Thread, данная проще и ест меньше ресурсов

Худший ответ:
Многопоточное программирование. Класс Thread.
Вопрос: Аутентификация через REST API прямым запросом?

Лучший ответ:
Use JWT, только помните что это не аутентификация, а просто формат токенов, обеспечивающий определенный уровень доверия. И не в get query string, a headers. 
Специально для тех кто советует POST - почитайте что такое REST Verbs, зачем они нужны и про кэширование. Кэшировать GET критически важно для API, в если использовать POST для получения данных, а не для записи это уже не REST.

Худший ответ:
допустимо ли такое вообще - конечно нет!!!
upd:
POST с пассом в auth url, в ответе токен, далее его в headers
Вопрос: Как продвигать одностраничник (landing page)?

Лучший ответ:
Лендинги как бы обычно вообще не продвигают.
Они не для этого придуманы.
Так индексировать нечего, поэтому и в поиске нечего выводить.
Только если спамить ключами на нём и/или закупать тонны ссылок(уже не акутально практически, можно и бан выловить у гугла/яндекса).
На лендинг надо трафик вести из рекламы.
Чтобы получать сео трафик заводите статейник, хотя бы на 5-10 страниц с хорошими ключами и продвигайте всеми силами.

Худший ответ:
Я, конечно, не сеошник, но вроде поисковики очень полюбили поведенческие факторы и берут данные с яндекс.метрики и гугель.аналитики соответственно. Кол-во отказов по запросам, среднее время, проведенное на сайте, все такое.
Вопрос: Где практиковать python?

Лучший ответ:
Анализ данных, машинное обучение, автоматизация, парсеры

Худший ответ:
Пишу на питоне лет 8. Django и flask не пользовался. Писал микросервисы и сайты на cherrypy фреймворке, анализ данных, парсеры, автоматизация, боты, шрифтоанализаторы, генераторы отчётов и оконные приложения.
На питоне можно решать почти любую задачу. Найдите себе задачу.
Вопрос: Почему slick js добавляет 2 лишних дива?

Лучший ответ:
На вебпак аналогичная проблема решилась подключением минифицированного файлаrequire('slick-carousel/slick/slick.min.js');

Худший ответ:
Может где то тупо незакрытый div =)как на пример <div> вместо </div> а барузер сам его дописывает
Искать конечно же методом исключений, плюс в нутрь slick  глянуть, вдруг там где то есть что то вроде usediv = true что бы оборачивать это в пустой див? Вобщем вариантов масса
Вопрос: Как называется этот прием в веб-дизайне?

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

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

Лучший ответ:
Вас правильно ткнули в file_put_contents, полностью будет как-то так$filename = '/some/file/filename.txt';
  file_put_contents ( $filename , $_POST['sometagname'], FILE_APPEND );
Только в коде запроса придется кое-что поменять - вместо data: form_data нужно data: { sometagname: form_data }

Худший ответ:
ДБ! © С.Лавров$to_file = 'Запиши меня в файл, толкьо не стирай предыдущую информацию, плиз. хозяин!!!';
/* Запись полученных данных в файл */
$file = fopen("superpuper.txt","a");
if(empty($file)) $echo = "<LI>Не удалось создать файл для записи результата";
//записываем информацию в файл, по одной строчке на каждое поле
date_default_timezone_set('Europe/Moscow');
fputs($file, "".date("d-m H:i", time()).":\t");
fputs($file, $to_file."\n");
// закрываем файл
fclose($file);
Вопрос: Unity3D(C#) — Как сделать всплывающие окна?

Лучший ответ:
Как делать само окно смотрите в туториалах. Конкретная реализация остановки игры зависит от вашей архитектуры, самый простой вариант - выставить Time.timeScale в ноль. Перейти на другую сцену можно с помощью SceneManager.LoadScene.

Худший ответ:
Как делать само окно смотрите в туториалах. Конкретная реализация остановки игры зависит от вашей архитектуры, самый простой вариант - выставить Time.timeScale в ноль. Перейти на другую сцену можно с помощью SceneManager.LoadScene.
Вопрос: Как лучше монетизировать сайт?

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

Худший ответ:
Если кому интересно, то где то с сентября я не участвую в ненавязчивой рекламе от adblock. Установил банеры от адсенс. Доход увеличился значительно. Так что банеры все равно привлекательней текста и дают больший выхлоп, даже если часть пользователей их блокирует.
Вопрос: Почему таргет вк показывает 100 переходов, а метрика и счетчик li показывает 60 посетителей?

Лучший ответ:
Так всегда. Завышают, считают недействительные клики. Верьте метрике и li

Худший ответ:
1) переход не одно и тоже, что посетитель. Возможно вы смотрите уникальные хосты, а на самом деле их меньше, чем 100
2) Разные счетчики ведут себя по разному, и по разному обрабатывают данные
3) Возможно запоздание данных в счетчиках
4) Возможны у вас стоят какие-то фильтры в счетчиках
5) Скликивания и роботов никто не отменял
Вопрос: Идентификация пользователя по паспорту возможна?

Лучший ответ:
Само по себе противозаконного ничего нет, но:
1) Вы должны зарегистрироваться как оператор персональных данных в РФ
2) Данные Россиян вы должны хранить только на серверах в России
3) Соблюдать все требования закона об обработке персональных данных

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

Лучший ответ:
Это не финальный вариант, т.к. при приближении ломается. В общем требуется доработка. 
https://jsfiddle.net/1efnaz06/
-----------------------------------------------------
Починила)
Как-то так я это представляю:
https://jsfiddle.net/1efnaz06/1/

Худший ответ:
div-у задать изображение в качестве фона
внутрь вставить текст
Вопрос: Что надо знать Сис. Админу дайте темы к изучению?

Лучший ответ:
Обычный сисадмин гуглит.
И ты гугли.
А распишет тебе всё рекрутёр-зазывала, красок не пожалеет.

Худший ответ:
Тему "поиск информации" (в том числе и на тостере) :) Вопрос о том, что изучать начинающему админу - возникает тут не реже раза в неделю.
Вопрос: Как задать фоновое изображение конкретной страницы сайта при помощи style.css?

Лучший ответ:
для внутренних страниц для body задай класс к примеру .inner-page а потом bg вешай по этому классу
к примеру отредактировав header.php в шаблоне примерно так:<?php if ( is_home() ) : ?>
	<body <?php body_class(); ?>>
<?php else : ?>
	<body <?php body_class('inner-page'); ?>
<?php endif; ?>>
а если тебе нужно сделать bg только на какой то одной странице сайта, то добавляй filter:add_filter('body_class', 'add_body_class');
function add_body_class($classes){
	if ( is_single(62) )  //62 - id страницы.
		$classes[] = 'inner-page';
    return $classes;
}
p.s. и не слушай тех кто предлагает это делать через js на фронтенде

Худший ответ:
Как вариант в шаблон вкинь ) Перед закрывающим body<script>
   let hostUrl = window.location.href;
    if(hostUrl == 'http://твой_сайт.ru/'/*Здесь в зависимости от настройки apach для главной http://твой_сайт.ru/, http://твой_сайт.ru/index.html или  http://твой_сайт.ru/index.php вставь */){
        document.body.style.background = "#000 url(\"путь к картинке для главной\") no-repeat fixed left bottom";
    }else{
        document.body.style.background = "#000 url(\"путь к картинке для других страниц\") no-repeat fixed left bottom";
    }
</script>
Вопрос: Где можно пройти тестирование и получить сертификаты web/angular/angularjs?

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

Худший ответ:
https://www.coursera.org/  тут были по angular
Вопрос: Как зарезать киоск?

Лучший ответ:
Вы не поверите, но это так и гуглится "kiosk mode"

Худший ответ:
Не open source конечно, но в Windows 10 Pro (и Enterprise, но не LTSC) есть режим киоска: https://docs.microsoft.com/en-us/windows/configura...
Как раз только браузер (MS Edge) и принтер. Каждая сессия с чистого листа, данные прежних пользователей не сохраняются.
Вопрос: Можно ли запретить загрузку картинок для десктопа (предназначенных для десктопа) на мобильных и наоборот?

Лучший ответ:
https://www.w3schools.com/tags/tag_picture.asp - вам в помощь ! :)

Худший ответ:
Если действительно это так важно, то формируй код сразу под нужное моб. устройство, т.е. не формируй лишнего. Есть же https://github.com/serbanghita/Mobile-Detect !!!
В реальной жизни все это фигня, гораздо больше планшеты тратят памяти на новомодную стартаперскую фичу - иконки в svg!))) Забей!
Вопрос: Вирус на сайте. Как вылечить?

Лучший ответ:
Все сжечь из огнемета. Сайт восстановить из бэкапов. Вордпресс обновить, пароль сменить.

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

Лучший ответ:
https://jscompress.com/
Замечательный сервис, хорошо сжимает.
А теперь отгадайте с трёх раз, как я его нашёл.

Худший ответ:
GZip или Brotli на сервере настроены? Они и до 30 Кб могут сжать.
Вопрос: Как поступить с выбором среды разработки после года работы в C++ Builder?

Лучший ответ:
Как сделать переход с C++ Builder как можно менее безболезненным! 
Если действительно есть время и желание, то попробуйте поработать с "голым" стеком. Сборка - шелл-скриптом, редактирование в редакторе общего назначения. Тогда вы сможете выбрать по отдельности компилятор и редактор.
Какой компилятор выбрать - вопрос отдельный, зависит от привычной вам платформы и ваших целей в плане изучения технологии. Можно, например, Клэнг попробовать.
Когда всё это соберёте в кучу сами, можно будет попробовать CMake - инструмент непростой, местами даже замороченный, но не даст вам расслабиться и будет хорошим вложением времени, если вы собрались заниматься C++. В это же время вы можете определиться со своими предпочтениями в плане занятости и платформы на которой хотите работать.
IDE станет для вас лишь одним из инструментов и вас этот вопрос будет волновать в последнюю очередь.

Худший ответ:
Visual Studio или CLion. Но почему вопрос с тегами Java и С# еще? Такое ощущение, что под сменой средой разработки Вы подразумевали нечто большее, чем смену IDE. Да и какой-такой болезненный переход может быть со сменой IDE?
Вопрос: Как разрабатывать GUI на Python?

Лучший ответ:
pyqt / pyside
второе дыхание у pyside  сейчас

Худший ответ:
> Tkinter, WxPython и PyQT
Ещё есть Gtk2, FOX, FLTK, Gtk3.
> Подскажите, что удобнее для решения простых задач
Для простых задач и чтоб удобнее, я бы сейчас выбрал FOX.
Вопрос: Как настроить кодировку консоли phpstorm?

Лучший ответ:
В настройках Tools - Terminal проверить, какой shell стоит в Application Settings - Shell path. А также шрифт, который используется в консоли должен поддерживать кириллицу.

Худший ответ:
я пользуюсь git-bash
мне помог этот ответ
Stackoverflow
Вопрос: Каким способом делать анимации для 2д игры?

Лучший ответ:
Можно и так и так, всё зависит от вашей технологии анимации, если анимация у вас покадровая, то разделить её на две половинки будет сложно, если же вы используете Spine или Anima2D, то сделать это будет гораздо проще, в примерах к Spine даже есть готовая реализация того, что вы хотите. Без плагинов разделить анимацию тоже можно, например, если у вас есть человечек с пистолетом в руке, просто отрезаете стреляющую руку и анимируете её отдельно, а тело всегда анимируете безруким, потом просто эти два объекта соединяете в иерархии трансформов. При таком подходе вы сможете вращать стреляющую руку как угодно не меняя анимацию тела.

Худший ответ:
все зависит от того, каким образом ты будешь делать анимацию.
Есть два пути. 1) Это рисовать каждое изменение и потом кинуть все картинки в Animation. 2) Сделать скелетную анимацию.
И все конечно зависит от того как ты хочешь это все видеть, если тебе нужно, чтобы при прыжке , стрельба выглядела иначе, то да, придется делать отдельную анимацию для стрельбы в прыжке и отдельную на земле.
Вопрос: Что делать после курсов веб-разработчика(Full stack). Где искать работу?

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

Худший ответ:
Там же где и до
Хх ру
Открыл Москву много без опыта вакансий
Вопрос: Как сделать поиск адресов через Яндекс?

Лучший ответ:
Ну так ищите правильно:
https://tech.yandex.ru/maps/doc/jsapi/2.1-dev/ref/...
https://tech.yandex.ru/search/?text=suggest&doc=do...

Худший ответ:
https://tech.yandex.ru
Забирай, не за что
Вопрос: Как лучше организовать классы с большим числом полей?

Лучший ответ:
Если свойства известны заранее, то используйте "в лоб".
Если свойства могут меняться (например, на основе справочника из БД) - то второй вариант.

Худший ответ:
Если свойства известны заранее, то используйте "в лоб".
Если свойства могут меняться (например, на основе справочника из БД) - то второй вариант.
Вопрос: Как избавится от «скакания» фото при загрузке slick?

Лучший ответ:
.slider_wrap > .slider_item:nth-child(n+2) { display: none; }
скрываем все слайды кроме первого
при инициализированном слике этот селектор уже не будет работать

Худший ответ:
Используй background-image вместо img и установи фиксированную высоту на этих div. Как вариант оберни img в div  и установи ему фиксированную высоту.
Вопрос: Где можно нанять помощника который будет отсылать заявки к проектам на фрилансе?

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

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

Лучший ответ:
Сами яндексы пишут вот так:
https://yandex.ru/support/webmaster/recommendation...Каждая страница должна иметь уникальный адрес (URL). Желательно, чтобы вид URL давал представление о том, что содержится на соответствующей странице. Использование транслитерации в адресах страниц также позволит роботу понять, о чем может быть страница. Например, один только URL http://download.yandex.ru/company/experience/Baitin_Korrekciya%20gramotnosti.pdfдает  поисковому роботу множество информации о документе: его можно скачать; формат, скорее всего, PDF; документ, вероятно, релевантен запросу «коррекция грамотности» и так далее.
А домыслов сеошников, наверное можно найти как за первый, так и за второй вариант :)

Худший ответ:
Сами яндексы пишут вот так:
https://yandex.ru/support/webmaster/recommendation...Каждая страница должна иметь уникальный адрес (URL). Желательно, чтобы вид URL давал представление о том, что содержится на соответствующей странице. Использование транслитерации в адресах страниц также позволит роботу понять, о чем может быть страница. Например, один только URL http://download.yandex.ru/company/experience/Baitin_Korrekciya%20gramotnosti.pdfдает  поисковому роботу множество информации о документе: его можно скачать; формат, скорее всего, PDF; документ, вероятно, релевантен запросу «коррекция грамотности» и так далее.
А домыслов сеошников, наверное можно найти как за первый, так и за второй вариант :)
Вопрос: Почему зависает ПК при движении мыши?

Лучший ответ:
Ну, тут вероятнее всего проблема с USB, возможно самим контроллером в материнке. Попробуйте купить либо внешний, либо встраиваемый PCI USB расширитель. У внешнего должен быть свой контроллер, что-бы это не был просто разветвитель. 
Так-же судя по описанию у вас есть 3.0 type-c и 3.1, а так-же 2.0 непосредственно на плате, попробуйте подключить к 2.0, а так-же, если вдруг найдете переходник то и 3.0 t-c\3.1
У меня в свое время была близкая проблема, купил наушники, подключаются к внешней своей аудиокарте, а та по USB к ПК, но у меня всё это никак не определялось. Решилось PCI USB платой. 
Возможно поможет и вам.

Худший ответ:
Похоже все-таки как все пишут, проблема с железом, а именно с USB контроллером, USB портом или USB контроллером самой мышки.
В диспетчере задач вы нагрузку не увидите, поскольку ожидание ответа от устройства не входит в жизненный цикл процесса. Там в лучшем случае увидите нагрузку ядра (драйвера), а то и ничего не будет видно, ибо в момент ожидания информации с порта, процессор собственно не занят.
Примерные варианты решения:
1. Попробовать с другой мышкой - если проблемы уйдут, значит дело или в мышке или ее драйверах.
2. Попробовать вашу мышку в другом компе - если на другом компе проблем нет, значит проблема или в USB порту на материнки, или все еще в драйверах.
3. Удалить драйвера мышки и поставить заново.
Вопрос: RxJS — Как правильно делать отписки на Subscriber объект?

Лучший ответ:
Стоит помнить разницу между Observable и Subject, соответственно subscribe у этих двух типов работает в части создания подписок по разному. Если закрывать весь стрим, то достаточно вызвать complete. Если нужно получить значение и отписаться то можно вызвать .first().subscribe(). Если создаются долгоживущие подписки, то их можно складывать в массив, а в дестрой вызывать subscriptions.forEach(i=>i.unsubscribe())
UPD: уточни бизнес-кейс, у меня подозрение что тут subject не нужен и можно обойтись new Observable((subs)=>{})

Худший ответ:
Вовсе не обязательно все подписки складывать в массив и затем в цикле от них отписываться в ngOnDestroy.
Можно обойтись таким способом:import { Component, OnDestroy, OnInit } from '@angular/core';
import 'rxjs/add/operator/takeUntil';
import { Subject } from 'rxjs/Subject';

import { MyThingService } from '../my-thing.service';

@Component({
    selector: 'my-thing',
    templateUrl: './my-thing.component.html'
})
export class MyThingComponent implements OnDestroy, OnInit {
    private ngUnsubscribe: Subject<void> = new Subject<void>();

    constructor(
        private myThingService: MyThingService,
    ) { }

    ngOnInit() {
        this.myThingService.getThings()
            .takeUntil(this.ngUnsubscribe)
            .subscribe(things => console.log(things));

        this.myThingService.getOtherThings()
            .takeUntil(this.ngUnsubscribe)
            .subscribe(things => console.log(things));

    }

    ngOnDestroy() {
        this.ngUnsubscribe.next();
        this.ngUnsubscribe.complete();
    }
}
Вопрос: Почему дублируются стили?

Лучший ответ:
Зачем  в задаче "stylus" вот этот пайп:.pipe(concat('main.css'))?
Он тут явно лишний.
У вас же и так все стили импортируются в main. styl, а он в пайпе.pipe(stylus({
    compress: true
}))
компилируется в main.css.
Получается, вы его компилируете, а потом еще раз собираете все стили в кучу, в main.css...

Худший ответ:
Попробуй https://www.npmjs.com/package/gulp-css-purge
Вопрос: Насколько хорошо или плохо выполнена эта вёрстка?

Лучший ответ:
Хотелось бы услышать мнения по качесту работы(что упустил, где накосячил). 
В целом не так уж и плохо, но есть пара моментов, которые стоит улучшить:Местами не хватает отклика от элементов на :hover и :focusГамбургер (сама иконка) имеет фиксированное положение и при скролле наезжает на содержимое страницы - не очень крутоВозникает стойкое желание увеличить шрифт и отступы (но это скорее придирка к дизайну)
P.S.: Можно еще попробовать добавить плавное появление элементов при скролле (ну раз сайт все равно одностраничный)

Худший ответ:
Верстка выполнена очень плохо ибо:
0) bootstrap.
1) Семантики нет вообще.
2) Иконки выполнены картинками
3) Нужные для валидации тэги просраны.
4) Табы не работают
расстрелять за такую работу
Вопрос: Почему Node.js отправляет данные без сжатия?

Лучший ответ:
В данный момент сжатие отключено в настройках, т.к. приводит к утечкам памяти. Можно попытаться включить обратно через:{ perMessageDeflate: true }
Про проблему можно почитать здесь:
https://github.com/websockets/ws/issues/804

Худший ответ:
я недавно нодой занимаюсь могу тупить но по моему express сам не сжимает ответы попробуй подключить require('compression')
var compression = require('compression')
var express = require('express')
var app = express()
// compress all requests 
app.use(compression())
Вопрос: Какое лучше направление в вузе выбрать(математика/программирование)?

Лучший ответ:
Вуз в рашке направление программирование?
На эвм учат бэйсик ворочить? Не смеши. Максимум плис научишься программировать на начальном уровне. В стоке будешь паскаль изучать. Зачем?
На матан иди если так уж хочется учиться в совковых универах. На одного человека меньше будет на тостере, кто постит вопросы по типу "В матане ноль, хочу нейронные сети проектировать. Ыыы".

Худший ответ:
Как говорил известный чел Савватеев(можете погуглить) в будущем будут править математики а программисты будут у них в подмастерьях.
Но раз Вы не чувствуете в себе силы в математике, то не думаю что за 5 месяцев чтото там можно подтянуть, наэто нужны годы.
Остается только программирование, благо на него чейчас хайповый спрос. И кстати забугром(Европа, америка по рабочей визе) к сожалению
ценится у новичков без опыта именно корочки по профилю. НУ а уж ещели появится страсть к математике то ее можно уже в самом институте реализовать, профессора будут только рады.
Вопрос: PHP. Как распарсить PHP файл?

Лучший ответ:
Есть встроенная функция token_get_all(), которая позволяет распарсить PHP файл на токены:
php.net/manual/en/function.token-get-all.php
Пример: https://3v4l.org/em0It
Коды токенов: php.net/manual/en/tokens.php

Худший ответ:
От одного из core-разработчиков PHP: https://github.com/nikic/php-parser
Вопрос: Что нужно знать, для поступления на программиста?

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

Худший ответ:
Ничего, нужно имеет славное егэ 
Конечно будет