Задачи для IT интервью

olis
Уже с Приветом
Posts: 4935
Joined: 02 Mar 2002 10:01
Location: UK

Re: Задачи для IT интервью

Post by olis »

АццкоМото wrote:
olis wrote:Может быть Java- программистам и не нужно знать все эти указатели, списки и т.п. "низкоуровневые" вещи ?
Зато они знают Hadoop, Spring, Hibernate и т.п. Голова то чай не резиновая. :umnik1:
в общих чертах надо знать всем

но есть другой вопрос: от старья типа того кода, что вы привели нужно уходить. ибо код хороший, но говно. ну как можно смотреть без слез на while(0) например? а все потому что выбранный инструмент устарел. он, блин, ассемблер заменял в 1972 что ли году, а не дворе подготовка 2015 году

(зы, кто не знает банальщину типа списков-хэшмепов и про знание хадупов с микросервисами врет)
Код этот в ядре Линукса используется. Да и мы у себя в проекте тоже юзаем, вполне устраивает.
olis
Уже с Приветом
Posts: 4935
Joined: 02 Mar 2002 10:01
Location: UK

Re: Задачи для IT интервью

Post by olis »

Сабина wrote:
olis wrote:Может быть Java- программистам и не нужно знать все эти указатели, списки и т.п. "низкоуровневые" вещи ?
Зато они знают Hadoop, Spring, Hibernate и т.п. Голова то чай не резиновая. :umnik1:
Ооо, пошло поехало. А исходники надо редактировать vi-ем, если уж так не повезло и жизнь заставила писать на это жабе ?
Да ладно, не обижайтесь. Я ж не со зла.
Я вот Джаву не знаю и всех джавовых технологий соответственно. Восхищаюсь людьми которые могут запомнить все это.
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Задачи для IT интервью

Post by АццкоМото »

olis wrote:
АццкоМото wrote:
olis wrote:Может быть Java- программистам и не нужно знать все эти указатели, списки и т.п. "низкоуровневые" вещи ?
Зато они знают Hadoop, Spring, Hibernate и т.п. Голова то чай не резиновая. :umnik1:
в общих чертах надо знать всем

но есть другой вопрос: от старья типа того кода, что вы привели нужно уходить. ибо код хороший, но говно. ну как можно смотреть без слез на while(0) например? а все потому что выбранный инструмент устарел. он, блин, ассемблер заменял в 1972 что ли году, а не дворе подготовка 2015 году

(зы, кто не знает банальщину типа списков-хэшмепов и про знание хадупов с микросервисами врет)
Код этот в ядре Линукса используется. Да и мы у себя в проекте тоже юзаем, вполне устраивает.
И что теперь? Я ж говорю - код и хороший и говно
Ну и ядром Линукса пугать тоже не надо - был я там. Помойка изрядная, хотя местами хороша

ЗЫ. как-то на интервью просили найти баг в реальном коде FreeBSD. так что не показатель
Мат на форуме запрещен, блдж!
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Задачи для IT интервью

Post by Сабина »

АццкоМото wrote:Сабина, посмотри, например, на addFirst() и скажи - ты реальноь думаешь, что половозрелому человеку такое можно показывать людям? А там все смердит не хуже

Просто лень распинаться
Да и правда что это я :). Забыла что ты - невменяемуй хам и часто пишешь с целью порисоваться и других обосрать. Откроешь тему "прочла на днях про микросервисы, обсудим"? И тут же ты на коне с шашкой - микросервисы говорит знает, бугага. Кто ж тебя так по жизни обижает, что ты постоянни бегаешь в форум на других сливать и selfesteem подпитывать :%) ?
https://www.youtube.com/watch?v=wOwblaKmyVw
User avatar
Херовимчик
Уже с Приветом
Posts: 5283
Joined: 27 Sep 2008 21:48
Location: Moscow-Seattle-SFBA

Re: Задачи для IT интервью

Post by Херовимчик »

Сабина,

Code: Select all

public void addFirst(MyType value)	{
		if (firstNode == null)	{
			firstNode = new Node();
			firstNode.value = value;
		}	else	{
			Node newFirstNode = new Node();
			newFirstNode.next = firstNode;
			newFirstNode.value = value;
			firstNode = newFirstNode;
		}
объясните пожалуйста зачем вы делаете newFirstNode.next = firstNode;? если у вас будет всего два элемента, вы же кругами будете ходить...
avitya
Уже с Приветом
Posts: 3836
Joined: 13 Sep 2007 10:06

Re: Задачи для IT интервью

Post by avitya »

Сабина wrote: - Форматирование не консистентное
Это как то относится к функциональности хешмепа? Форматирование кода - это дело вкуса
- Почему элементы объекты? Известен же тип?
чтобы был более generic
- проверки на currentEntry.next != null кажутся неправильными.
и почему это интересно?
- нету комментариев
в хорошем коде комментарии излишни
[/quote]
– Вы можете считать, что это дело вкуса, но вас на работу из-за этого могут спокойно не взять, ибо это характеризует как вы будете работать.
- это такой тонкий троллинг?
- Думайте сами...
- точно так же, как пункт 1.

В общем и целом, согласен с техасским товарищем — код на уровне первокурсника...
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Задачи для IT интервью

Post by АццкоМото »

Сабина wrote:Откроешь тему "прочла на днях про микросервисы, обсудим"? И тут же ты на коне с шашкой - микросервисы говорит знает, бугага. Кто ж тебя так по жизни обижает, что ты постоянни бегаешь в форум на других сливать и selfesteem подпитывать :%) ?
в этом месте приличный человек идет в упомянутую тему, перечитывает и извиняется

теперь продемонстрируй, к каким относишься ты
Мат на форуме запрещен, блдж!
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Задачи для IT интервью

Post by АццкоМото »

Херовимчик wrote:Сабина,

Code: Select all

public void addFirst(MyType value)	{
		if (firstNode == null)	{
			firstNode = new Node();
			firstNode.value = value;
		}	else	{
			Node newFirstNode = new Node();
			newFirstNode.next = firstNode;
			newFirstNode.value = value;
			firstNode = newFirstNode;
		}
объясните пожалуйста зачем вы делаете newFirstNode.next = firstNode;? если у вас будет всего два элемента, вы же кругами будете ходить...
эээ... но тут-то все правильно, нет?
лень открывать полную версию, но обычно добавление первого элемента делается именно так. или где я туплю?
Мат на форуме запрещен, блдж!
User avatar
Херовимчик
Уже с Приветом
Posts: 5283
Joined: 27 Sep 2008 21:48
Location: Moscow-Seattle-SFBA

Re: Задачи для IT интервью

Post by Херовимчик »

АццкоМото wrote:
Херовимчик wrote:Сабина,

Code: Select all

public void addFirst(MyType value)	{
		if (firstNode == null)	{
			firstNode = new Node();
			firstNode.value = value;
		}	else	{
			Node newFirstNode = new Node();
			newFirstNode.next = firstNode;
			newFirstNode.value = value;
			firstNode = newFirstNode;
		}
объясните пожалуйста зачем вы делаете newFirstNode.next = firstNode;? если у вас будет всего два элемента, вы же кругами будете ходить...
эээ... но тут-то все правильно, нет?
лень открывать полную версию, но обычно добавление первого элемента делается именно так. или где я туплю?
все верно, я туплю. Мне почему-то среди всех этих бесконечных new и first привидилось что последня строчка firstNode.next = newFirstNode. Тяжело с таким стилем читать. Ну и глобально непривычно видеть LL с добавлением вперед
rorp
Уже с Приветом
Posts: 314
Joined: 24 May 2013 22:04

Re: Задачи для IT интервью

Post by rorp »

Здесь memory leak:

Code: Select all

	private Node removeFirstNode() {
		if (firstNode == null) throw new NoSuchElementException();
		Node removedFirst = firstNode;
		firstNode = firstNode.next;
		return removedFirst;
	}
Надо бы removedFirst.next обнулить.
rorp
Уже с Приветом
Posts: 314
Joined: 24 May 2013 22:04

Re: Задачи для IT интервью

Post by rorp »

Херовимчик wrote:Ну и глобально непривычно видеть LL с добавлением вперед
Во всяких эрлангах с хасеклами списки так сделаны. Правда, они там immutable, то есть, аналог addFirst() там создает новый список, а не изменяет старый.
berlagaB
Уже с Приветом
Posts: 344
Joined: 03 Dec 2014 23:49

Re: Задачи для IT интервью

Post by berlagaB »

Запощу еще раз решение и новый вопрос, не все его могли заметить 2 страницы назад.
valchkou wrote: Может математики подскажут формулу для правильно расчета распределения.
Я для себя считаю упрощенной формулой n = sqrt(2*m)
где n начальный этаж и соотв макс кол-во попыток, а m кол-во этажей.
100 - 14 (14.14...)
30 - 8 (7.7...)
Я изложу общее решение.

Решим немного другую задачу. Найдем максимальное количество этажей, которые можно гарантированно проверить за К бросков. Назовем эту величину N(K).

Если всего бросков К, то с какого этажа нужно сделать первый бросок? Нельзя бросать с K+1-го этажа или выше, потому что если диск разобьется, то оставшихся K-1 бросков может не хватить на проверку >=К этажей. Если сбросить с К-го этажа и диск разобьется, то останется ровно необходимые К-1 бросков на проверку оставшихся этажей с 1-го по К-1-й. Ну а бросать с К-1-го и ниже не имеет смысла, если можно бросить с более высокого. Следовательно, первый бросок нужно делать именно с К-го этажа.

Далее рассуждаем аналогично. Если после первого броска у нас по прежнему два целых диска, то остается К-1 бросок и, следовательно, второй бросок нам нужно следать с (К+К-1)-го этажа. Если диск разобьется, то остается К-2 броска и (К+К-1)-K-1 = К-2 этажей для проверки. Третий бросок нужно делать с (К+К-1+К-2)-го этажа и т.д.
Последний, К-й бросок нужно сделать с (K+(K-1)+(К-2)+...+1)-го этажа.

Итак, мы нашли форумулу -
N(K) = K+(K-1)+(К-2)+...+1 = (К+1)К/2

При данном N и неизвестном К нужно найти такое К, чтобы выполнялось неравенство К(К-1)/2 < N <= (К+1)К/2.
Для N=30 будет К=8, для N=100 будет К=14.

Ну и легко заметить, что величина K^2/2 всегда будет удовлетворять неравенству, так что ваша формула n = sqrt(2*m) выглядит верной. :great:

П.С. Задачка со звездочкой. Найти общее решение для случае N этажей и К дисков. :)
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Задачи для IT интервью

Post by Сабина »

avitya wrote: – Вы можете считать, что это дело вкуса, но вас на работу из-за этого могут спокойно не взять, ибо это характеризует как вы будете работать....
Из-за чего именно ? Я опровергла несколько ваших комментариев.
Если бы не брали пр причине неверно обьявленного типа может быть и задумалась бы
https://www.youtube.com/watch?v=wOwblaKmyVw
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Задачи для IT интервью

Post by Сабина »

АццкоМото wrote:
Сабина wrote:Откроешь тему "прочла на днях про микросервисы, обсудим"? И тут же ты на коне с шашкой - микросервисы говорит знает, бугага. Кто ж тебя так по жизни обижает, что ты постоянни бегаешь в форум на других сливать и selfesteem подпитывать :%) ?
в этом месте приличный человек идет в упомянутую тему, перечитывает и извиняется

теперь продемонстрируй, к каким относишься ты
Так приличный человек и "смердит" и прочие выражения как howdoyoudo не использует.
Думаешь я помню где это я прочла? Если очень хочтеся протестировать меня на приличность - можно просто обьяснить по поводу чего это там упоминалось
https://www.youtube.com/watch?v=wOwblaKmyVw
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Задачи для IT интервью

Post by Сабина »

rorp wrote:Здесь memory leak:

Code: Select all

	private Node removeFirstNode() {
		if (firstNode == null) throw new NoSuchElementException();
		Node removedFirst = firstNode;
		firstNode = firstNode.next;
		return removedFirst;
	}
Надо бы removedFirst.next обнулить.
Да много чего надо, сан вон какой класс наваял :D . Но что успела как говорится за отведенное время, да интервью тому лет пять минимум. Зато хоть по теме поговорили, а то какие то были общие фразы о крутости писателей хешмепов и тех кто их писать не снисходит.
https://www.youtube.com/watch?v=wOwblaKmyVw
avitya
Уже с Приветом
Posts: 3836
Joined: 13 Sep 2007 10:06

Re: Задачи для IT интервью

Post by avitya »

Сабина wrote:
avitya wrote: – Вы можете считать, что это дело вкуса, но вас на работу из-за этого могут спокойно не взять, ибо это характеризует как вы будете работать....
Из-за чего именно ? Я опровергла несколько ваших комментариев.
Если бы не брали пр причине неверно обьявленного типа может быть и задумалась бы
Какие такие опровержения? Отсутствие комментариев или скобочки не симметрично расставленные.
Поверьте, и то и другое считается во многих местах major fault. Это можно считать придирками и глупостями, но именно на такие мелочи и обращают внимание.
olis
Уже с Приветом
Posts: 4935
Joined: 02 Mar 2002 10:01
Location: UK

Re: Задачи для IT интервью

Post by olis »

avitya wrote:
Сабина wrote:
avitya wrote: – Вы можете считать, что это дело вкуса, но вас на работу из-за этого могут спокойно не взять, ибо это характеризует как вы будете работать....
Из-за чего именно ? Я опровергла несколько ваших комментариев.
Если бы не брали пр причине неверно обьявленного типа может быть и задумалась бы
Какие такие опровержения? Отсутствие комментариев или скобочки не симметрично расставленные.
Поверьте, и то и другое считается во многих местах major fault. Это можно считать придирками и глупостями, но именно на такие мелочи и обращают внимание.
Да ладно, это то как раз придирки. Хотя внимание конечно обращают, да.
Вот у нас сейчас код ревьюят несколько десятков человек из 4 стран. Людей много, свободного времени у них еще больше. Когда сказать нечего, а сказать чего то хочется, именно это и пишут: скобочки, комментарии не те, пробелы ... :)
reality
Уже с Приветом
Posts: 256
Joined: 14 Jul 2011 09:07
Location: SaintP -> NYC

Задачи для IT интервью

Post by reality »

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

Хотя конечно на собеседовании па это обращать внимание тупо
olis
Уже с Приветом
Posts: 4935
Joined: 02 Mar 2002 10:01
Location: UK

Re: Задачи для IT интервью

Post by olis »

reality wrote:Пробелы очень важно на самом деле, потому что код читает не только компиоятор но часто и другой человек, а когда жалеют лишнюю пустую строку вставить то читать потом эти простыни нереально.

Хотя конечно на собеседовании па это обращать внимание тупо
Ну не знаю, убрать пробелы вот здесь: func1( 10 ) или здесь: func2(int * n) тоже важно?
User avatar
FreemanUSA
Уже с Приветом
Posts: 349
Joined: 24 Jul 2012 23:26
Location: echo RU::US($me);

Re: Задачи для IT интервью

Post by FreemanUSA »

Задачка парни по крону. Получаем контен из итернета язык ПХП. Первый берёт ссылки из базы данных и с их помощю загружает рисунки в нужную директорию. Второй так же работает только использует EXCEL spreadsheet(имеет одну колонку с URL) и из за одного косяка возрашает пустой контент, что за косяк?
1.________________________________________________
$result = $db->query('SEL ECT url FR OM url ORDER BY url');
$i = 0;

foreach($result as $url){
$pos = strpos($url['url'],'photos/');
if($pos!==false){
$name = substr($url['url'],$pos+7);
$content = file_get_contents($url['url']);
if(!empty($content)){
file_put_contents('save/'.$name.'',$content);
}
}else{
$pos = strpos($url['url'],'images/');
$name = substr($url['url'],$pos+7);
$content = file_get_contents($url['url']);
if(!empty($content)){
file_put_contents('save/'.$i.''.$name.'',$content);
$i++;
}
}
}
echo '<h1>Done!</h1>';

2.__________________________________________________­____
$file = fopen('images.csv','r');
$next = fgets($file);
$i = 0;
while (!feof($file)){
$pos = strpos($next,'photos/');
if($pos!==false){
$name = substr($next,$pos+7);
$content = file_get_contents($next);
if(!empty($content)){
file_put_contents('save/'.$name.'',$content);
}
}else{
$pos = strpos($next,'images/');
$name = substr($next,$pos+7);
$content = file_get_contents($next);
if(!empty($content)){
file_put_contents('save/'.$i.''.$name.'',$content);
$i++;
}
}
$next = fgets($file);

}
fclose($file);
echo '<h1>Done!</h1>';
User avatar
FreemanUSA
Уже с Приветом
Posts: 349
Joined: 24 Jul 2012 23:26
Location: echo RU::US($me);

Re: Задачи для IT интервью

Post by FreemanUSA »

Сколько значений содержать переменная для последующей обработки .
$result = $db->query($query);
Сделаю проше
$result = $result->fetch();
:)
ekriv
Уже с Приветом
Posts: 5424
Joined: 19 Jan 2004 23:12
Location: Florida

Re: Задачи для IT интервью

Post by ekriv »

FreemanUSA wrote:Сколько значений содержать переменная для последующей обработки .
$result = $db->query($query);
Сделаю проше
$result = $result->fetch();
:)
Для начала подправьте русский язык :)
Все зависит от количества колонок в запросе и от типа возвращаемого результата.
По умолчанию PDO::FETCH_BOTH (default): returns an array indexed by both column name and 0-indexed column number as returned in your result set
Зачем задавать вопросы, ответ на которые находится в документации за секунду?
User avatar
FreemanUSA
Уже с Приветом
Posts: 349
Joined: 24 Jul 2012 23:26
Location: echo RU::US($me);

Re: Задачи для IT интервью

Post by FreemanUSA »

Это чё ... или повод для драки :twisted: Вы не ответили на простой вопрос что может вернуть этот запрос, а не сколько колонок или правильность орфографии Русского Языка форева :)
ekriv
Уже с Приветом
Posts: 5424
Joined: 19 Jan 2004 23:12
Location: Florida

Re: Задачи для IT интервью

Post by ekriv »

FreemanUSA wrote:Это чё ... или повод для драки :twisted: Вы не ответили на простой вопрос что может вернуть этот запрос, а не сколько колонок или правильность орфографии Русского Языка форева :)
Вернуть может: FALSE, ARRAY, ASSOCIATED ARRAY, BOTH
User avatar
FreemanUSA
Уже с Приветом
Posts: 349
Joined: 24 Jul 2012 23:26
Location: echo RU::US($me);

Re: Задачи для IT интервью

Post by FreemanUSA »

Да это правильно, только что возрашает $result = $db->query($query); при неправельном или правельном вводе или SQL injection вот что я ждал. А так два дня для стандартного ответа это круто :)

Return to “Работа и Карьера в IT”