Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как обрезать правильно строку PHP?

Лучший ответ:
обрезать все запятные, точки, дефисы (тире) и т.д.$str = preg_replace('/[^a-zA-Zа-яА-Я ]/i', '', $str);

Худший ответ:
Еще preg_replace();
Вопрос: Как вывести значения с точкой jQuery?

Лучший ответ:
Не понятно почти ничего.
Укажите что за плагин, сделайте демо-страницу...

Худший ответ:
Если точка - разделитель целой и дробной части, тоvar str= number.toFixed(2);
Если точка - разделитель разрядов (что странно, лучше тогда уж пробел или апостроф), тоvar str= ("" + number).replace(/\B(?=(\d{3})+(?!\d))/g, ".");
Вопрос: Какая Архитектура файлового хранилища?

Лучший ответ:
Нанять программиста, он все сделает.

Худший ответ:
Четко понять для начала технические требования:количество посетителей;трафик по скачиванию средний и в ЧНН;размер размещаемых файлов средний;требования по отказоустойчивости (сколько % в месяц ресурс будет не доступен? только не говорите, что 24/7)алгорим монетизации
Ответив на эти вопросы, появятся куча других и сильно будет зависеть архитектура. Иначе вам ответ будет такой: используйте HTTP, делайте несколько доменных имен, балансируйте нагрузку, внедрите биллинг.
И да, если вы захотите заработать на этом денег, затраты на техническую составляющую будут (назовем это CAPEX) около 10-15%. Остальное - маркетинг, SEO, инфраструктура. В рамках такой пропорции вы должны понять, что гораздо проще оплатить работу программистов (или купить готовое решение).
Вопрос: Как сделать спецификацию макета сайта и нужно ли?

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

Худший ответ:
И тем не менее, никто вразумительно не ответил "нужно ли". 
На мой взгляд, если диз сам делает верстку макета сайта, то это лишнее. Да даже если и нет, то все-равно при наличии модульной сетки, которую использует любой вменяемый диз уже за глаза. 
Если макет будет посложнее того, что в примере (а в примере он простой), то вы задолбаетесь делать эту спецификацию, и времени уйдет далеко не мало. 
Так что мое личное мнение, это все лишняя трата времени, которая никак не ускоряет разработку и тем-более никак не влияет на качество. А следовательно, она оправдана лишь в том случае, если вы энтузиаст, и хотите вызвать оргазм радугой у коллеги по цеху.
Вопрос: Правильно ли сформирован запрос на php, mysql?

Лучший ответ:
Если Вы только изучаете PHP, то сразу откажитесь от использования функций mysql_*, они уже больше года в статусе deprecated. Используйте mysqli_* или PDO с параметризованными запросами.
По вопросам:
1. Точка с запятой не обязательны.
2. Для поля AUTO_INCREMENT значение указывать не надо, его автоматически генерирует сервер. Дату надо хранить в поле с типом DATE, DATETIME или TIMESTAMP, соответственно присваивать CURDATE() или NOW().

Худший ответ:
mysql_query("INSERT INTO users (user_id,user_name,user_adddate) VALUES ('',".$user_name.",".TIME().")");
Зачем вам sprintf  не совсем понятно.
Вопрос: Почему не работает функция?

Лучший ответ:
Проблема в том, что код функций из шаблонов генерируется по мере надобности. 
Вот встретил компилятор где-то Test<int> - и начинает создавать функцию для int.
Но в единице трансляции с Functions.cpp он этого не встретил и ничего не генерирует. А когда он компилирует Source.cpp он может только сгенерировать декларацию, но не определение функции. Ведь он видит хедер, но не что написано в Functions.cpp.

Поэтому, если весь шаблон определять в .h файле то компилятор сможет сгенерировать что ему надо всегда.

Второй варинат решения проблемы - в Functions.cpp указать компилятору, что шаблон будет использоватся с такиим-то типами:
using Test<int>;

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

Обычно минусы тут перевешивают плюсы и шаблоны всегда целиком пишут в хедерах. Но это не единственный враиант. Неправда, что шаблоны должны целиком находится в хедерах.

Худший ответ:
Шаблоны надо реализовывать в *.h файле.
Вопрос: Что делать если с ростом проекта архитектура превратилась в кашу и быдлокод?

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

Худший ответ:
Переписывайте по кускам.
Вопрос: Сервис интернет эквайринга?

Лучший ответ:
Посмотрите в сторону Moneybookers

Худший ответ:
Если есть юр. лицо и желание заморочиться для снижения процента комиссии, то открывайте счёт в одном из рос. банков, и договор на эквайринг. Могу посоветовать Альфу, тогда мы с вами встретимся на этапе подключения :)
Вопрос: Где почитать дельные статьи по открытию своего онлайн магазина?

Лучший ответ:
1) Налоги - только упрощенка - 7% с оборота или 15% за вычетом расходов, единый для дистанционной торговли не применим. Я так понимаю, что торговать будете китайским ввезенным по серой схеме, тогда 7%, если ваш форвардер дает документы, тогда лучше конечно 15%.
Информации вы дали мало, но я так подозреваю, что ип вам хватит за глаза, открывать ооо нет никакой необходимости.
2) По своему опыту скажу, откровенное гомно китайцы не присылают, но все равно закладывайте 5% в цену на брак. Менять брак то китайцы меняют, но не охотно и не всегда это имеет смысл. Настоятельно рекомендую иметь не менее 3-х поставщиков и каждую закупку прогонять через всех трех для того чтобы отжать минимальную цену. Уважайте людей с которыми работаете и не делайте  грошовых заказов, покупайте хотя бы на пару штук баков. 
Про доверие, как ни странно но в одинаковой ситуации я склонен верить узкоглазому, а не брату славянину, китайцы держат слово.
3) Делайте заказы на сайтах конкурентов с периодичностью раз в неделю, заказ можно отменить, а вот количество заказов у конкурента и состояние его склада вам будет известно. 
Заказывайте обратный звонок, пользуйтесь онлайн консультантами, пишите в поддержку и сможете определить кол-во персонала
Прогоните через поисковики ключевые запросы, проанализируйте код страниц с целью определить ключевые слова
тут в общем много всего можно написать 
4) Анализировать российские интернет магазины не имеет смысла, мне нравится ковырять и творчески переосмысливать европейские.
ps. Вы опоздали с темой лет на 5 минимум, сейчас на раскрутку магазина уходит порядка полугода и от 400 тыр на контент, статьи, правильное заполнение товаров, уникальные фотографии, шаблон, плагины и модули на заказ, оплата хостера
Надеюсь инфа будет полезной

Худший ответ:
Ну наверно ещё надо добавить в обязательную программу прочтения:oborot.ru и e-pepper.ru
Вопрос: Как вы показываете макеты клиенту?

Лучший ответ:
https://projects.invisionapp.com/
Единственный правоверный способ показывать макеты.
Можно расставлять ссылки и реально собирать кликабельный прототип.
Заодно позволяет сразу найти косяки уровня "ссылка ведущая на страницу которую забыли нарисовать"

Худший ответ:
правильно показывает, для наглядности. если для защиты то ушлые через ctrl+u все равно вытянут из стиля бекграунд или картинку из тега img. для защиты нужно писать джаваскрипт. да да, и такие умники бывают, которые просто стырят и скажут "го*но" и сами попытаются нарезать из однослойника. скорее всего у них сделать версту не получится, но и за потоаченное время они тоже не заплатят.
Вопрос: Python. Некрасивая конструкция While. Можно ли упростить?

Лучший ответ:
Лапша у вас знатная..
Я правильно понимаю, что вам нужно просто вывести все ip по маске?import itertools

s = '197.1-10.197.*'
sections = s.split('.')
addresses = []
for i in sections:
	if '-' in i:
		min,max = i.split('-')
		a = [x for x in range(int(min),int(max))]
	elif '*' in i:
		a = [x for x in range(0,255)]
	else:
		a = [int(i)]
	addresses.append(a)
addresses = itertools.product(*addresses)

for i in addresses:
        print i
PS Надо добавить валидацию входных данных и вывод как вам там нужно..

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

Лучший ответ:
Ну чтобы не убить базу и не создавать коллизии существует инструкция WITH NOLOCKMySQL NOLOCK syntax is equivalent to WITH (NOLOCK) in SQL Sever, and it is a transaction isolation level that defines how data is available during an update. With other words, it is a property that defines at what point changes made by an update operation will become available in a row, table or database to requesting processes.
По поводу денормализации - могу вам предложить сделать таблицу ReviewsCounts где хранить id товара и число отзывов. Соответственно вы не будете грузить триггерами таблицу самих товаров. Можете сделать парный ключ idтовара/номер отзыва и число отзывов делать через группировку id товара и MAX(номера отзыва).

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

Лучший ответ:
Если под "функциональным" подразумевается функциональная парадигма, то Go тут явно аутсайдер. Советую Haskell для ознакомления с парадигмой фактически в "чистом" виде. После него - Scala и/или Rust, как удачные смешения функциональной парадигмы с другими парадигмами/направлениями. И не забудьте повертеть Erlang.
Если же под "функциональным" подразумевается удобный инструмент с многими возможностями из коробки, то тут однозначно Go, так как и порог вхождения мал, и прививает хорошие практики. После него Scala + FRP + TypesafeStack тоже должны показаться интересными, но там порог вхождения повыше будет.

Худший ответ:
Смотря для чего.
В образовательных целях - Haskell. Он так же хорошо подходит для некоторых специфических задач (моделирование, компиляторы, преобразование данных).
Для применений в обычной жизни - Scala, Clojure, F#.
Вопрос: "красивые" ссылки ??

Лучший ответ:
Почему бы не использовать готовый роутер, вместо того, чтобы готовить свою лапшу?

Худший ответ:
лет 6 назад делал так
RewriteRule ^support/([a-zA-Z0-9_/-]+)/$	/supportindex.php/$1 [L] 
внутри php
$zap=substr($PATH_INFO,1);
list ($sub, $doc, $docID) = explode("/",$zap); // тут можно и массив получить, но я сразу по переменным раскладываю
Вопрос: Как сделать выборку по максимальному совпадению полей?

Лучший ответ:
А что вам нужно посмотреть-то? В запросе принцип работы показан же, если есть совпадение, то увеличиваем вес на 1 иначе на 0 и в конечном счете сортируем по сумме веса.
Если хотите про JOIN-ы прочесть, то - potapov.com.ua/library/21 , или еще лучше:

Худший ответ:
В таких вещах я бы сначала подумал что я экономлю - место, запросы или процессор.
Возможно идея плохая, но я бы заранее считал похожесть параметров в процентах например (или каком-то другом обобщённом показателе) и хранил бы это значение в отдельном поле.
Ещё я бы заранее определил что такое похожие товары - какие критерии похожести? (цвет, например, на мой взгляд в этом параметре не должен участвовать). Можно отдать выбор посетителю типа: найти похожие телевизоры по размеру или найти похожие по функционалу.
Можно запрашивать все параметры товара и если 80% параметров или больше одинаковы - товары похожи.
Если параметры числовые, можно для телевизора с диагональю 100 см. искать в базе телевизоры с диагональю от 95 до 105 см, т.е. +- 10%
Есть ещё такая идея: каждому товару заранее присвоить похожие и при выводе на экран просто выводить из этого поля. Похожие товары пересчитывать один раз при добавлении, обновлении ассортимента или раз в неделю по крону. В этом случае хорошо то что системных ресурсов и запросов на такой скрипт можно не жалеть.
Вопрос: Как отправить смайлики за минимальное количество операций?

Лучший ответ:
Код на Python для расчёта "в лоб" (перебором) и выявления закономерностей:# -*- coding: utf-8 -*-

import matplotlib.pyplot as plt
from itertools import product

def process(existing, required):
    for opcount in xrange(existing+required):
        for combo in product('dcv', repeat=opcount):
            buffer = 0
            smiles = existing
            data_y = [existing]
            for char in combo:
                if char == 'd':
                    smiles -= 1
                elif char == 'v':
                    smiles += buffer
                else:
                    buffer = smiles
                data_y.append(smiles)
            if smiles == required:
                data_x = xrange(opcount+1)
                plt.plot(data_x, data_y, linewidth=1)
                print required, data_y
                return ''.join(combo)
    return '-'

for required in xrange(2, 101):
    plt.clf()
    plt.grid(True)
    plt.title('Target: %s' % required)
    plt.autoscale(enable=True, axis='both', tight=False)
    for existing in xrange(1, (required//2)+1):
        result = process(existing, required)
    plt.savefig('{:02d}.png'.format(required), dpi=96, bbox_inches='tight')
Задача распадается на 2:
1) Если M >= N div 2, то нужно удалить всё до половины, скопипастить, и по необходимости удалить 1 смайл.
2) Если п.1 не выполняется, то нужно рассчитать делители N (если N простое - то взять следующие несколько чисел больше N) и спуститься к ближайшему наибольшему делителю N, который меньше M. Удалять смайлы, чтобы попадать в наблюдаемые на картинках горизонтальные уровни, соответствующие делителям.
В общем случае решение не единственное - например, соседние группы D и V можно смешивать в любых последовательностях: DDVVV = VVVDD = VDVDV = ...
N=12. Для M=5 видим DCVV (фиолетовая линия). Уровни (делители) - 6, 4, 3, 2, 1:
N=28:
N=29:
N=30:
N=71:
N=72:
PDF со всеми картинками: dugin.org/dropbox/toster_188303.pdf (11 Mb)
P.S. https://ru.wikipedia.org/wiki/Задача_о_ранце

Худший ответ:
ceil(12/5) = 3 -> Npastes=3-1=2
floor(12/3) = 4 -> copyOn = 4
12-4*2=4 -> Ndeletes = 5-4 = 1
Аналогично с любыми другими числами. Скажем, N=14, M=5:
ceil(14/5) = 3 -> Npastes = 2
floor(14/2) = 7 -> copyOn = 5 (т.к. мы до семи догнать не можем)
14 - 5*2 = 4 -> Ndeletes = 1
Ответ: CDVV 
Как определить, когда писать DC, а когда CD, понять несложно.
А то ведь вообще получится, что я забесплатно домашнюю работу решил!
Вопрос: Как сделать микроконтроллеру самовыключение?

Лучший ответ:
Кроме всего вышесказанного советую посмотреть энергопотребление вашего микроконтроллера в режиме Standby. У большинства МК в этом режиме энергопотребление составляет порядка единиц мкА или даже наноамперы. Например, при потреблении 1 мкА и емкости аккумулятора в 1000 мА*Ч его хватит на 1 миллион часов (в первом приближении), что составляет более сотни лет такого сна. Это существенно меньше саморазряда большинства аккумуляторов, так что, возможно, проще отправлять МК спать и просыпаться по нажатию кнопки, чем усложнять схему питания. Единственное неудобство - кнопку, вероятней всего, придется ставить на один конкретный порт (смотрите документацию на ваш МК).

Худший ответ:
we.easyelectronics.ru/Shematech/sistema-harakiri-i...
www.uschema.com/safe_power_switch
danyk.cz/zap-vyp_en.htmlКак сделать, чтоб микроконтроллер сам себя отключа...
www.mosaic-industries.com/embedded-systems/microco...
Вопрос: Что будет лучше? SSD или RAID 0 из 4 HDD по производительности?

Лучший ответ:
Всё зависит от марки оборудования и паттерна нагрузки. 
На секвентальных паттернах 4 HDD дадут больше чам SSD. 
На рандомных паттернах SSD уйдёт далеко в отрыв.

Худший ответ:
Смотря какой SSD, и смотря какие HDD. Все относительно. Опять же многое зависит от контроллера. Но если опустить условности и брать железо из одного ценового диапазона, то RAID из 4х HDD будет быстрее.
Вопрос: Как хранить данные для обработки в виртуалке на СХД?

Лучший ответ:
Ну iSCSI пожалуй попроизводительнее будет. Но вообще от данных зависит, может и NFS или SMB вполне хватит. Кроме того скази сложнее шарить между машинами.

Худший ответ:
Образы виртуалок по iSCSI (мы правда напрямую через ceph это делаем), остальное, что для общего доступа - по NFS.
Мы делаем общий образ с системой, и делаем с него снапшоты на каждый инстанс виртуалки. Отдаем снапшот в виртуалку как блочное устройство. Если в каком-от инстансе нужен отдельный диск с данными, то его отдаем отдельно. Также часто делаем блоковые устройства для боольших временных файлов, тоже цепляем отделным диском в инстанс.
Вопрос: Как реализовать динамическое добавление тегов?

Лучший ответ:
Я использую bootstrap tagsinput.

Худший ответ:
Посмотрите chosen, может подойдет.
Вопрос: Что написать на андроиде?

Лучший ответ:
На андроиде можно написать много разных слов. Если это андроид небольшой - то слово должно быть емким и коротким, чтобы влезло. К сожалению половина коротких слов - это неприличные слова.
А по-русски стоило бы спросить "Что написать для андроида?", что, конечно не сделало бы вопрос менее тупым, но он хотя бы стал соответствовать правилам нашего с вами (я надеюсь) родного языка.

Худший ответ:
Фантастический вопрос. Из серии "Что написать на листе бумаги?".
Напишите программу читающую мысли или, например, портал телепортации для мобильника.
Извините если был немного резок. А какая цель написания чего-бы-то-ни-было на Андройде?
Вопрос: Кто постоянно открывает Общий доступ к папке Users?

Лучший ответ:
Есть два варианта подобного поведения по умолчанию от MS:
1. Компьютер присоединен к "домашней группе"
В таком случае система автоматически дает сетевой доступ к C:\users группе "Все", в том числе и для совместимости со старыми ОС.  Ограничения доступа в  папке C:\users в таком случае реализуются правами NTFS (таким образом, это достаточно безопасно)
2. Пользователь пытается поделиться файлом или папкой из своего профиля (например c:\users\%USERNAME%\Desktop\%SharedFOLDERNAME%)
В таком случае система также открывает доступ к папке Users (а не создает целевую папку)
https://technet.microsoft.com/en-us/library/ff660257(v=ws.10).aspx
Возможно, система будет пересоздавать папку users время от времени. даже если вы отключили сетевой доступ к данному ресурсу.
Как решение - отключать галку "Использовать мастер общего доступа" в параметрах папок(панель управления)

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

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

create table tmp 
( ID INT PRIMARY KEY,
  TextVal varchar(10)
)
insert into tmp (ID, TextVal) values (1, '1') 
insert into tmp (ID, TextVal) values (2, '2')
insert into tmp (ID, TextVal) values (3, '3')

create view vw_tmp 
as
select ID,
			CASE USER_ID() 
				 WHEN 1 THEN TextVal 
				 ELSE '' 
			END as TextVal

 from tmp


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

Лучший ответ:
В гугл-плее игру можно шарить между разными dev-аккаунтами. Соответственно вы будете видеть игру в дев.консоли и смотреть всю статистику. Думаю что в подавляющем большинстве других маркетов и агрегаторов есть такая же фича. Тут уже вопрос к издателю - захочет ли он такое делать.
Во вторых вы можете вставить свою статистику - Dev2dev, flurry, GA и собирать все что вам нужно еще и в нее.
В третьих - задайте этот вопрос своему конкретному издателю - у него могут быть свои механизмы для этого.

Худший ответ:
Используйте какую-либо аналитику. Google analytics, Flurry, Fabric answers... Тысячи их. Все важные вам события логгируйте. Вот и весь сказ.
Вопрос: Где можно брать идеи трендовых товаров для интернет-магазина?

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

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

Лучший ответ:
(1) Это знание Английского языка — как правило беглое чтение текста на IT тематику не составит проблем
(2) Всем менеджерам обязательно нужно уметь вести деловые переговоры — регламент, деловой этикет и т.д. (без этого с серьезными заказчиками будет туго)
(3) для iOS — желательно наличие самого устройства (любого), знание гайдов по интерфейсу и основновных возможностей системы (чтобы не было — что менеджер наобещал горы золотые которые невозможно сделать)
(4) для RoR — производительность, знание основные модулей и слабых/сильных сторон RoR приложение
(5) в челом как и любому менеджеру — знание методов декомпозиции и разделения труда
(6) умение правильно «требовать» с Senior Developer :)
(7) знать и уметь проверять юнит-тесты — без этого оценка качества продукта в процессе будет проблематична

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

Лучший ответ:
Знать бы цели системного блока. Судя все же по наличию более-менее нормальной видюхи, значит будут в игры играть. В этом варианте однозначно первая сборка. Во-первых процессоры атлона шустрее коров в играх, во-вторых тандем: чипсет+проц+видюха от AMD даст оптимальное решение. 
Знаю, что поклонники интела закидают какахами, но именно в этом выборе определенно стоит покупать первый вариант. В производительности фкс проиграет кору, но очень не значительно. В играх он возьмет вверх. А с учетом его стоимости - выбор становится очевиден. 
Отдельно стоит упомянуть память. Не брать ничего одной планкой. Если берете 4 гига, то только парой 2 по 2.

Худший ответ:
2 конечно.
Вопрос: С чего начать изучение программирования (для машиностроителя) ?

Лучший ответ:
Из САПР советую посмотреть SolidWorks. Хотя бы обзоры на что она способна.
Не совсем понятны цели изучения языка программирования. Спросите для чего конкретно вам нужно будет программирование. А лучше зайдите в этот отдел и посмотрите, поспрашивайте с чем работают ваши будущие коллеги, и учите то же самое.
Если программирование нужно только чтобы писать небольшие скрипты для подручных задач, то советую посмотреть что-нибудь с низким порогом вхождения, например, Basic или Python. Как вариант Microsoft Small Basic.

Худший ответ:
Жесть как она есть.
Наверняка 95% процентов ваших конструкторов не знают не одного ЯП.
К тому же (на мой взгляд), не конструктора это задача программировать станки ЧПУ. Это задача специально обученных людей. Иногда эту задачу выполняет технолог. Вот посмотрите.
Как будут проверять у вас знание языка? 
Если начнете изучать С++, то при наличии большого желания, тяги к знаниям, наличию учителя, 8 часов в день что-то писать полезное - за полгода начнете немного ориентироваться. Без практического применения знания не укладываются.
Если нужны сертификаты - есть курсы, месяца за 3 пройдете. Сам такие проходил по С++.
Еще проходил 5 дневные курсы по Python.  Пробежались по верхам, выдали диплом. Может быть этого вам и хватит.
Узнайте, кто и на основе каких данных будет принимать решение о вашем принятии на работу.
Может у вас получиться сходить на курсы от предприятия, это был бы отличный вариант.
Может они вас возьмут стажером в обмен на ваши горящие глаза и обещание как можно быстрее освоить необходимые инструменты.
Т.е. у вас задача стоит не "выучить С++, Компас и англ яз как можно быстрее", а "как сделать так, чтобы приняли на работу в КБ".