Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Go + Websocket или NodeJS + Websocket?

Лучший ответ:
два языка VS один язык
Go + Websocket -> нужно либо два программиста, либо один, но знанием обоих языков
NodeJS + Websocket -> достаточно одного JS программиста

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

Лучший ответ:
Добрый день. У меня есть своя биржа.
Монетизация по типу Фрилансим - платное размещение откликов, услуги по выделению цветом и подъёму в списке различных единиц (заказы, отклики, участники), возможность прикрепить портфолио к откликам. Это наиболее простой вариант, но какие бы крутые проекты не крутились при такой схеме, монетизация получается фиксированной.
Возможно также введение на сайт рекламы.
Монетизация за счёт безопасной сделки довольно сложна юридически, но теоретически тоже возможна.

Худший ответ:
Выступить гарантом. Потребуется квалифицированный персонал для разрешения споров.Работать, как посредник. Что-то вроде доски объявлений. Задача будет отбиваться от накруток и мошенников.
Это основные подходы.p.s. Если нет охрилиарда денег, либо огромного желания, даже не начинайте.
Вопрос: Call-центр — Asterisk — 1C?

Лучший ответ:
Несколько вариантов, поищи в яндексе по слову "Простые звонки 1С"
1c.ru/news/info.jsp?id=17280
Вот обзор вариантов интеграции:
https://habrahabr.ru/company/myasterisk/blog/127925/

Худший ответ:
Выходит либо интегрировать текущую БД сторонние конфигурации. Забыл добавить БД Розничной торговли целиком самописная.
Вопрос: Лучший учебник английского на каждый день (разделенный на уроки)?

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

Худший ответ:
По своему опыту могу сказать, что зубрение теории по книгам это не эффективно. 
Советую больше читать на разную тематику - новости\проф. статьи\юмор и т.д., смотреть сериалы и мультфильмы, читать комментарии и переписку людей (github issues к примеру). Вкупе с теорией результат будет что надо.
Вопрос: Как пересчитать среднее арифметическое?

Лучший ответ:
s - сумма проголосовавших очков
q - количество проголосовавших
n - новый голос (очки)
Ср. ар. = (s+n) / (q+1)

Худший ответ:
Если вам известно предыдущее значение среднего арифмитического M и количество значений N, то пересчитать среднее арифмитическое при добавлении элемента x можно по формуле:M’ = (M*N + x) / (N + 1)
Вопрос: Как измерить скорость php-функции?

Лучший ответ:
$start = microtime(true);
// function 
$timeSpend = microtime(true) - $start;
log($timeSpend);
Но если есть возможность установить профилировщики, то xhprof, blackfire, pinba.

Худший ответ:
Допустим, есть некоторый массив из 10 элементов и две функции, for и foreach, очевидноO(n)
Вопрос: Можно ли использовать наушники после воды?

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

Худший ответ:
Ну тут все довольно просто) Если замкнут, какая разница для телефона/компьютера? Да никакой)
Вот то, что они вам электричеством могут долбануть в ухо, это да (будет не очень приятно), но не помрете))
Вопрос: В чем различия между массивами String [] args и String... args?

Лучший ответ:
Запись вида methodName(T... args) называется varargs (Variable Arguments)
Удобство в том, что можно передавать сразу аргументы и не создавать массив и количество аргументом может быть 0 или N. Пример:public static void vargs(final String... strings) {
	System.out.println(strings);
}

public static void arrs(final String[] strings) {
	System.out.println(strings);
}

public static void main(final String... args) {
	vargs(); // ok
	vargs("1", "2"); // ok
		
	arrs(); // compilation error
	arrs(new String[] {"1", "2"}); // ok
}
Есть пара моментов: методы с varargs нельзя перегружать и varargs должен быть последним аргументомpublic static void manyParams(final String... strings, final Integer number) {
	// compilation error
}

public static void manyParams(final Integer number, final String... strings) {
	// ok
}

Худший ответ:
https://docs.oracle.com/javase/1.5.0/docs/guide/la...
Отличие:public static void method1(final String arg0, final String[] arg1, final String arg2) {
	
}

public static void method2(final String arg0, final String... arg1, final String arg2) {
	
}
Метод 1 компилируется, 2 нет.
P.S.: Overloading тоже не работает.
Вопрос: Стоит ли использовать сервер в качестве рабочего ПК?

Лучший ответ:
Стоит ли использовать сервер в качестве рабочего ПК?Это уж вам решать стоит или нет.Сильно дешевле, например, сервак: Dell PowerEdge T30 T30-AKHI-001
При стоимости в 32 000 рублей имеет ОЗУ на 8ГБ и процессор Intel  v5 на 3,3ГГЦ.Вы шутите?  Где вы нашли серверное железо дешевле десктопного? Разве что Б/У.Но запустить кейколлектор в 50 потоков, фотошоп или скажем отрендерить видеоролик на таком можно не хуже чем на ПК с такими параметрами?Не хуже конечно. Но какие видеоролики и рендеры с 8Гб памяти?  Это норма для офисного ПК - ворд, эксель и браузер.

Худший ответ:
Стоит, если понимаете и разбираетесь в вопросе и понимаете что вам нужно именно серверное железо под ваши задачи. ИМХО, лучше купить бу брендовое железа и если чем-то не устаривает - то заранее предусмотреть возможность апгрейда. Лучше покупать все же не прямо сервера, а так называемые workstation. У HP - это Z-серия, Z400/420, Z600, Z800  и тд. У Lenovo - S20, S30, D20, D30 и тд.
Крайне рекомендую выбирать модели поддерживающие регистровую память, она сильно дешевле обычной.
Если хотите новое железо, то тут все печальнее - единственное что приемлемо по деньгам - это самосбор, на основе материнок из китая (рекомендую профильную группу на оверлокинг), процы и память с того же Али.
Если руки растут из нужного места, можно за недорого собрать монстра, как вот этот товарищ. Но, имхо, это уже перебор, для домашнего использования.
https://www.youtube.com/watch?v=dBI3HC-op3I
PS Есичо я не теоретик, купил себе Lenovo s20 и апнул его на проц x5870. Единственный прокол - память. В описании было написано что поддерживает ECC, но описание было составлено как-то странноECC Supported
Maximum Capability : 1600MHz, UDIMM : PC3-10600 (1333MHz), RDIMM : PC3-8500 (1066MHz)
В итоге на форумах нашел несколько людей с тем же вопросом, которые сказали что RDIMM все же не поддерживается, пришлось покупать обычную.
Вопрос: Как скрыть алгоритм от дизассемблера?

Лучший ответ:
Security through obscurity обычно приводит к тому, что некто пряморукий, с большим количеством времени и желания (идеальный нарушитель - мотивирован, подготовлен, обеспечен временем :) ) хачит этот Ваш алгоритм и потом ржет на весь тырнет...

Худший ответ:
Если Вы хотите "спрятать" реализацию алгоритма, лучше всего это сделать на сервере. В таком случае Вам нужно будет отправить всего лишь один запрос с минимальным количеством данных (по защищенному каналу).
В качестве альтернативного варианта транспорта можете использовать СМС: приложение будет отправлять зашифрованное СМС на определенный номер, а на другом конце сервер обработает СМС и отправит назад такое же зашифрованное СМС, в котором будет ключ.
Если ни один подобный вариант не подходит, лучше всего написать реализацию алгоритма на C (как уже советовали выше), но C точно также можно декомпилировать, если очень захотеть. Софт типа IDA Pro решает подобные задачи на ура.
Единственный способ хоть как-то скрыть и усложнить дизассемблирование - это применение различных техник обфускации бинарного кода. Эта тематика особенно популярна в среде вирусописателей. Они используют т.н. "крипторы", одна из разновидностей которых - это полиморфный криптор.
В полиморфном крипторе зачастую используется виртуализация для защиты кода от анализа антивирусом. Иными словами, Вы должны написать виртуальную машину, под которую скомпилируете Ваш алгоритм. В этом случае выполнением кода будет заниматься виртуальная машина и исходный код алгоритма невозможно будет декомпилировать без знания устройства ВМ.
Чтобы не писать все самому с нуля, посмотрите вот эти ссылки и погуглите на тему virtualization obfuscation:
vmpsoft.com - софт который делает как раз то что Вам нужно
https://oreans.com/codevirtualizer.php - похожий софт
https://www.reddit.com/r/ReverseEngineering/commen...
https://github.com/fritzone/obfy - небольшой фреймворк на C++ для обфускации кода.
В целом же все эти варианты (кроме варианта с запросами на сервер) не дадут 100% защиты от декомпиляции кода.
Вопрос: Какой редактор кода/IDE выбрать новичку?

Лучший ответ:
notepad++ - только для быстрых правок, открыл файл, поправил - закрыл
Sublime Text  - хороший редактор, но настраивать его под себя займет не одну неделю, ++ требуются знания английского
WebStorm  - Очень тяжеловесная ide -нужна обычно под такие проекты, в которых код компилируется и собирается в запускатор, а также с серверными задачами
Вообще советую сейчас в качестве легковесной ide - Visual studio code - почти все что нужно разработчику есть в коробке, и нет лишнего(как в Webstorm), также есть поддержка модулей

Худший ответ:
Я пользуюсь Visual Studio. Хороший инструмент для редактирования кода. В нем есть также поддержка JS (когда подстраивал под себя, обнаружил). Советую.
Вопрос: Делаю сайт трц и возникла проблема с интерактивным планом этажей как его реализовать?

Лучший ответ:
https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%80%D... 
Самый простой и надежный способ. Работать будет везде. Генераторов подобных карт море.

Худший ответ:
Для вордпресса есть плагин
https://codecanyon.net/item/mapplic-custom-interac...
Вопрос: Как подключить питание для нескольких жестких дисков на материнской плате ASUS Q87T?

Лучший ответ:
Согласен с ТС выше, в комплекте идет разветвитель на ПИТАНИЕ для hdd.
И кстати, на будущее - не вздумайте создавать RAID средствами самой мат платы ( через биос), делайте софт рейд, надежднее

Худший ответ:
Плате в комплекте полагается разветвитель: https://www.nix.ru/autocatalog/motherboards_asuste...
Вопрос: Как распарсить каталог книг?

Лучший ответ:
вот прям всегда такой формат? тогда можно тупо в лоб в циклеs = 'Arthur Conan Doyle – The Adventures of Sherlock Holmes, George Newnes 1892'
author = s.split('–')[0].trim()
by = s.split('–')[1].trim()
last = by.lastIndexOf(' ')
book = by.slice(0, l).trim()
year = by.slice(l).trim()
UPD
ах, это про php вопрос, в нем я не силен :) ну как-то так же можно по любому тоже

Худший ответ:
вот прям всегда такой формат? тогда можно тупо в лоб в циклеs = 'Arthur Conan Doyle – The Adventures of Sherlock Holmes, George Newnes 1892'
author = s.split('–')[0].trim()
by = s.split('–')[1].trim()
last = by.lastIndexOf(' ')
book = by.slice(0, l).trim()
year = by.slice(l).trim()
UPD
ах, это про php вопрос, в нем я не силен :) ну как-то так же можно по любому тоже
Вопрос: Нормально ли работать системным программистом?

Лучший ответ:
Если ты поступишь на "системного программиста", тебе покажут пару примеров, как писать на Си, возможно, покажут всякие ассемблеры, объяснят, как работает компьютер, расскажут про дискретку, алгоритмы, структуры данных, расскажут про теорию графов, топологии сетей и прочие интересные штуки. Такие знания очень полезны любому программисту.
Только вот не надо думать, что тебя в ВУЗе научат работать, да ещё так, что ты сможешь пойти исключительно на "системного программиста" и даже не заметишь этот плавный переход.Расскажите о специфике этой квалификации, какие есть трудности
Мамины подруги будут просить переустановить виндовс
Знакомые будут сквозь зубы говорить "хорошо устроился, сидишь весь день в тепле, кнопочки нажимаешь"
Мама будет хвастливо рассказывать гостям про тебя, а ты будешь смущаться
Бабки из соседнего подъезда скажут: "Вон, Veln из соседнего подъезда в Европу уехал жить, гомосек, наверное"Да и нормально ли вообще разрабатывать проги, с которыми пользователь не взаимодействует?
Только если ты законченный мизантроп

Худший ответ:
Эх, ностальгия... В столе до сих пор лежит книжка "ЕС ЭВМ. Руководство системного программиста. Программы IMASPZAP/IMGSADMP" И я ими реально пользовался :)
Терминология, кстати из 90-х - именно тогда я работал системным программистом. Сейчас такой специальности нет. Есть кто угодно - системный администратор, системный архитектор, есть самые различные программисты - но системных программистов нет. Вымерли, как мамонты за ненадобностью. Фактически они делали то, что делают нынешние админы - устанавливали и настраивали ОС, ВМ, системные программы, обязаны были глубоко знать работу ЭВМ - потому что писали в том числе ридеры, хидеры и прочую хрень, работавшую внутри ОС (модули ядра - если по нынешнему). Только с железом они не работали - на это были специальные люди...
Специфика? Ну, скорее все то же самое - ассемблер, знание архитектуры компа, умение работать напрямую с железом, обязательно С, указатели, модели памяти etc.  Разработка драйверов, модулей ядра, компонентов ОС, возможно микроконтроллеры, малинки всякие :) Вещь интересная - если интересоваться. Никакого интерактива, никаких UI/UX
Вопрос: Возникают ошибки при пользовательской загрузке файлов на сервер, в чём проблема?

Лучший ответ:
Объект $FILES заполняется автоматически, не нужно ничего присваивать.
Также при отправке формы должен быть указан параметр enctype.

Худший ответ:
Попробуй так: $_FILES['userfile']
Вопрос: Как контролировать версии файлов веб проекта?

Лучший ответ:
Да, бывают. Называется git. Это то, что ваши программисты скорее всего использовали.
Но это их инструмент, а не ваш. Вы не знаете, что они там меняли, и изменения могут быть несовместимы с вашим дата-сетом (кэш-серверами, как редис, базой данных, .env файлом и так далее) на продакшене, поэтому откатывать какие-то изменения без участия программиста - очень опасно.
Ваша проблема в том, что программисты не пишут тесты и не тестируют сами, у вас нету тестеров и нету staging'а (сервера, на который попадают все изменения для тестировия сразу до продакшена). Вам нужно менять workflow.

Худший ответ:
Как вам уже ответили, Git это то "слово" которое вы ищете. Самая популярная распределенная система контроля версий. 
Для начала ознакомьтесь с тем, что это такое, если вам подходит, изучайте здесь.
Конкретно глава про установку на сервер:  Установка Git на сервер.Но все же рекомендую сначала полностью познать концепции VCS, в любом случае в вашей IT-жизни пригодится, или для личного использования. Удачи.
Вопрос: Как правильно использовать namespace?

Лучший ответ:
Потому что PDO находиться в глобальном пространстве имен, а не в model.
Соответственно вам нужно либо импортировать в текущее пространствоuse PDO;
либо обращаться с указанием пространства имен\PDO;
Первый вариант предпочтительней.

Худший ответ:
Потому что для доступа к глобальным классам нужно использовать конструкцию \ClassNamepublic function getConnection():\PDO{
        $con = new \PDO(DRIVER.HOST.PORT.DATABASE,USER_NAME,PASSWORD);
        $con->setAttribute(\PDO::ATTR_ERRMODE,\PDO::ERRMODE_EXCEPTION);
        return $con;
    }
Вопрос: Почему блоки выходят за блок родителя?

Лучший ответ:
Из-за свойства "float". Решения: применить к родительскому блоку хак clearfix, либо (лучше) использовать flexbox для выравнивания элементов.

Худший ответ:
Потому что используете float
Вопрос: Почему банят сервер(vps/vds) если на него обрушился DOS?

Лучший ответ:
Зависит от хостера и мощности атаки.Заботой о других клиентах.Зависит от хостера и мощности атаки.DDoS может породить поток трафика такого объёма, что исчерпает пропускную способность сетевого интерфейса сервера, сетевого оборудования ДЦ или даже его каналы связи. Были случаи, когда DDoS укладывал магистральные каналы целой страны. Поэтому неважны лимиты вашего виртуального сервера.
P.S. DOS - это дисковая операционная система, а аббревиатура Denial of Service пишется - DoS.

Худший ответ:
Трафик такой машины с VDS урезан. Это пишется при соглашении при покупке. Значит у хостера нет средств лимитизации трафика.
Вопрос: Docker контейнер останавливается после запуска?

Лучший ответ:
Он не падает - он работает как и должен: останавливается после выполнения команды.
Если потом надо в нем запустить веб-сервер то сделать можно как-то такCMD ./vendor/bin/doctrine-module migrations:migrate && <some_command_to_start_server>

Худший ответ:
RidgeA Вы правы! Спасибо.
Окончательно строчка выглядит так:CMD ping mysql -c40 && ./vendor/bin/doctrine-module migrations:migrate && apache2-foreground
сначала приходится около 40 секунд пинговать контейнер с базой, ибо он инициализируется.
читал что можно сделать скриптами вида wait-for-it.sh, но по сути это тот же пинг.
Вопрос: Может ли жёсткий диск замыкать блок питания?

Лучший ответ:
1. Небольшая возня с мультиметром даст ответ. Померьте величину напряжения по линиям 12 вольт (желтые провода), 5 (красные) и 3,3 (оранжевые), когда этот самый диск отключён от компа (по питанию, без SATA) и когда он подключён. На исправном железе разница между этими измерениями не должна превышать 10%. Если она больше, поменяйте БП. Если на другом БП то же самое - вот тогда можно этот диск считать неисправным.
2. Если вы считаете, что этот диск просаживает питание компа - значит, он берёт себе ток сильно больше нормы. Лишний ток не исчезает бесследно, его энергия должна что-то нагревать. Потрогайте корпуса микросхем на плате контроллера диска голым пальцем - если некоторые из них нагреты так, что палец не терпит, то диск дохлый.
3. Крайне полезно проверить, не вздулись ли электролитические конденсаторы на материнке и в БП. Это вообще стоило бы делать регулярно, хотя бы раз в полгода, как меру профилактики.

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

Лучший ответ:
А это точно один и тот же шрифт? По-моему, нет.

Худший ответ:
В разных программах разные алгоритмы отображения растровых шрифтов. Вы удивитесь, но даже в трёх разных браузерах (Firefox, Chrome, IE) будут по-разному отображаться. И это только на одной ОС, а если те же браузеры взять на линуксе или маке (кроме IE) - то там тоже свои результаты будут, отличающиеся от Windows.
И более того, в фотошопе можно выбрать для текста 5 алгоритмов рендеринга
P.S. Но в вашем примере - у вас шрифт не загрузился, потому отображается стандартный вместо него.
Вопрос: Поясните за тонкие клиенты?

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

Худший ответ:
Все очень зависит от ситуации и задач. Можно много рассуждать о лицензиях на софт например и железо. Но если КРАТКО это даёт профит только при закупке достаточно большого количества клиентов и мощных серверов под них. Для 5-6 штук профит нулевой.
В своё время считали, и вышло что покупка Пролианта с Ксеноном, кучей оперативы, серверной виндой с лицензией на клиентов выходит дороже, чем купить десяток другой простых офисных компов.... не могу понять зачем тонкому клиенту быть мощным?
И да, клиенту не надо быть мощным. Да и брендовым ему быть не надо. Проще купить материнок со встроенным Селероном или Атомом и воткнуть в него флеху с линухом или спец дистром аля ThinStation. Можно развернуть бездисковую загрузку, но это больший гемор (проверено! проблема даже не настройка, а что в в локальном линуксе можно еще что-то держать). При копеечной цене флешек или SSD - особо нет смысла.
Вопрос: Почему пропадает language bar в windows 10?

Лучший ответ:
Вот эта надпись не смущает совсем?
Смотрите GPO!

Худший ответ:
Придумали костыль, может кому пригодится.
Суть в том, что стоит лишь открыть настройки языка, как панелька сама появляется. Поэтому был написан небольшой скрипт, открывающий настройки, а затем их закрывающий (Саша, молодец :D) и помещен в автозагрузку для всех пользователей. А то администраторы домена не чешутся.
Бат файл:
@ECHO OFF
ECHO 
start ms-settings:regionlanguage
TIMEOUT /T 1
taskkill /F /IM systemsettings.exe
Закинут сюда:
%ProgramData%\Microsoft\Windows\Start Menu\Programs\StartUp
Вопрос: Майнинг, действительно ли он приносит доход, или же всё же расход?

Лучший ответ:
Да, он приносит доход (но есть оговорки, читать до конца). Наибольший на альт-коинах (Эфир, Монеро и т.д.), прибыль выше, чем от майнинга биткоина. 
НО все упирается в курс и возможности. Если курс полетит вниз вся прибыль уйдет в никуда это первый момент, второе - для хорошого заработка нужна минимальная ферма это большие вложения (свыше 30к$), в этих условиях учитывая высокий курс крипты можно зарабатывать в год от 10-20к$ до 30-40к (и выше учитывая стартовые вложения)
А вообще советую заниматься инвестированием, а не майнингом. Порог входа ниже, риски меньше при правильном подходе.

Худший ответ:
1/ причём тут веб-разработка
2/ рискованные инвестиции в целом и невозможность конкурировать с китайскими фабриками и т.п.
Вопрос: Как по клику на кнопку увеличить масштаб страницы?

Лучший ответ:
Вот пример таких кнопок: тык

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

Лучший ответ:
У верстальщиков есть негласное правило - то, что можно сделать CSS'ом (т.е. обойтись без JS) - стоит делать именно CSS'ом. Главное, не гиперболизировать это правило и не возводить его в степень абсолюта. Оно работает в тех случаях, когда трудозатраты на оба варианта (JS/CSS) соизмеримы и вариант с CSS'ом не влечёт за собой замусоривание кода (например, слайдеры можно делать в т.ч. и на "чистом CSS", но такой подход вряд ли можно будет считать хорошим решением в большинстве случаев).

Худший ответ:
Та как бы нету правильного ответа, нету адекватных критериев которые однозначно могли бы сказать как правильно. Я бы ее делал в хтмл и показывал/скрывал, но это имхо просто потому что мне кажется так лучше
Вопрос: Чем читать excel файлы в PHP?

Лучший ответ:
Попробуйте перед работой с файлом пересохранить его в xlsx (или вовсе в csv, с которым точно не будет проблем)
Мы использовали для этой цели утилиту unoconv (по сути, LibreOffice). Конвертировали xls и xlsx от клиентов в csv, т.к. работа с xlsx начала требовать уж очень много ОП и времени с использованием указанных вами библиотек.

Худший ответ:
Не знаю, в каком формате 1с формирует файлы, но если это .xlsx - то это zip-архив обычный. Откройте его и поковыряйтесь в xml-ках, посмотрите что там и где хранится.
Вопрос: Почему не приходят письма на почту?

Лучший ответ:
Начать отладку однозначно стоит с того, что прописать в settings.pyEMAIL_HOST = 'localhost'
EMAIL_PORT = 1025
EMAIL_USE_TLS = False
EMAIL_USE_SSL = False
Запустить отладочный почтовый серверpython -m smtpd -n -c DebuggingServer localhost:1025
Попробовать что-нибудь отправить и посмотреть на результат, как того советуют в документации.

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

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

Худший ответ:
Уважаемый Дон. Есть ещё третий вариант. Передать в функцию объект и одним из его свойств назначать, что функция действительно получила конечный результат. И без выставления этого свойства любой ответ признаётся невалидным. 
Все зависит от задачи.
Вопрос: Кто-нибудь может подсказать хорошие курсы по системному администрированию?

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

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

Лучший ответ:
Предлагаю тему лучше, которая выгорит 100% — социальная сеть.

Худший ответ:
Есть описание как создавалась workzilla.
https://habrahabr.ru/company/workzilla/blog/173535/