Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Добавил к своим устройствам MacOS, с чего начать ознакомление с инструментами?

Лучший ответ:
консоль: zsh, homebrew, rvm.
gui: RubyMine/Sublime/TextMate.
браузеры те же, что и на других системах.

Худший ответ:
Transmit - для ftp
Transmission - для торрентов
Airmail - почта
Pixelmator - если не нужен фотошоп но нужен качественный редактор
Когда уже разберетесь с системой некоторые утилиты которые сильно облегчают жизнь
iTerm + ohMyZSH - для терминала и его няшек
Alfred 2 - для удобства автоматизации всяких няшек
BetterTouchTool - для шорткатов, жестов и снаппинга окон
Вопрос: Современная и удобная CMS для сайта-каталога продуктов с поддержкой мультиязычности?

Лучший ответ:
Судя по всему вашему клиенту понравился именно дизайн - от CMS это не зависит.
Для каталогов рекомендую MODX - работает куда быстрее WordPress.

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

Лучший ответ:
Именовать слои на английском считается "хорошим тоном". Вам никто не запрещает именовать их на русском, но если вы владеете нормально английским и можете называть слои на нём - однозначно стоит на английском.

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

Лучший ответ:
Можно сделать так

Худший ответ:
Можно сделать так
Вопрос: Существует ли быстрый способ создания структур для парсинга JSON в Golang?

Лучший ответ:
Возможно, есть вещи по-умнее (через рефлексию), но я использовал это

Худший ответ:
Если вы работаете с JSON, и часть данных вам не нужна, можно описать её как json.RawMessage. Иногда, если ответ от сервера приходит с большой глубиной вложенности, а нужная нам часть лежит где-то на поверхности, можно добраться до неё описав ненужные части как json.RawMessage тип.
Вопрос: Nginx обновился сам и всё поломал, как?

Лучший ответ:
почему-то взяла и сама установилась, как так?
Само в никсах ничего не происходит. Значит, настроено автоматическое обновление и установка новых версий пакетов. Уберите, если не устраивает.
И сторонние репо тоже, если квалификация недостаточна для их использования.

Худший ответ:
Само ни чего не происходит, если не настроено.
last -n 10
tail -n 100 /var/log/apt/history.log
Смотри еще что лежит в /etc/nginx, возможно есть старый файл nginx.conf
Вопрос: Как найти дешевого и надежного регистратора?

Лучший ответ:
Недавно задавал похожий вопрос, в итоге остановился на www.namecheap.com/ Все необходимые возможности есть, цены хороши.

Худший ответ:
Пользуюсь godaddy, плюшек хватает (удобная панель управления dns, возможность скрывать персональные данные в com-ах, и т.д.). Проблем не было.
Вопрос: Как сделать «компактную» пагинацию в django?

Лучший ответ:
Оставьте две секции:if page.has_previous и if page.has_next
По сути:
if page.has_previous
    page.number   #активная ссылка
else
    page.number
if page.has_next
    page.paginator.num_pages #активная ссылка
else
    page.paginator.num_pages
Будет что-то типа (в зависимости от оформления) "Previous...................Next"

Худший ответ:
Такое проще решить в верстке и/или в темплейте
https://stackoverflow.com/questions/25420470/limit...
esimakin.github.io/twbs-pagination
Сделай блок с линками на страницы и горизонтальный скролл
karaboz.ru/2007/11/19/paginator-3000-postranichnay...
https://github.com/Cosmologist/paginator3000
Или ограничь вывод линков со страницами
Для слайса +- 1 страница - использовать встроенное решение Page.has_previous + Page.previous_page_number https://docs.djangoproject.com/en/1.10/topics/pagi...
Если нужен слайс страниц больше чем +- 1 придется покопаться в следующих линках
Если их будет мало, то гуглим по django pagination digglike
https://www.djangosnippets.org/snippets/773/
stackoverflow.com/questions/30864011/display-only-...
stackoverflow.com/questions/1689365/show-page-item...
https://djangosnippets.org/snippets/1735/
stackoverflow.com/questions/5426525/django-paginat...
пс большая часть линков может быть устаревшей -- тестируй на здоровье :)
Вопрос: Какой CSS путь будет для элемента относительно ссылки?

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

Худший ответ:
Попробуйте для a.used выставить отрицательные margin которые при сложении с margin li дадут 0.
Вопрос: Как изменить текст у дочернего элемента после клика по родительскому?

Лучший ответ:
У вас получается при преобразовании объекта, вот такой селектор:$("[object Object] #resp")
Вот так должно сработать:$($(this).attr('id') + " #resp").text(response);
// Или
$(this.id + " #resp").text(response);
Так можно сразу по ID обращаться.
Ну или так:$("#resp", $(this)).text(response);

Худший ответ:
Правильно не $(this + " #resp") а $('#resp', this) или $(this).find('#resp')
Вопрос: Как расширить объект querySelector?

Лучший ответ:
По документации querySelector возвращает объект типа Element. Вы можете его расширить вашим плагином:Element.prototype.myPlugin = function (params) {
  console.log(params.option);
};
document.querySelector('body').myPlugin({ option: true });

Худший ответ:
querySelector возвращает element. Не самая лучшая затея модифицировать прототип DOM элементов.
Лучше сделайте так:myPlugin(document.querySelector('.class'), {option: true});
Вопрос: Чем наследования (extends) отличается от создания новых экземпляров классов (new)?

Лучший ответ:
Класс Car - это трафарет.
Оператор new - это создание ИЗДЕЛИЯ по этому трафарету
extends - это создание нового трафарета (возможно с дополнениями) по которому можно создавать изделия.
Между созданием изделия и создание нового трафарета есть разница?

Худший ответ:
Ваш пример не содержит кода, поэтому он не корректный.
Что если мы напишем так:class Vehicle {
    public speedUp (int newSpeed) {
        speed = newSpeed;
    }
}

class Car extends Vehicle {
    private boolean opened = false;
    public void openDoor {
        opened = true;
    }
}

class Tank extends Vehicle {
    private ammo = 10;
    public void fire(Vehicle enemy) {
        ammo -= 1;
    }
}
Будет более явно видно, зачем нужно наследование. Теперь в классе Tank и в классе Car не нужно описывать отдельно одинаковые методы, так как они вынесены в общий суперкласс.
Класс - шаблон для объектов. Он определяет то, чем характеризуются объекты (поля) и то, как они себя ведут(методы). Внутри класса мы описываем его методы и поля, но для их использования нужно создать экземпляры класса - объекты.
Наследование применяют, чтобы избавиться от копирования кода. Если в двух классах есть что то общее(например, одинаковые методы), возможно, стоит сделать более общий класс, от которого наследуются два других.
TL;DR
В результате наследования получаем более простой и короткий код. В результате создания объектов получаем возможность оперировать данными объекта.
p.s. почитайте книгу какую нибудь, где будут описаны простые примеры инкапсуляции, полиморфизма и наследования. Например, "Head First Java". Или можете обратиться к мини-курсу от Oracle - Oracle tutorial
Вопрос: Как в Pure-FTPd ограничить размер домашнего каталога?

Лучший ответ:
Дисковые квоты для этого существуют.apt install quotatool

Худший ответ:
Ограничить размер файлов в 10 мегабайт для пользователя joepure-pw usermod joe -N 10Подробнее
Вопрос: Липкие блоки jquery?

Лучший ответ:
Я делал такое сам, тут не особо нужен целый плагин.
    $(function() {
        var box = $('#messagelist'); // float-fixed block

        var top = box.offset().top - parseFloat(box.css('marginTop').replace(/auto/, 0));
        $(window).scroll(function(){
            var windowpos = $(window).scrollTop();
            if(windowpos < top) {
                box.css('position', 'static');
            } else {
                box.css('position', 'fixed');
                box.css('top', 0);
            }
        });
    });


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

Лучший ответ:
Эмм... Может стоит вынести футер в отдельный файл и просто сделать include его в всех страницах? Меняете в одном месте - меняется везде

Худший ответ:
Еще можно изначально использовать для верстки Pug, ранее известный как Jade.
Вопрос: Nodejs. Как создать файл с учётом структуры папок?

Лучший ответ:
Да, нужно создавать каждую директорию отдельно. если это лениво, то добрые люди написали модуль: https://github.com/substack/node-mkdirp

Худший ответ:
парсить  вот этим надо str.split('/');
и не поленись проверять все. И только так.
Вопрос: Можно ли убрать охлаждение блока питания при малой нагрузке?

Лучший ответ:
Купите тупой пассивный блок питания на 12В. От роутеров, светодиодных лент и прочей подобной мешуры.

Худший ответ:
Есть несколько решений:
1) Заменить вентилятор на silent, поищите в магазнах продаются бесшумные такие, плюс на резиночки его посадить
2) Поставить резистор в плюсовой кабель, чтобы меньше оборотов выдавал
3) Выкинуть выентилятор совсем, тихо, но может перегреться и отпаяться чегонить. Тут не угадаешь, у меня так один БД стоял год, потом просто перестал работать
Но прочитал еще раз вопрос, у вас нужна вообще в малом количестве ват, человек выше дал хороший совет. Купить просто блок питания на 12вольт
Вопрос: Служба безопасности, полиграф и психолог при собеседовании. Расскажите, у кого было?

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

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

Лучший ответ:
можна так спробувати
add_filter('woocommerce_cart_needs_payment', 'disabled_payment');
function disabled_payment () {
	return false;
}

Худший ответ:
подскажите каким модулем или кодом можно отключить страницу оплаты при покупке товара woocommerce? модуль https://wordpress.org/plugins/yith-woocommerce-cat... непотходит, он у всех товаров отключает кнопки и страницы оплаты...
Вопрос: Как запретить отправку пустого поля формы?

Лучший ответ:
Атрибут required

Худший ответ:
Вот так$(document).on('submit', '.js-form-search', function(){
	var area = $('select[name="area"]');
	if (!area.val()) {
		area.prop('disabled', true);
	}
});
Вопрос: Как связать Vue.js с php?

Лучший ответ:
>Или лучше связать front с backend через ajax запросы к api?
This.

Худший ответ:
в HTML<input type="hidden" id="data" value="<?= json_encode(['a1' => $a1, 'a2' => $a2]) ?>">
в JSJSON.parse(getElementById('data').value);
Наверно не самое лучшее решение, но плюсов достаточно
Вопрос: Как протестировать сайт

Лучший ответ:
wget -r — не вариант?
Потом можно по результатом пройтись грепом и поискать то, что вам надо.

Худший ответ:
ИМХО, тут нужно написать простенького паучка, который ходит по ссылкам, и натравить его на локальную копию сайта.

Сначала скачиваете страницу сайта. Проверяете, нет ли на ней PHP Notice/Error/Warning. Потом вытаскиваете все ссылки регуляркой. Затем для каждой еще не проверенной ссылки, делаете вышеописанное.
Вопрос: Какой алгоритм лучше использовать для хеша пароля?

Лучший ответ:
Bycrypt верно, гуд.
Вообще защита пользовательских паролей в бд составляеться из расчета:
возможная компроментация системы, допустим сегодня Вас хэкнули, слили БД, нужно крякнуть пассы. Конечно в ход идет первым делом всевозможные finder.insidepro.com (довольно сильная и внушительную БД товарищи собрали) и другие сервисы включая cmd5.
Из этого логически можно понять, чтобы сразу не остаться в луже, обязательно использовать алгоритм с salt. Дабы ваши юзеры прожили спокойно еще чуть времени)
И дальше простой расчет идет, к примеру md5 средний показатель гдето 10M/hs, грубо говоря если политика паролей включает минимум 8 знаков разного регистра и использование символов, хэшкрякинг затянеться примерно на недельку для нахождения 90-95% паролей.
Остюда делаем выводы: если обычный md5 - делайте политику смену паролей еженедельно
если bycypt (blowfish) - можно ограничеться полугодовым или годовым периодом обязательной смены паролей.
P.s. В прошлогоднем контесте hashrunner на PHDays 2015, нашей и остальными командами не было ни 1 bycrypt крякнуто, хотя может ошибаюсь по поводу лидирующей команды. Но имхо, просто не тратили время на это. Мы заняли 4 место, немного отстав 3ие. С учетом что первые 3 - несменные лидеры и отцы хэшкрякинга (hashcat/insidepro/jhontheripper)
Вот так вот. Думаю вопрос будет решен)
И надеюсь это очень серьезный подход к безопасности? Или халатность в защите самой системы, другими словами - почти уверены что вашу бд сольют?))

Худший ответ:
тут
Вопрос: Учебник по цифровым интерфейсам?

Лучший ответ:
Открытые реализации интерфейсов на языках описания аппаратуры:
opencores.org/projects?cat=Communication+controller
Готового учебника, как Вы описали, я не знаю, может быть вы напишете.

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

Лучший ответ:
падавану юному говорить для начала свободно надо на основных языках веб-программирования -
js фирст, потом css и html 
учебник Фленагана надо полностью переварить
и php немного для начала - только  основные серверные функции для работы с папками и файлами 
или лучше - изучить api node.js - и делать сервер на js
js - очень простой язык, проще некуда, Лисп в шкуре Си
и самый кросплатформенный - новичкам самое то
не забываем принцип KISS - ценим минимализм-простоту-легкость
без чужих фремворков и библиотек ты получишь максимальную производительность js - в 3-5 раз меньше чем на Си   
в процессе учебы надо написать свое простое клиент-серверное приложение - 
блог, рисовалку, текстовый редактор и тд...
главное - без использования чужого кода - без  библиотек, фреймворков и готовых БД  
ты должен уметь самостоятельно создавать-обрабатывать-сохранять нужные тебе данные
клиент толстый - сервер тощий
офлайн и мобайл фирст 
велосипайд фирст
неизбежно после этого обретешь просветление 
и веб-мастером станешь настоящим инженером-программистом
или даже джедаем или нинзем, если пребудет с тобой СИла
три-пять лет для этого надо грызть гранит
и сможешь продавать свои мобильные приложения в апсторе например
и есть другой путь - темная сторона программирования:
работа по чужому готовому стандартному шаблону-фреймворку 
бесконечный круговорот в сансаре капиталистической индустрии
общение с дебилами, психопатами, жуликами, лентяями и тд
офисное или фриланс страдание
легкая заменяемость программиста
вечная доделка-переделка чужого кода
неспособность делать нужный функционал самостоятельно
постоянное гугление готовых решений
депрессия и уныние
//а самые ленивые становятся верстальщиками-недопрограммистами))
программисты делятся на два типа:
1) инженеры - те кто могут написать шаблон для себя или для других
2) слесари-монтажники и чесальщики-мотальщики - те кто работают в рамках готового шаблона
- оба типа нужны, всё зависит от твоих способностей и талантов

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

Лучший ответ:
В одну модель сохранить несколько кортинок нельзя(если поле для картинок одно).
Для сохранения картинок нужно создать новую модель.
models.pyclass Advert(models.Model):
    category = models.TextField()
    title = models.CharField(max_length=64)
    description = models.CharField(max_length=900)
    date = models.DateTimeField(auto_now_add=True, null=True)


class AdvertImage(models.Model):
    advert = models.ForeignKey(Advert)
    photo = models.ImageField(upload_to='uploads/')
forms.pyclass AddAdvertForm(ModelForm):
    class Meta:
        model = Advert
        fields = '__all__'


class AdvertImagesForm(forms.Form):

    photos = forms.FileField(widget=widgets.FileInput(attrs={'multiple': True}))

    def __init__(self, *args, **kwargs):
        if 'request' in kwargs:
            self.request = kwargs.pop('request')
        super(AdvertImagesForm, self).__init__(*args, **kwargs)

    def clean_photos(self):
        # Остаются только картинки
        photos = [photo for photo in self.request.FILES.getlist('photos') if 'image' in photo.content_type]
        # Если среди загруженных файлов картинок нет, то исключение
        if len(photos) == 0:
            raise forms.ValidationError(u'Not found uploaded photos.')
        return photos

    def save_for(self, advert):
        for photo in self.cleaned_data['photos']:
            AdvertImage(photo=photo, advert=advert).save()
views.pyclass CreateAdvertView(View):
    template_name = 'bulletinboard/add_advert.html'
    form_class = AddAdvertForm
    form_images_class = AdvertImagesForm
    model = Advert

    def get(self, request):
        form = self.form_class()
        form_images = self.form_images_class()
        return render(request, self.template_name, {'form': form, 'form_images': form_images})

    def post(self, request):
        form = self.form_class(request.POST)
        form_images = self.form_images_class(request.POST, request.FILES, request=request)
        if form.is_valid() and form_images.is_valid():
            advert = form.save()
            form_images.save_for(advert)
            return HttpResponseRedirect('/')
        return render(request, self.template_name, {'form': form, 'form_images': form_images})

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

Лучший ответ:
Я бы сделал регулярным выражением. Например строка mystr выглядит вот так asdw#df%mm!@* и надо удалить символы #%!@*, тогдаmystr = re.sub(r"[#%!@*]", "", mystr)

Худший ответ:
stackoverflow.com/questions/10017147/python-replac... - посмотрите там, но можно и в лоб циклом с replace()
Вопрос: Как реализовать API авторизации как у хабра (TM)?

Лучший ответ:
Погуглите SSO
https://github.com/jasny/sso

Худший ответ:
Про SSO уже подсказали, вот про люмен
https://github.com/zhimeilee/sso
Вопрос: Как блокировать https запросы для определенных пользователей?

Лучший ответ:
Настройте squid и радуйтесь. Можно с авторизацией, можно по IP. Как угодно.

Худший ответ:
Ставите прокси, разумеется блокируете выход в обход оного. Если раздавать будете по IP, обязательно не забудьте статически связать IP с компом :) При всей очевидности совета, его часто забывают. Потом формируются списки ресурсов и связываются с юзерами. Возможно можно сделать и от целевого ресурса (vk.com, facebook.com etc), но у нас сделано от юзеров - юзер включается в группу имеющую права на такой-то и такой-то целевой ресурс и не имеющую прав на такие-то ресурсы.
Обезличенным конфигом squid могу поделиться. Разумеется он копипастом не заработает, только в качестве примера.
Вопрос: WiFi адпатер, роутер, свитч, 3-4G модем в одном?

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

Худший ответ:
выбирайте
routerboard.com/product/123
routerboard.com/product/132
routerboard.com/RB951Ui-2HnD
routerboard.com/RB951G-2HnD
routerboard.com/RB951Ui-2nD самый легкий и дешевый
работают с 8v без тяжелой нагрузки на кроне живут полчаса
вес 150-230г
продавцы всё здесь routerboard.com/distributors
Вопрос: Как оценить стоимость сайта под WordPress?

Лучший ответ:
Никогда больше не вступайте в коммерческие отношения с родственниками и друзьями. 
По факту, если не договаривались, то сами прикиньте. Вы всё равно ни на что не рассчитывали. 
Месячную зарплату кассира берите. В средней полосе РФ это около 20 т.р.
И не плохо бы сайт показать!

Худший ответ:
Кто бы знал что вы там сделали, может второй Тостер или Хабр. Невозможно оценить то, что не видишь. Один дизайн может нулями отличаться. Может вы готовый шаблон брали и дорабатывали, а может все с нуля верстали, причем адаптив. Наполняли статьями копипаст или сами писали. Короче вопросов много. Покажите сайт, делов-то )
Вопрос: Чего можно ожидать от индусов коллег?

Лучший ответ:
Можно ожидать лучшего знания английского чем у вас

Худший ответ:
Можно ожидать массу индуского кино в обменнике и не только «не для взрослых». тупые фразочки «русский тупой кодер. Пусть идёт чистит унитазы» на индусском. Пару жалоб про твой плохой кодинг ... чтоб устроить на подработку своего дальнего родственника вместо тебя. Ну и массу довольно забавных случаев которые с трудом может переварить неокрепшая психика.
Вопрос: Построение модели БД по существующей базе данных

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

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

Лучший ответ:
saas.
иначе - никак.

Худший ответ:
Вот старенькая вроде как уже статья, но на нужные мысли натолкнет.
Вопрос: Примонтировать хранилище Amazon S3?

Лучший ответ:
Вам поможет s3fs.
code.google.com/p/s3fs/
компилите, устанавливайте.
А дальше
s3fs bucketname -o accessKeyId=XXXXXXX -o secretAccessKey=XXXXXXXX /mnt/s3drive

Худший ответ:
не работает, когда заходиш в папку и пишеш ls с-ма зависает
Вопрос: Каковы недостатки Ruby?

Лучший ответ:
1. А что мешает другим языкам активно развиваться и  отнимать нишу у Ruby?
2. У PHP есть задел - его много. 
3. У Python и Go и Java есть задел - у него поддержка Google.
4. У Javascript на бекенде есть задел - много фронтендеров. У Javascript на фронтенде есть задел - он незаменим.
5. Ruby развивается, по сути, одним человеком.
6. Ruby - медленный.
7. Новички обычно не такие умные, чтобы искать то, что дружелюбно. Новички выбирают то, о чем на каждом углу судачат или на что много предложений работы.

Худший ответ:
В программах на Ruby может быть много магии. ООП в нём нетривиален (метапрограммирование). www.speaksoftly.io/2016/04/09/left-join.html Из-за отсутствия статической типизации порой трудно вылавливаются ошибки. И эти ошибки норовят вылезти именно в промышленной эксплуатации кода, особенно при недостаточном тестировании. На их поиск иногда уходит больше времени, чем хотелось бы.Выразительность языка Ruby может являться и большим минусом: govnokod.ru/rubyЯзык Ruby будет далеко не лучшим выбором в качестве первого языка программирования. Впрочем, это будет минусом и для многих других ЯП. Так какой же лучше для начинающих?Если нужен язык, который будет бить по рукам, то берите Pascal.