pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Как удалить функцию в c#?

Лучший ответ: Нужно не удалять, а проверять действияvoid func() {
  if (10 <= 5) {
        print("hello");
  }
}
}

Худший ответ: Вы не правильно понимаете, что такое функция. В C# всё делится на мета-данные и просто данные - экземпляры. К примеру вы берёте два яблока красное и зелёное, и говорите у них есть мета-данные: цвет, вкус, запах. Так же у них есть данные: красный и зелёный, сладкий и кислый, ароматный и парафиновый. При этом данные изменяются в зависимости от того какое яблоко вы взяли, а мета-данные это фишка всех яблок, то есть абстракция.
Функции так же можно разделить на мета и экземпляры. Так вот, экземпляр функции - это состояние когда она выполняется процессором то есть у экземпляров функции могут быть разные аргументы, время выполнения, исполненные блоки, но сам код здесь выступает мета-данными. То естьpublic void func( int d ){
int a = d;}
переменная 'a' будет во всех экземплярах, но вот сам d может меняться.
Создание экземпляра функции это сам её вызов то есть когда вы пишите Func(); вы уже создали экземпляр функции и более того выполнили, но удалить её можно лишь изнутри, то есть оператор return. Вы можете создать переменную на экземпляр функции и здесь появляется некая запутанность, экземпляр функции представлен двумя объектами это аргументы+адрес функции и поток выполнения. Первое представлено через делегат, второе через класс thread и на самом деле явно не представлено в C#. У вас всегда есть лишь один поток и каждый вызов функции происходит в одном потоке. Вы можете либо прервать выполнение потока, либо обнулить или вставить пустую функцию используя делегат.
Но всё это такие извращения для ленивых C# кодеров, что куда проще вызывать функцию в зависимости от условия через оператора if.if (10 < 5) {
     Func();
}
то есть нет ни каких поводов удалять функцию(и то не саму функцию а её экземпляр), если можно её просто не вызывать.
Вопрос: Как передать данные из CkEditor через jquery form?

Лучший ответ: docs.ckeditor.com/#!/guide/dev_jquery-section-subm...
Можно еще так$('button').click(function(event){
	event.preventDefault();
	alert($('.form').serialize());
	// ajax код $('.form').serialize() суем в дата
	$.ajax({
		type: "POST",
		data: $('.form').serialize(),
		url: $('.form').attr('action'),
		success: function(data) {
			...
		}
	});
});

Худший ответ: Нашел ответ,  перед $(this).ajaxSubmit(); добавляю обновление CKEDITOR вот так:
CKEDITOR.instances['textatea_add_question'].updateElement();
и все уходит отлично!
Константин Величко опередил немного с ответом :) но все равно спасибо!!!
Вопрос: Сломался корпус ноутбука ASUS M51Sseries

Лучший ответ: Ищите по барахолкам… обязательно кто-нибудь продает на запчасти
www.avito.ru/items/moskva_noutbuki_na_zapchasti_73468909

Худший ответ: Берёте синюю изоленту…
Вопрос: Почему постоянно «хочется отвлечься на что-то другое»?

Лучший ответ: Похоже на то что называется «выгорание». Мозгу надоедает заниматься задачей и он «отдыхает» любым способом. Обратная ситуация называется «рабочий запой», когда люто кодишь двое суток на кофеине. 
Это такой мозг и ничего с этим не сделаешь. Но можно организовать процесс: писать план работ, задачи разобрать по важности/сложности и когда чувствуешь что попрет, открывать список и делать.
В фазу когда настоиграло все к чертям обязательно заменить любыми оффлайн делами. Покапитаню: лучший отдых это смена вида деятельности. Перейти в соседнюю вкладку и листать мемасы это не смена вида деятельности. Для себя заметил что лучше всего помогает физическая активность. Какбе я знал это давно, но как тру ленивая жопа только кивал сам себе: тип да да, кэп, я в курсе. Все в курсе. Но лень. Потом случился ремонт в квартире и понеслась. Хочешь не хочешь, а попотеть в оффлайн приходилось. Тут эта теория нашла подтверждение на практике, продуктивность реально выросла. Фазы «запоя» и «отдыха» более менее уравнялись: на продуктивную работу каждый день приходилось около 3-5 часов, фаз «о, мемасы» и «в интернете кто-то неправ» стало гораздо меньше, затем совсем пропали. Затем ремонт закончился, а привычка уже выработалась (для выработки любой привычки достаточно трех недель, а зачастую и меньше) и ее следствия понравились настолько, что подняв жопу пошел таки в качалочку, в которую планировал последние пару лет. И таки скажу вам по секрету — лучшего варианта нет.
Пообщавшись с людьми которые «профессиональные кочки», то есть которые горят своими результатами в зале, увидел что к отдыху они относятся как к неотъемлемой части работы: ни в одной сфере деятельности такого отношения нет. То есть для них работа это правильно и вовремя вкалывать-правильно вовремя отдыхать. Без любой из частей результата не будет.
Зожника из меня не вышло, а вот проблема из топика растворилась. Переехав в другой город заменил качалочку простым великом: пару часов покататься тож норм.
С наступающим, котаны!

Худший ответ: Классный комментарий
Он, конечно, не отвечает на твой вопрос "почему". В статье на википедии указываются различные причины.
Очень стрессовая у нас работа. Как в шахте 12 часов пахать, только для мозгов. Мы должны уметь все и сразу, и сколь-нибудь прилично освоиться хоть в какой-то технологии совсем нет возможности. Мозг всегда будет выражать свое "фи", и будет прав, потому что, если бы он этого не делал, мы, программисты, подыхали бы в 40 лет.
Как увеличить производительность? Возможно, ненамного удастся.
Упомянутая техника pomodoro хорошая. Еще нужен план, детальный и длинный.
Я как раз в этом месяце озаботился, и удалось увеличить количество производительных часов где-то с двух до трех.
Вопрос: Стоит ли переходить с java на android?

Лучший ответ: Программы для Android пишутся на Java

Худший ответ: нахожусь на 8 уровне JavaRush
тссс!!!  больше никому об этом не рассказывай 
все что тебе нужно это основы синтаксиса, колекци и ооп  + ровные руки
да и прочитай вот эти две статьи
habrahabr.ru/post/132241
habrahabr.ru/post/132374
Вопрос: Есть ли у phpStorm интеграция с phpdbg?

Лучший ответ: Нету, но есть в планах 

Худший ответ: Можно подписаться и проголосовать за issue и вопрос в сообществе: 
https://youtrack.jetbrains.com/issue/WI-21414
https://intellij-support.jetbrains.com/hc/en-us/co...
Я так полагаю, что чем больше заинтересованна аудитория, тем выше вероятность появления фичи. 
Я вот проголосовал за, т.к. актуально в связи на порядок большей скоростью расчёта coverage. При TDD актуально.
Вопрос: Форма поиск по возрасту (от и до)?

Лучший ответ: Третий вариант исключает возможность задать начало диапазона больше, чем конец диапазона (например, от 60 лет до 20 лет)

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

Лучший ответ: Коротко и просто.
Натив.

Худший ответ: я бы заплатил... и не взрывал мозг...
Вопрос: Хорошая ли идея хранить переводы в JSON?

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

Худший ответ: лучше файлами
https://phraseapp.com/blog/posts/php-how-to-transl...
Вопрос: Все объекты true почему это ложь ({}==true)?

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

Худший ответ: Не происходит каст объекта к булевому типу.если все объекты true, почему это ложь ?
Это можно исправить.var t = {
	 valueOf: function () {
        return true
    }
}

console.log( t == true)
Вопрос: XCode или CLion?

Лучший ответ: Конечно Xcode. Тут даже вопросов быть не должно. Не ставить же  Clion на чёртовой джаве, который даже простой файл открыть в состоянии, лишь спустя несколько секунд.
А вообще, что ты собрался писать на C++ под macOS?  Под macOS нативно - это писать на obj-c/swift/си, ну никак не на c++. Ядро написано на СИ, а основные фреймворки - это в перемешку obj-c/swift. К тому же из них нельзя вызвать методы из C++, только Си.
 Хочешь писать под macOS, пиши на Swift, а самые критичные моменты дописывай на Си. Вот и всё.

Худший ответ: Вообще в macOS компиляторы си и С++ стоят уже по умолчанию, можно их вызвать из командной строки. А для сборки проектов можно освоить make или cmake (можно поставить отдельно). 
Поэтому вам достаточно найти блокнот с подсветкой (на вкус и цвет) типа атома и собирать и компилить из командной строки.
Вопрос: Windows vs. Ubuntu

Лучший ответ: Есть LibreOffice, OpenOffice, хотя иногда возникают проблемы с вордовскими файлами. Скайп есть, PS нету, есть GIMP, но это не то все-таки. Вместо студии можно использовать QtCreator, но и хороший блокнот подойдет (Sublime Text), можно эклипс. Для джавы тоже эклипс. В качестве торрента Transmiccion дефолтом, я использую и не жалуюсь, вместо адоб ридера evince, 7zip, конечно, тоже есть. С сиклинером не знаю, но тут он вроде как не особо нужен, разве только корзину чистить…
Большинство программ есть в комплекте, другие ставятся из стандартных репозиториев без проблем. Ну в крайнем случае из репозиториев их разработчиков на оффсайтах.

Худший ответ: Если будете для офиса/фотошопа поднимать виртуальную машину с виндой — рекомендую XEN, и подключаться по RDP. Работает ощутимо быстрее, чем vbox/vmware. С гуглом настраивается за 2 часа (или за 1, если знать, что для того, чтобы заработала сеть нужно сделать sudo killall dnsmasq [актуально для ubuntu/mint])

Ну и опять же из опыта недавнего переезда, могу посоветовать Linux Mint. Та же ubuntu, но юзабилити стандартного конфига оболочки субъективно выше.
Вопрос: Как сделать волны на css3?

Лучший ответ: Плюсую за svg, а сам параллакс вполне хорошо делается с помощью css анимации - пример.

Худший ответ: svg,  можно и на css сделать, но будет не легко)
https://codepen.io/davidelvar/pen/kkJxYW
Вопрос: Как в .htaccess ограничить доступ к виртуальному пути для всех IP кроме одного?

Лучший ответ: .htaccess это управляющий файл веб-сервера apache
а scp работает по ssh протоколу, вообще никак не относясь к веб серверу.

Худший ответ: Для того что бы в настройках апача прописать правила для виртуальных путей, нужно использовать  вместо . Таким образом ответ на текущую версию вопроса будет такой:<Location /my_folder/>
Order Deny,Allow
Deny from all
Allow from 1.1.1.1
</Location>
Вопрос: Как протестировать производительность debian сервера?

Лучший ответ: ab (apache benchmark). Он вполне способен вытащить с сервера всё, что тот может отдать.

Худший ответ: Всё-таки, нужно сравнить разные VM или протестировать скорость виртуализированного сервера относительно реального железа?
Так или иначе, я бы всё-таки посоветовал протестировать базовые характеристики виртуализированного железа — производительность процессора, проседание дисковых и сетевых IOPSов, оверхед памяти — на основе этого и строится производительность разных сервисов — в том числе apache, php и mysql.
Вопрос: Есть плагин скидок для wordpress — woocommerce по товару?

Лучший ответ: да есть codecanyon.net/item/woocommerce-dynamic-pricing-di...
выставляете количество которое надо набрать на скидку выставляете цену
например 
1 - 10руб 
2 - 4 по 9руб
4 - 10 по 8руб
>10 по 7 руб
дальше считает автоматом

Худший ответ: Нет, готовых нет.
Вопрос: Как правильно парсить данные с ресурса myscore.ru?

Лучший ответ: Смотрите какие запросы отсылает мобильное приложение. Оно через REST 100% работает. Вам нужно только узнать стек запросов. 
Делается это через обычный эмулятор и захватчик пакетов. После чего обращайтесь через api и парсите

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

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

Худший ответ: Зайди в личный кабинет на сайте Мегафона и отключи возможности платных подписок в принципе.
Вопрос: Андроид-таблетка или вин8-таблетка?

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

Худший ответ: 1)Есть ли смысл ждать х86 планшетов на винде или брать асус? 
зачем x86? win8 будет работать на arm, но у него сейчас почти пустой магазин приложений
2)Есть ли какая-то информация по автономности, цене, производительности?
видел только это habrahabr.ru/post/143123/
Вопрос: Как исправить ошибку «Setting unknown property: yii\web\AssetManager::linksAssets»?

Лучший ответ: Доброе утро.
Правильней будет "linkAssets", а не "linksAssets"

Худший ответ: Скорее всего slo_nik прав, но вместо той кучи кода что Вы привели,стоит показать сам Assets
Вопрос: Чем занять простаивающий сервер?

Лучший ответ: Можете просто пожертвовать вычислительные мощности boinc.berkeley.edu

Худший ответ: Torrent TV
Изучите вопрос www.acestream.org/rus/
И денег можно заработать и поднять свой ACEProxy.
Вопрос: Как научиться учить программирование?

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

Худший ответ: А зачем оно тебе нужно это программирование? Этот бекенд и свой проект? И изучать PHP и YII ?
Вопрос: Умный дом в готом доме — на чем лучше сделать?

Лучший ответ: Умный дом начинается от миллиона за начинку. А вы хотите за копейку канарейку что бы и дёшево и без Rasperry Pi и баз экстрима. А стойку серверную и сервер вы закладываете в цену? Это уже тысяч на 150 выйдет.

Худший ответ: Для вашего случая Fibaro и делает свои продукты. А так да, z-Wave вы правильно нашли, может у других подешевле.
Но, если делать качественно, то это должно планироваться на стадии ремонта/строительста - проложить необходимые провода и управлять всем по KNX/DALI/Modbus, но соответсвенно это выйдет в немалую копейку.
Вопрос: Как установить время онлайн на сайте РНР?

Лучший ответ: Весь вопрос в том, как Вы будете фиксировать не время входа, а время ВЫХОДА! 
Не имея этого показателя можно смело цитировать Папанова: "Шэф, усё пропало!!!".
Чтобы зафиксировать выход - запускайте с нужным интервалом (он будет и являться максимальной погрешностью) аякс-функцию которая особо ничего делать не будет, а просто будет давать "маяк" на php: "Он еще сидит, фиксируй время по часам своим php-шным серверным". Как только клиент закрывает сайт - аякс не маякует, время не обновляется, а значит все. Нет его (посетителя).
Ну а далее дело за сложением и вычитанием... Profit!))

Худший ответ: В localStorage пиши через js посекундно, при бездействии +/- Х время тормози счётчик и шли в бд, наводят мышку на закрыть таб тормози и шли в бд, разлогинились шли в бд.
Вопрос: Стретила такую конструкцию, что означает?

Лучший ответ: Создается экземпляр класса и возвращается результат метода getData() этого класса.

Худший ответ: Это коротка запись:$self = new static();
return $self->getData();
Вопрос: Как сделать чтобы текст на кнопке был прозрачный?

Лучший ответ: через RGBAcolor: rgba(RRR,GGG,BBB,AA); #где аа альфа канал 
background: rgba(RRR,GGG,BBB,AA); #где аа альфа канал
alfa канал вам и нужен, если не знаете - идите учить на htmlbook.ru. Тут понять надо

Худший ответ: В зависимости от того ТЕКСТ кнопки или ФОН кнопки -
color: rgba(0,255,0,.3);
или
backgrоund-color: rgba(255,255,255,.3);
меняя последний .3 от 0.0 до 1.0 параметр можно регулировать степень прозрачности.
Вопрос: Плагин для sublime text 2

Лучший ответ: В toHex красивее сделать что-то вроде 
return '# %s %s' % (stringOne, stringTwo) 


И создалось впечатление, что весь isColor можно переписать одним регекспом.

Худший ответ: В toHex красивее сделать что-то вроде 
return '# %s %s' % (stringOne, stringTwo) 


И создалось впечатление, что весь isColor можно переписать одним регекспом.
Вопрос: Как выбрать бюджетный объектив Canon и фотовспышку?

Лучший ответ: Вспышки хватит и самой простой с рассеивателем.
Китовый объектив слишком темный, но и на него можно со вспышкой.
Я бы взял что-то вроде Canon 17-85. Он широкоугольный, а это то, что вам нужно.

Худший ответ: Возможно кому-то поможет.
Для интерьерных съемок лучше взять широкоугольный объектив (не фишай) + штатив (лучше взять качественную модель с 3д головой). Наличие штатива позволит не гнаться за светосилой и получать качественные изображения в условиях с недостаточным освещением. 
Как более или менее оптимальные варианты:
10-18 Canon EF-S (неполный кадр)
линейка объективов Samyang (10, 14, 16мм)
Токина 11-16мм
Вопрос: Какой функционал необходимо сделать на yii2, чтобы работодателю было понятно, что я с ним знаком?

Лучший ответ: Тут уже все зависит от того, насколько подкован работодатель. 
Если у работодателя нет опыта, то все сведется к тому:
- Знаете? Покажите сайты которые делали. Хорошо, вы приняты. 
Если работодатель подкован(с вами общается программист), то смотреть будут исходя из того, что ищет работодатель. 
Возможно вас попросят показать кусок кода, или попросить доступ к проекту. 
Если кратко, то в первую очередь я бы обратил внимание на:
1) Изменяли ли вы VEndor. Без шуток, но до сих пор встречаются такие люди. 
2) Используете ли вы миграции. 
3) используете ли вы хелперы языка на полную, а не пишите через $_GET['param'] и другие стандартные  функции  языка PHP. 
... 4) тут еще много всякого, в том числе и красота кода, и полноценное использование MVC. 
5) отдельно висят тесты. если человек овладел ими и пишет сначала тесты, то можно с уверенностью сказать, что по всем предыдущим пунктам он прошел. 
Опять же, знание фреймворка сводится к тому, что вы знаете, в каком месте читать мануал по тому или иному пункту. И как пишутся основные вещи.

Худший ответ: Вопрос в том насколько сам работодатель с ним знаком?
Если проверять Ваши труды будет спец, то его устроит хорошо реализованный абстрактный модуль или widget размещенный на github. А если у Вашего труда лайки будут стоять - тем более отлично.
Если ЛПР там "как обычно", то стоит сделать красивую админку, можно взять шаблон LTEAdmin натыкать кучу анимированых графиков и т.д. "пыль в глаза". 
Часто встречал студии (пока был уверен, что работа в студии это перспективно и денежно), которые работают как конвейер выпуская однотипные лендинги на wp и хотят иметь одного спеца по yii, потому что иногда спрашивают. Но так как у них нет спеца, что бы оценить степень владения fremework-ом, то критерии оценки могут быть весьма парадоксальными. Тут больше лицом торговать придется, чем навыки показывать или по php и ООП будут гонять. К слову php и ООП надо знать в любом случае.
Вопрос: К нашей программе создали и выложили кряк — что делать?

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

Худший ответ: Если нет периодической проверки версии "тела" ПО по CRC с продлением ключа через сервер - то уже ничего не сделаете.
Только создавать и выпускать новые востребованные трендовые функции в ПО и кардинально менять защиту в новой версии.
Вопрос: Как вы считаете — переезд дата центра в рабочий день — это нормально?

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

Худший ответ: Нормальные пацаны делают переезд с задержками в 15 мин. Т.е. сначала развернули новое, а потом отключили старое. Но такое обычно требует избыток в оборудовании и возможно в работе. Если за оверхед не уплочено, то вполне нормально. Вас же предупредили.
Не обязательно делать переезд в один день, можно за неделю потихоньку все перенести например.
Кстати, переезд, хороший повод провести ревизию оборудования и софта.
Вопрос: Как сделать обработку формы по двум submit?

Лучший ответ: Нажатый "submit" передаст своё имя-значение. Ненажатый "submit" – не отправит.if( $_POST['message'] === 'Отправить') {
    // отправляем сообщение
  } else if( $_POST['recall'] === 'Перезвонить') {
    // перезваниваем
  }

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

Лучший ответ: Для начала 
https://developer.mozilla.org/en-US/docs/Web/API/G...
Если не поддерживается 
https://developers.google.com/maps/documentation/g...
Если не хватает 
https://www.maxmind.com/en/geoip2-precision-services

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

Лучший ответ: Я в таких случаях плачу.

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

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

Худший ответ: Вдобавок к перечисленному - идём на ютуб и ищем каналы "Computer Science Center", "Академия Яндекса" и "Технострим Mail.Ru Group" - в них нам интересно "Алгоритмы и структуры данных" и прочие "Основы" (умышленно не привожу здесь прямые ссылки).
Внимательно смотрим, конспектируем. Непонятно - пересматриваем. С возникающими вопросами идём не на форум, а в книжки. Можно залезть на "ИНТУИТ" или там "Курсеру" - пройти курс, сдать экзамен и получить подобие сертификата.
Это может занять не один месяц, а гораздо больше. Успешность затеи зависит лишь от вашего упорства. Материала в интернете - уйма: книжки, лекции, квизы и прочее. Всё для вас!