Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как правильно передать данные между компонентами?

Лучший ответ:
this.handleAddNews.bind(this, arguments)
А не кажется ли вам, что тут есть что-то лишнее?
Ну и вообще, не надо так. ВместоhandleAddNews(newPost) {
пишитеhandleAddNews = (newPost) => {
и тогда никакого bind использовать будет не надо:<Add newsadd={this.handleAddNews} />

Худший ответ:
https://jsfiddle.net/ybeaz/njLx57u4/
вот простой рабочий пример, надеюсь вы разберетесь
Вопрос: Как стать программистом 1С?

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

Худший ответ:
Почитай Радченко, как посоветовали выше и иди работать во франчи. Туда и без опыта берут. А после уже будет опыт и можно будет выбрать где работать дальше.
Вопрос: Как работать с большим обьемом данных?

Лучший ответ:
Ну, видимо не нужно пытаться грузить в переменную весь файл, и парсить его регуляркой?) Ибо, я не вижу других причин, почему может виснуть такой маленький csv.
Читать построчно, через php.net/manual/ru/function.fgetcsv.php
Если не работает, можете профайлером поковырять его.

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

Лучший ответ:
Для обработки коротких комманд нет смысла в использовании нейронных сетей и прочей тяжелой артиллерии. 
Получаемые комманды (в смысле действия) известны заранее, все количественные параметры и сами объекты тоже. Тогда обработка комманды сводится к обработке токенов-слов для определения действия, объектов и их характеристик, и все они известны программе на момент поступления.ПримерИзвестные действия: {включить, выключить}
Известные объекты с характеристиками: {светильник={синий, в углу}, светильник={белый, на тумбе}}
Поступающая комманда: "белый светильник включить"
Токены комманды: {белый, светильник, включить}
Шаги алгоритма:
1. Находим токен-действие - "включить";
2. Находим токен-объект по ключу известных объектов: "светильник";
3. Оставшиеся токены ("белый") - характеристики. Проверяем все объекты с ключом "светильник" на наличие характеристики "белый", находим нужный;
4. ???;
5. Комманда обработана - найдено действие и объект.

Худший ответ:
1. Определение части речи: https://habrahabr.ru/post/152389/
2. Для сравнения полученного текста (с микрофона) и заранее созданых ожидаемых команд (или их шаблонов) - нечёткий поиск Stumper API.
Вопрос: Образцовая реализация приложения на .NET Core?

Лучший ответ:
Сам спросил, сам ответил. 
https://github.com/dotnet-architecture/eShopOnCont...
и вот https://github.com/gothinkster/aspnetcore-realworl...

Худший ответ:
Сам спросил, сам ответил. 
https://github.com/dotnet-architecture/eShopOnCont...
и вот https://github.com/gothinkster/aspnetcore-realworl...
Вопрос: Как настроить Laravel и smtp mail.ru (почта для доменов)?

Лучший ответ:
Рабочий вариант:
Возможно ssl сертификат и не нужен, но  я поставил Lets encrypt.
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mail.ru
MAIL_PORT=465
MAIL_USERNAME=domen.zone@mail.ru
MAIL_PASSWORD=pass
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=domen.zone@mail.ru
MAIL_FROM_NAME='tra ta ta'

Худший ответ:
поставте ssl
Вопрос: Что написать на Python новичку, чтобы удостовериться в своих знаниях?

Лучший ответ:
checkio.org пробовали?  да задачки простые, но там есть функция "посмотреть другие варианты решений". И вот там самый смак...

Худший ответ:
Напиши клиент-серверный консольный чат на сокетах с каналами, личкой и историей в sqlite.
Вопрос: Redux и MobX — плюсы и минусы, когда лучше что использовать?

Лучший ответ:
4 причины использовать MobX1 Легко научиться и использоватьМеньше кода писатьПолная поддержка объектно-ориентированного программированияРаботе с вложенными данными легко2 Причины не использовать MobXСлишком много свободыТрудно отлаживать
Я использую MobX сейчас, потому что я могу писать код в 3 раза быстрее, чем с Redux.
Редукс в значительной степени зависит от принципов функционального программирования:
На мобкс влияет объектно-ориентированное программирование и принципы реактивного программирования:

Худший ответ:
Дело в том, что Redux позиционируют, как законченную CQRS + ES архитектуру для разработки в функциональном для frontend программистов. Backend программисты, привыкли к более традиционной архитектуре в ооп стиле, к которой и обязывает mobx. То есть mobx является vm (view-model) из mvvm.
Выходит что предпочтение к архитектуре и парадигме является первым указателем для выбора той или иной библиотеки.
Второй указатель появляется тогда, когда Вы начинаете работать с большим количеством данных и Вам не нужна CQRS архитектура. При таких условия Redux начинает отпугивать за счет иммутабельности, а Mobx притягивать за счет мутабельности данных.
И лично я считаю что на этом все. Единственное могу добавить, что с Redux можно добиться желаемого ровно так же, как и с Mobx все испортить. Я писал и на том и на другом и знаю не по наслышке, что все не так как говорят, везде есть свои нюансы.
Вопрос: Имеет ли место программирование без языка программирования?

Лучший ответ:
Умение мыслить алгоритмически - основополагающее в программировании. Язык - это всего лишь способ описания алгоритмов.

Худший ответ:
вы изучили html и css вот и двигайтесь дальше. Попробуйте создать сайт на любой бесплатной cms. Для этого юзайте php. Изучайте js, без него вообще никуда при создании сайтов. Когда более или менее вникнете в процесс, тогда вам будет легче понимать логику программирования. А программирование без программирования имелось ввиду, что не надо упираться в один язык.
Вопрос: Создаю Биткойн кошелек. Какой лучше?

Лучший ответ:
electrum - идеальное решение для тех, кому не требуется доступ к blockchain (он нужен если вы захотите проводить свой анализ или нестандартные запросы).
- мгновенный старт и не требует ресурсов от слова совсем (написан на питоне, клиент есть для android)
- высокий уровень безопасности, никуда не передает приватные ключи (онлайн кошельки например хранят ключи на сервере), а в криптовалюте - приватный ключ = доступ к монетам.
- удобное резервное копирование - для сохранения доступа ко всем адресам, сгенерированным в вашем аккаунте достаточно запомнить одну фразу из 12 английских слов (это не касается вручную импортированных адресов, само собой)
- простой и удобный интерфейс, у десктопной версии есть удобные возможности по управлению адресами и использованию их для отправки новых транзакций (можно заморозить адрес чтобы с него не списывались монеты) так же видно сколько монет на каком адресе, можно условно считать это подакканутами внутри аккаунта, есть даже режим возврата сдачи на тот же адрес, с которого шло списание (не рекомендуется, если вы не хотите хотя бы минимальной слежки за своими тратами)

Худший ответ:
1) bitcoin.org/ru/choose-your-wallet
2) Для старта бери веб кошелек blockchain и не вздумай начинать с оригинального core
Вопрос: Какое оборудование требуется для промышленного дизайна?

Лучший ответ:
Модельный пластилин и пенопласт для макетов.

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

Лучший ответ:
Косяков и странностей тут навалом.

Значение max вы перед началом поиска устанавливаете равным максимальному индексу - отлично. А как же min - почему не устанавливаете его равным 0? Забыли? Или думаете что 0 там сам собой появится? Не появится.

Кстати, а зачем min и max класть в data? - вне binarySearchInit они не используются. Пусть будут локальными переменными этого метода.

Значения в массиве являются строками, так что у вас 11 будет меньше, чем 2 (или для вас не существует ничего больше девятки?). Надо сделать числами, замените .push(item) на .push(+item) (или .push(Number(item)), или .push(parseInt(item))). Соответственно, надо сделать числом и search - для этого достаточно добавить соответствующий модификатор v-model.

Сортировка введённых данных - по умолчанию элементы массива сортируются как строки. Заменить .sort() на .sort((a, b) => a - b).

Зачем такие сложности с отдельной кнопкой для получения данных? Сделайте array вычисляемым свойством:

computed: {
  array() {
    return this.info
      .split(';')
      .map(n => parseInt(n))
      .filter(n => !Number.isNaN(n))
      .sort((a, b) => a - b);
  },
},
Да и сам результат поиска тоже может быть вычисляемым свойством.

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

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

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

Лучший ответ:
Рисуете мелом пентакль, ставите в углах свечи, и обращаетесь по имени.

Худший ответ:
Создавать демона на php... Ужас то какой.
1. Его надо запустить. Можно написать стандартный для системы init скрипт (документация вашего дистрибутива), и запускать его типа php daemon.php 1>/dev/null 2>/dev/null
 Можно запускать его из крона, и в нем самом проверять, что он запущен.
 Т.е. в кроне строка типа  "* * * * * php daemon.php 1>/dev/null 2>/dev/null"
2. Надо контролировать его работу. Смотрим выше, ну и для каждого случая свои механизмы...
Порт указан у вас в коде. Какой укажете - на тот и подключитесь. Если он не занят конечно.
Веб сервер к вашему демону не имеет никакого отношения, если что ;)
Вопрос: Какая часавая ставка у Junior Android developer в среднем (в поисках разработчиков)?

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

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

Лучший ответ:
Это же Javascript, а не Java. Здесь класс не класс, а ООП имеет нетрадиционную ориентацию. Хотите гарантированно получить true, пожалуйста: map instanceof map.constructor; // true!
Можно и имя его посмотреть: map.constructor.name === 'n';. Следовательно Microsoft.Maps.Map - фабрика, а этот конструктор был сжат минификатором и не предусматривает доступа извне.
Остается только вопрос, а нужен ли вам этот класс...

Худший ответ:
map instanceof Object
true
typeof map
"object"
map instanceof Microsoft.Maps.Map
true
UPD:
Судя по их примеру , они ожидают не цсс селектор, а ссылку на объектmap = new Microsoft.Maps.Map(document.getElementById("myMap"),
                         {credentials:"Bing Maps Key"});
Вопрос: Как совместить вируальное окружение и реп git?

Лучший ответ:
Делаем корневую папку, проект, в ней 2 , одна с окружением, вторая с гитом. 
Все ... 
Виртуальное окружение ни кто в гит не пихает ...

Худший ответ:
сюда еще посмотрите может вам как то поможет
https://git-scm.com/book/en/v2/Git-Tools-Submodules
Вопрос: На какой фриланс бирже можно найти заказы по фронтэнду?

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

Худший ответ:
На любой.
Вопрос: Str.IndexOf в JavaScript?

Лучший ответ:
1) – поиск начинается со 2-й позиции вправо:01234567890123
Widget with id
..|=>.......^2)var str = "Widget with id";

alert( str.indexOf("Widget") ); 
// 0 – прямо с нулевой позиции найдено совпадение

alert( str.indexOf("id") );
// 1 – находится первое же совпадение, после "W" идёт "id":
// 01234567890123
// Widget with id
// .^............

alert( str.indexOf("widget") ); // –1 значит «не найдено». W не равно w

Худший ответ:
indexOf возвращает позицию на которой найдена подстрока ("id") в строке со 2-ой позиции, если бы была строка "idWidget with id",
то первые два символа просто проигнорировалисьОн считает от всей строки
Вопрос: Как изменить тип параметра в унаследованном методе C#?

Лучший ответ:
То, что вы просите, невозможно сделать по одной простой причине. Наследование в .NET бывает только "настоящее", т.е. когда устанавливается отношение is-a. Ваш MyTCPStream не может быть Stream-ом, если не реализует метод Read (Byte[], Int32, Int32). Спросите себя - что произойдёт, если я скастю объект MyTCPStream к Stream, и попытаюсь вызвать Read(Byte[]...)?
Вы конечно можете в теле метода бросить InvalidOperationException, но это однозначно признак неверно выбранной абстракции. Лично я не понимаю, зачем вам мог понадобиться TCPStream, из которого вы читаете не байты, а символы.
Для реализации процесса чтения более сложных объектов (а символ это более сложная штука, т.к. его представление в потоке зависит от кодировки) в дотнете есть TextReader и его наследники. Было бы хорошо, если б вы описали изначальную задачу - возможно мы посоветуем вам что-то полезное, а не странные хаки.

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

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

Худший ответ:
с аппаратной точки зрения может быть перегрев или неисправность самого БП (psu а не ups)
если логи чистые программные ошибки искать будет тяжело.
Вопрос: Откуда информация о быстрой порче SSD?

Лучший ответ:
Порча от swap - это миф?
Давайте так. Порча от swap - это миф. Порча от частых перезаписей - не миф. Ячейки деградируют, SSD портится... со временем. Для домашнего ноутбука это время вполне может быть больше средней жизни ноутбука у человека. 
Если у вас мало оперативки - swap на ssd вполне себе нормальное решение. Но только это будет означать что использоваться он будет намного более интенсивно нежели в системах с большим объемом памяти.
Словом как бы вы не изощрялись, а бэкапы важных данных вам стоит делать в любом случае и тогда в целом пофигу.

Худший ответ:
Информация от владельцев web серверов на SSD и тестеров. После 700 терабайт записи могут начаться проблемы, а возможно и конец накопителя.
techreport.com/review/27909/the-ssd-endurance-expe...
Вопрос: Почему в интерфейсе нельзя использовать protected или private?

Лучший ответ:
Интерфейс предназначен для декларирования внешнего API без уточнения реализации. В нем должны быть  лишь публичные члены.
Вообще говоря, это искусственное ограничение, принятое для удобства. В том же C++ в качестве интерфейсов используются чисто виртуальные (абстрактные) классы без состояния. Наличие же специальной синтаксической конструкции (интерфейсов, как в C# или Java) позволяет явно подчеркнуть, что программиста там не ждет никакого сюрприза и этот тип используется как "клей" между другими классами.

Худший ответ:
Можно использовать и protected, тогда это будет еще и интерфейс для дочерних классов.
Вопрос: Как правильно скрывать объекты в адаптивной версии сайта?

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

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

Лучший ответ:
https://developer.github.com/v3/users/#get-all-users
дернуть рандомную страницу (выводится 30 юзеров по дефолту) и рандомно выбрать с нее двух юзеров.
или дернуть 2 рандомные страницы и взять с каждой по юзеру.
или, например:
https://api.github.com/users?since=234566&per_page=1
https://api.github.com/users?since=987654&per_page=1
верхнюю границу since определить экспериментально

Худший ответ:
https://api.github.com/users?since=2345
В since подставляйте рандомное число, получите несколько юзеров, айдишник которых больше указанного числа
Вопрос: Если я хочу создать свой форум или соц сеть, нужно ли мне офрмлять что-то юридически, подписывать бумаги, где-то что-то заверять?

Лучший ответ:
Если речь идет о России, то следует помнить о трех главных ограничениях:Любые сообщества с аудиторией более 3000 человек приравниваются к СМИ. 
 Следовательно необходимо изучать уже вопрос того сколько ограничений накладывается на СМИ (это больше относится к инстаграму, твиттеру и т.д.)152-ФЗ. Закон о защите персональных данных. При обработке любых персональных данных пользователей вы обязаны ему следовать. "Пакет Яровой" и все что с ним связано (хранение трафика, выдача данных о пользователей и т.д.)

Худший ответ:
А если создать сайт с фильмами, такой которых полно когда в гугл вводишь `" что-нибудь "смотреть онлайн бесплатно` где его лучше хостить? Могут ли добадаться или засудить ну ченить такое? Типа я нарушил законы? как узнать в какой стране можно и нельзя хостить? можно в США или нет? вот кажется что у них вообще нет таких сайтов как у нас не разу не встрачал - хотя может я не знаю где искать- или у них и правда все с этим так строго? не знаю не одного такого американского сайта с фильмами бесплатно, есть такие?
Вопрос: Как транслировать IP камеру XiaoMi XiaoFang через Asus роутер RT-AC51U с встроенным DDNS/VPN и внешним 3G / 4G модемом?

Лучший ответ:
1. Сделай сам vpn сервер с пробросом.
2. Я для таких целей держу сервак и пропускаю трафик через себя. С клиентов собираю 75руб в месяц за порт. Чтобы не изобретать костыли каждый раз заново, пинаю клиентов брать микротик перед требующим проброса оборудованием. Технологичность устно и письменно прошу не оценивать. Я знаю, мне стыдно.

Худший ответ:
Не знаю для каких нужд вам это надо, но как вариант можете поискать сервисы для трансляции rtsp с камеры. В этом случае вам правда прийдется держать компьютер включенным(на котором будет крутиться софт перенаправляющий rtsp поток куда надо)
Вопрос: CentOS 7 и Raid B140i от HPE, где проблема?

Лучший ответ:
Вам в инструкции написали Use dd to write the appropriate driver (u0 or u1) on a separate USB drive;
Это не значит скинуть файл с расширением DD на флешку, это значит что файл является образом и его нужно на флешку накатать с помощью "dd"dd if=./file.dd of=/dev/sd*
Даже на офф. сайте вам написалиdd if=hpdsa-<version>.<OSupdate>.x86_64.dd of=/dev/sdc1)

Худший ответ:
С 7.3 так и не заработало, скачал 7.2. и забил
Вопрос: Какая разница между C# и Python?

Лучший ответ:
что отличает эти языки
Основное отличие - статическая типизация.На каком языке проще добраться до системных API
Если под Windows, то на C#.

Худший ответ:
Странное сравнение. Для десктопа под винду выбирать без вариантов C# (WPF). Питон хоть и можно использовать для десктопа (PyQt в основном), но это не лучший выбор, использующийся в основном под линуксом, где питон по умолчанию стоит в системе и не надо тащить его с инсталятором.
Вопрос: Объясните как правильно применять паттерн Repository с Entity Framework?

Лучший ответ:
зачем нужно делать свой repository на каждую сущность
Не на каждую сущность а только для сущностей, которые выступают корнями агрегатов сущностей. Ну то есть если у вас есть сущность Product и ProductImage к примеру, то репозиторий вы делаете только для продуктов.Почему нельзя использовать шаблон Repository для работы с несколькими сущностями сразу
Потому что репозиторий представляет некую штуку, которая отвечает за хранение вещей. Например представьте что репозиторий это полка. У вас есть полка для одних штук, полка для других.
Причем полки эти могут содержать различные бизнес правила вдухе "пользователь не может положить на полку больше N продуктов пока не заплатит дополнительную деньгу".
И для каждой сущности будут свои правила как и кто может их где хранить. Банальное соблюдение принципа единой ответственности и разделения обязанностей.

Худший ответ:
Репозиторий - Это обертка над коллекцией элементов в памяти. Нужны методы Add, Remove, Get(id), GetAll, Find(predicate). Здесь не должно быть методов сохранить, редактировать т.к. для этого нам достаточно просто взять элемент из коллекции и изменить его. Репозиторий не должен знать о базе данных.
Unit of work - Представляет список объектов изменных бизнес транзакциями, координирует запись этих изменений.
Если просто взять элемент недостаточно - делают сервис, который уже знает что и с чем и как сохранять. Не надо делать репозитории для каждой сущности, достаточно 1-го Generic.
https://www.youtube.com/watch?v=rtXpYpZdOzM
https://www.youtube.com/watch?v=QwwfTWMrM9k
Другой подход это DDD, в нем нет репозиториев и unitofwork. Но его сложнее делать и не сразу доходит.
Вопрос: С какого языка программирования лучше начать?

Лучший ответ:
системного программирования и 3д-графики
C/C++

Худший ответ:
Хочу идти на сторону 3д-графики (игры)
учи математику.
Вопрос: Как выгоднее заказчику перевести деньги за выполненный проект?

Лучший ответ:
Биткоин

Худший ответ:
Paypal может для вас удобно будет.
Вопрос: Как запустить upstart после установки на ubuntu?

Лучший ответ:
upstart выкинули в 14-й убунте в пользу systemd

Худший ответ:
Правильнее уточнить зачем он вам. И ответ скорее всего - он вам не нужен.
В Ubuntu 15.04 systemd появилась как опция, в актуальных версиях Ubuntu это единственная система инициализации доступная из коробки. Все пакеты в репозиториях Ubuntu работают с ней и Upstart вам устанавливать не нужно.
Вопрос: Как запустить CSS анимацию по клику на jQuery?

Лучший ответ:
Добавлять по клику к svg класс, например ".animateit" и соответственно в css будет не.weed .st2 а .weed.animateit .st2 Тогда анимация будет срабатывать, только для <svg class="weed animateit" и не срабатывать для <svg class="weed" который имеется при загрузке

Худший ответ:
Добавлять по клику к svg класс, например ".animateit" и соответственно в css будет не.weed .st2 а .weed.animateit .st2 Тогда анимация будет срабатывать, только для <svg class="weed animateit" и не срабатывать для <svg class="weed" который имеется при загрузке
Вопрос: Нужен ноут для серфинга в интернете и комфортного просмотра фильмов, не подскажете?

Лучший ответ:
За такие цены либо либо HP либо lenovo. Никаких Asusов (ибо бюджетная линейка у них shit, знаю на личном опыте)
Советую HP 250 G5 - сам такой брал. Характеристики i3 7х, 1000гб HDD, 4гб RAM. Из достоинств красивый корпус, наличие временного заменителя для опитибея и два видеовыхода (VGA и hdmi). 
В дальнейшем Hdd был заменен на SSD, и перенесен на Optibay. Также был сделан апгрейд оперативной памяти.
UPD:
Вот есть еще Dell Vostro 5568-1106 . по мне тоже хороший ноутбук (https://www.svyaznoy.ru/catalog/notebook/1738/3788261

Худший ответ:
Dell, Asus - вполне норм. Например такой: https://www.notik.ru/goods/notebooks-asus-x541na-d...
Учтите, что это все таки низко-бюджетный ноутбук со всеми вытекающими. Как вариант можно взять ноут за 17-18к и поставить в него SSD типа Samsung 850 PRO гигов на 128 - что несколько компенсирует малое количество ОЗУ и медленный процессор.
UPD. Асусы не советуют бюджетные. Можно делл что-то типа такого взять: https://www.dns-shop.ru/product/0321260c8c613330/1... или https://www.dns-shop.ru/product/5271180589028a5a/1... и ставить туда SSD.
Вопрос: Какие книги актуальны для руководителя проекта?

Лучший ответ:
Как пасти котов45 татуировок менеджераБизнес как игра

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