Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Почему этот код возвращает 0?

Лучший ответ:
Потому что return возвращает значение и завершает выполнение функции. Т.е. ваша итерация for срабатывает только 1 раз и после завершает свою работу. Если вы хотите выводить все результаты итерации, то нужно print(i)

Худший ответ:
Потому что return
Вопрос: Где найти дорожную карту по изучению Линукса?

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

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

Лучший ответ:
Генератор идей для пет-проджектов.

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

Лучший ответ:
Вы на правильном пути)
Так и сделайте.

Худший ответ:
Допустим будет такая иерархия:
<div class="block">
    <span class="head">MongoDB</span>
    <div class="body">
        <span class="desc">
            <p class="name">MongoDB</p>
            <p class="name_desc">MongoDB .. database</p>
        </span>
        <a class="button">More Details</a>
    </div>
</div>

На CSS:
spoiler.block {
    /* Your style */
}

.head {
    /* Your style */
}

.body {
    /* Your style */
}

.desc {
    /* Your style */
}

.name {
    /* Your style */
}

.name_desc {
    /* Your style */
}

.button {
    /* Your style */
}
Вопрос: Как переопределить функцию в шаблоне с++?

Лучший ответ:
Все свои SomeClassX породите от базового SomeClass  определенным виртуальным методом show, тогда шаблон не понадобится, просто в классе Tree в методе show(SomeClass t) напишите t->show() а сам show определите в каждом SomeClassX свой.

Худший ответ:
Можно через наследование:template<typename T>
class Tree: public T 
{
// ... здесь show объявлять не нужно
};
Или аггрегациюtemplate<typename T>
class Tree
{
  T _some;
public:
  void show()
  {
    _some.show()
  }
};
Вопрос: Python — Почему мой код не работает?

Лучший ответ:
В методах print вам нужно обращаться не к объекту Simple напрямую, а к созданному экземпляру класса classObj. Собственно, поэтому пример из интернета и работает, а у вас нет.

Худший ответ:


В чем причина?!
В том, что ты не знаешь что такое классы и как они работаю, а это не много не мало, но основы. Прочитай хотя бы A Byte of Python с первой по последнюю страницу, там их не так уж и много.
Вопрос: Какие есть средства мониторинга соединений nginx?

Лучший ответ:
https://amplify.nginx.com/login там все что нужно 

Худший ответ:
прямой аналог mod_status апача ngx_http_stub_status_module
https://nginx.org/ru/docs/http/ngx_http_stub_statu...

https://www.nginx.com/blog/monitoring-nginx/
Вопрос: Что первым учить?

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

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

Лучший ответ:
гридами можно, но это придется неплохо помудохаться с разделением картинки на сетку
вот нашел пример (см Three)
https://stackoverflow.com/a/54980680snippet

Худший ответ:
Ну если правильно, нужно или какой нить библиотеку поискать.Если вам нужно именно  css то что-то вроде grid + flip clip  ну и просто немного свободного времени.
https://bennettfeely.com/clippy/ вот пример этого свойства 
Мб есть еще адекватные способы - но пока только это пришло в голову.
Вопрос: Как учить django полному нулю???

Лучший ответ:
Я изучил пайтон на сайте stepik.org
Вы не изучили Пайтон.
и в принципе практиковался в пайтоне. 
Нет.
Прошу вас посоветуйте как вы учили. Объясните для полного нуля в этом. Html и Css знаю хорошо. Заранее благодарю 
Гуглите в сети примеры пет проектов на Питоне и Джанго, либо пишите любой сайт с нуля, админку и тд и тп. Появился вопрос = гуглите, вопросов будет тысячи, и к этим тысячи вопросам будут 10 000 ответов. После того как вы закончите свой 2-3 пет проект, вы поймете архитектуру, синтаксис языка, подводные камни, варианты оптимизации, автоматизацию процессов разработки.

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

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

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

Лучший ответ:
Радиоэлектроника и ардуино - как бы разные разделы электроники. Ардуино - это знакомство с цифровой и микропроцессорной техникой.
Если вы хотите изучать именно радиоэлектронику - начните лучше с детекторного приемника...

Худший ответ:
Что мешает взять ардуино и паять датчики самому? Есть много DYI китов для тренировки и понимания радиотехники. В итоге узучите и то и то.
Вопрос: Как создать подобную закладку?

Лучший ответ:
Можно назвать её ярлычком ¯\_(ツ)_/¯
snippet

Худший ответ:
Голубому блоку задайте position: relative. 
А декоративному элементу position: absolute(при этом декоративный элемент должен лежать внутри голубого блока в html). И дальше при помощи top, left, right, bottom установите декоративный элемент на нужное место и стилизуйте
Вопрос: Как организовать хранение личной информации (аккаунты, календари, подписки и т.п.)?

Лучший ответ:
попробуйте https://en.wikipedia.org/wiki/Mind_map
мне лично не зашло, но многим наоборот.

программ с реализацией этой идеи тоже достаточно - в том числе кроссплатформенных

Худший ответ:
Почему не почтовый ящик с папками?
Работать будет даже на холодильнике
Вопрос: Объясните решение сортировки массива?

Лучший ответ:
Это вызов стрелочной функции, вызывает ее метод Array.prototype.sort(). Суть этого метода в сортировке массива при помощи функции, которая будет определять порядок сортировки. Метод возвращает массив, а на выходе мы берем нулевой ([0]) элемент массива – т.е. самый "маленький"

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

Лучший ответ:
Инструмент для этого называется воздуходувка.
Например Hitachi RB40sa https://www.vseinstrumenti.ru/sadovaya-tehnika/voz...
Или аналогичные, макита подешевле, но ничуть не хуже.

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

НЕЛЬЗЯ чистить ноутбуки так! Только разбирать, отделять вентилятор от радиатора, и кисточкой.

Худший ответ:
Можно компрессором, но его у вас видимо нет))
Вполне норм вариант - взять кисть и ею смести пыль, или пепедастером.
Вопрос: Какой выбрать монитор для кодинга в 2019?

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

Худший ответ:
Зрительное поле у человека - горизонтальное. Поэтому - два (три) монитора разрешения 24-26" будет лучше чем один разрешением 32". По одной простой причине - глазам не нужно будет бегать вверх-вниз. 
Если у Вас какие-то нестандартные требования к мониторам - берите NEC :) (если денег конечно хватит - это профессиональные мониторы, они весьма и весьма недешевые).
Вопрос: Можно ли через Upwork работать за фиксированную ежемесячную сумму без трекера времени?

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

Худший ответ:
Работайте кто мешает?
Вопрос: Учу JavaScript, дальше — Vue.js, среднее знание PHP. На чем сделать CRUD-систему?

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

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

РНР "умирает" именно потому что язык настолько простой, что "простенькую систему по (манам из Гугла)" может сделать даже обезьяна. И 99% кода на нем написано обезьянами. И люди судят язык не по его возможностям, а по коду написанному гамадрилами и по тем макакам, которые "ругают и кричат что умирает".

Зачем становиться еще одной обезьяной? Если ты думаешь, что сможешь программировать лучше на другом языке, это все равно что думать что перестанешь бить себя по пальцам, взяв другой молоток. Дело не в молотке, чувак.
Вопрос: Есть ли смысл всегда(почти) использовать short вместо int?

Лучший ответ:
Можно short, если не лень. Можно unsigned short, там ещё больший положительный диапазон.
Полезно, если пишете какие-нибудь прошивки под какой-нибудь AVR.

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

Лучший ответ:
Легко.
www.mathprofi.ru вам в помощь.
Можете качнуть с какого-нибудь сайта ВУЗа задачник и решать его (методички в помощь), заочники так и делают.

Худший ответ:
По-моему, ответ очевиден: решайте задачи через одну, или через две, или через пять.
Вопрос: Почему так мало вакансий по разработке под MacOS?

Лучший ответ:
Скорее ответ в Вашем вопросе. Разработка под MacOS как правило долгосрочная и сложная перспектива. И это не про наш рынок. Это не приложение по подсчету фолловеров, это продукты, которые будет инвестированы не для бесплатной загрузки, а для получение прибыли, и программа как очистить корзину никому не нужна. 
Сложный продукт = соответственный подход. А локальные создали продукта которые есть в СНГ видимо не так часто хантят спецов.

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

А в России, как вы понимаете, ни вторых ни третьих в принципе нет. Вот и вакансий нет.
Вопрос: Как добавить класс когда элемент появляется в область видимости?

Лучший ответ:
Вот этоvar m_top = $('.go').offset().top;запомнит оффсет только для самого первого элемента найденного по селектору, поэтому и обрабатывается только он.
Использовать событие scroll для отслеживания вьюпорта - это наплевательское отношение к ресурсам пользователя, ведь есть более эффективное апи для этого - IntersectionObserver
Пример:$(document).ready(function(){
  var observer = new IntersectionObserver(function(entries){
    entries.forEach(function(entry){
      if(entry.isIntersecting) {
        $(entry.target).addClass('active bounceInLeft');
      } else {
        $(entry.target).removeClass('active bounceInLeft');
      }
    });
  }, {threshold: 0.1});
  $('.go').each(function(){
    observer.observe(this);
  });
});
Если нужен IE или Safari старее 12, то вот полифил: https://www.npmjs.com/package/intersection-observer

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

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

Худший ответ:
Логи в консоли глянуть.
Вопрос: Жёсткие диски "для видеонаблюдения": реальная необходимость или маркетинг?

Лучший ответ:
1) У Purple отключена парковка, которая для дисков, использующихся в видеонаблюдении, нужна как зайцу стоп-сигнал.
2) Purple подходят для использования в RAID-массивах опять же из-за отключенной парковки, а также за счёт поддержки TLER.
3) Есть ещё какие-то оптимизации в прошивке, связанные именно с заточкой под видеонаблюдение. Где читал - искать лень, сами нагуглите при интересе.

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

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

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

Чисто технически это одинаковые диски.
Вопрос: Программа для создания 3D макета-прототипа техники?

Лучший ответ:
Не совсем понял, что именно вы хотите. 
По тегам и тексту, вы как-будто хотите себе программу наподобие figma, но для 3д.
Если надо программу для 3д-моделирования, то можно рассмотреть на Blender или Maya
Если надо для не-художественного 3д-моделирования то Fusion360

Худший ответ:
Подскажите программу для создания 3D макета-прототипа техники.
Нихрена не понял - Вам инженерная программа нужна для трехмерного моделирования? КОМПАС, Autodesk Inventor. Для "илитного" яббла правда не знаю, есть ли что - мы же илита, что нам простые инженерные задачи...
Вопрос: В чем профит использования Linux для программирования?

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

Худший ответ:
Как правило, предполагается работа программы на конкретной архитектуре - и на этой архитектуре их надо тестировать. Серверные программы чаще работают под Linux.
Кроме того, подсистема Linux есть в Windows. А на большинство остальных систем - программа, написанная под Linux, портируется проще, чем программа, написанная под Windows, ибо остальные операционки принадлежат к семейству Unix/POSIX.
К тому же под Windows есть неиллюзорная вероятность словить вирус, шифрующий файлы. И система распределения полномочий там весьма ущербная.
Вопрос: Как сделать подобный «вырез» в блоке?

Лучший ответ:
Как вариант, так
snippet

Худший ответ:
Посмотрите здесь https://coderoad.ru/8560640/%D0%92%D1%8B%D0%BF%D1%...
Вопрос: Почему выдает 55?

Лучший ответ:
Потому что 1+2+3+4+5+6+7+8+9+10=55
А вы чего ожидали?

Худший ответ:
Итерация №1: 0 + 1 = 1
Итерация №2: 1 + 2 = 3
Итерация №3: 3 + 3 = 6
Итерация №4: 6 + 4 = 10
Итерация №5: 10 + 5 = 15
Итерация №6: 15 + 6 = 21
Итерация №7: 21 + 7 = 28
Итерация №8: 28 + 8 = 36
Итерация №9: 36 + 9 = 45
Итерация №10: 45 + 10 = 55
Вопрос: Как правильно использовать anonymous namespace?

Лучший ответ:
Если хочется полностью исключить возможность использования приватных выражений, то использовать стоит не пространства имен, а класс с вложенными типами под соответствующими секциями.
class a final
{
private:
	class ex
	{
		int f = 0;
	};
	
	static void foo() { std::cout << 'f' << std::endl; };
	
public:
	class F
	{
	public:
		F() { foo(); };
		
	private:
		ex m_exes[4];
	};
};

Худший ответ:
Такое делают при помощи PImpl, если есть реальная необходимость скрыть детали реализации. Решает проблему "incomplete type".
Вопрос: Как разработать масштабную социальную сеть(Про технологии, подбор программистов, и не только)?

Лучший ответ:
Убийца Гугла с программистами-фрилансерами?
А вы смешной.

Худший ответ:
Какие по вашему мнению лучше всего использовать технологии программирования для реализации социальной сети? Вы главный разработчик/технический директор? Или идейный вдохновленец? В первом случае вы сами должны решить что и где использовать, во втором случае - наймите первых, именно они будут определять требования по функционалу, исходя из технического задания(я так понимаю, вы хорошо подготовились и у вас оно уже есть).На всякий случай уточню, что я привел в пример Facebook и Instagram только для того, что бы вы поняли масштабность...Без вопросов, мы тут раз в 2-3 недели с такими масштабистами общаемся.При этом, нужно что бы всё делалось так, чтоб свести вероятность каких то технических проблем(или хотя бы больших проблем) к минимуму(проблем из за неправильных, некачественных действий программиста). Грамотный лид / техдир, с реализованными живыми проектами - основа стабильности системы.Как вы считаете, какое оптимальное число разработчиков должно быть для того, что бы начать разработку? от 1 до 2000(количество сотрудников фейсбук на 2011 год). Спросите у лида. Все что  относится к вопросам разработки - спрашивайте у вашего начальника по техническим вопросам. Вы все равно здесь ничего толком не описали, какого ответа вы ждете?Стоит ли иметь дело с программистами фрилансерами?Спросите у лида. Если ему удастся вписать их в общую разработку - почему нет?Можно ли как то защитить идею от кражи участниками команды?Или вариант один - искать порядочных людей?Если идея действительно оригинальная - патент. Но на идею емнип не везде действует патентное законодательство. + NDA
тем не менее всего не предусмотришь, как известно идея фб стырена(и даже кино известное есть).
Вопрос: Создание ИП для удалёнки, подводные камни?

Лучший ответ:
Такое ощущение, что тут комментируют кто угодно, только не ИП. 

Нет никаких проблем с ИП. Особенности:
1. Раз в квартал налог 6% на упрощенке. Заработаете 0 - заплатите 0. 
2. Раз в год (можно на каждый месяц разбивать) страховой и пенсионный платежи. Первый в районе 1000 рублей/месяц, второй в районе 3500/месяц + 1% от дохода свыше 300 000 рублей один раз в год. Да, это дикость, что можно ничего не зарабатывать, но все равно платить по 4500 в месяц. Но таковы уж правила игры. Принимать вам это или нет - ваше личное решение. 
3. Бухгалтер вам не нужен. Любой внятный банк сделает всю отчетность за вас - несколько раз на кнопку нажать только будет нужно. И отправит все сам. 
4. Совершенно нормальная практика, что с вами хотят работать в белую. Это хорошо и для вас и для компании, которая сэкономит на налогах приличную сумму. Вместо 149 тысяч они переведут вам 100. 
5. Держите бумаги в порядке и не будет проблем ни с судами ни с налоговой. Тут все просто. Ну, конечно, до тех пор, пока вы не станете представлять интерес для различных любителей чужого труда. Но сейчас вам это не грозит.

Худший ответ:
Акты подписывать надо. И храните все документы 5 лет. 
+ ип отвечает по договору ВСЕМ имеющимся имуществом
+ налоги надо платить. И пенсионку

Я советую ООО с упр бухгултерией. 6% на переведенные Вам деньги
Вопрос: Как програмно узнать, на какую букву слова падает ударение?

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

Худший ответ:
только словарь+перебор
других вариантов/алгоритмов нет
Вопрос: Что занимает место на диске?

Лучший ответ:
https://windirstat.net/
Прогоните нужный диск программой WinDirStat, она покажет деревом что у вас и где лежит, сколько места занимает.

Худший ответ:
еще можно заюзать https://www.jam-software.com/treesize_free
Вопрос: Чем заклеить провод зарядки Макбука?

Лучший ответ:
Вот чел заморочился термоусадной трубкой. Просунул таки разъём через неё, изрядно растянув.
видео

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

Лучший ответ:
С чтения теории и составления математической модели и математического же алгоритма.
Вообще тема шахматных ботов заезжана и раскрыта хорошо. Машинное обучение тут в целом не нужно.

Худший ответ:
Есть такая нейронная сеть "Обучение с подкреплением" (я бы назвал "кнут и пряник") - Reinforcement Learning.
Можно сделать, как обучался ИИ по игре Го: одна программа играет с другой и каждый помогает друг другу настраивать нейронную сеть.
Пример из Матлаба, как учили робота ходить.
Вопрос: Как перебрать два массива?

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

1. Простой перебор вложенными циклами, в качестве результата выводим id совпадающих элементов.
$arr1 = [
            1 => ['id' => 1, 'name' => 'DJ'],
            2 => ['id' => 2, 'name' => 'Bass'],
            3 => ['id' => 3, 'name' => 'Vocal'],
        ];

        $arr2 = [
            ['name' => 'Alex', 'specId' => 1],
            ['name' => 'Tim', 'specId' => 2],
            ['name' => 'Dave',  'specId' => 2],
        ];

        $result = [];
        foreach ($arr1 as $arr1_item) {
            foreach ($arr2 as $arr2_item) {
                if ($arr1_item['id'] == $arr2_item['specId']) {
                    $result[$arr1_item['id']] = $arr1_item['id'];
                }
            }
        }

var_export($result);

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

$arr1 = [
    1 => ['id' => 1, 'name' => 'DJ'],
    2 => ['id' => 2, 'name' => 'Bass'],
    3 => ['id' => 3, 'name' => 'Vocal'],
];

$arr2 = [
    ['name' => 'Alex', 'specId' => 1],
    ['name' => 'Tim', 'specId' => 2],
    ['name' => 'Dave',  'specId' => 2],
];

$result = array_filter($arr1, function ($item1) use ($arr2) {
    return in_array(
        true,
        array_map(function ($item2) use ($item1) {
            return $item2['specId'] == $item1['id'];
        }, $arr2)
    );
});
var_export($result);

Худший ответ:
Вы можете из первого массива собрать новый, в котором ключом будет id, а значением name. Тогда получать значение по ключу станет гораздо проще:

$arr1 = [
		1 => ['id' => 1, 'name' => 'DJ'],
		2 => ['id' => 2, 'name' => 'Bass'],
		3 => ['id' => 3, 'name' => 'Vocal'],
	];

	$arr3 = array();
	foreach ( $arr1 as $key => $arr1_value ) {
		$arr3[$arr1_value['id']] = $arr1_value['name'];
	}

	$arr2 = [
		['name' => 'Alex', 'specId' => 1],
		['name' => 'Tim', 'specId' => 2],
		['name' => 'Dave',  'specId' => 3],
	];

	echo '<ul>';
		foreach ( $arr2 as $key => $arr2_value ) {
			echo '<li>' . $arr3[$arr2_value['specId']] . '</li>';
		}
	echo '</ul>';
Вопрос: Возможно ли такая функция?

Лучший ответ:
Всё надо учить. И ООП, и MVC, и фреймворки.
А перед этим надо освоить чистый РНР. Плюс SQL, базы данных, программирование, протоколы, безопасность, устройство серверов
От курсов толку не будет, надо купить нормальную книжку. И не одну.
Ну и запастись терпением.
Годика через два-три сможешь создать нормальный веб-сайт.

функцию создать можно.

Худший ответ:
1. Сначала нужно учить объекты в PHP и что-то написать своё с использованием этих объектов.
2. Научиться читать и понимать код.
3. Ознакомиться с принципами создания (проектирования) архитектуры: паттерны проектирования.
4. Посмотреть: как сделано в популярных фреймворках и сравнить.
5. Поставить себе цель что-то сделать самостоятельно и начать с проектирования архитектуры.

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

Лучший ответ:
Никак

Худший ответ:
Воспользуйтесь внешним сервисом,  которые полностью предоставляют API для смс, вот например методы получения сообщения:
https://smsc.ru/api/http/get_data/inbox/#menu
И напишите под него некое решение, которое и будет в вашей схеме работать...