Перейти к содержимому

Фотография

Какую роль играет выш.образование в карьере программиста?Вопрос к опытным людям


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 193

#141
xn80akxm

xn80akxm
  • Частый гость
  • 91 сообщений


Если уж очень хочется проверить мыслительные способности кандидата, лучше спросить, например:
1. Что такое массив (вектор);
2. Что такое связанный список;
3. Когда что использовать;

И где тут проверка мыслительных способностей кандидата?

Априори известно, что люди не могут говорить что-либо, что не характеризовало бы их.
Думаю, что мыслительные способности выявятся в процессе интервью.
  • 0

#142
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений



Если уж очень хочется проверить мыслительные способности кандидата, лучше спросить, например:
1. Что такое массив (вектор);
2. Что такое связанный список;
3. Когда что использовать;

И где тут проверка мыслительных способностей кандидата?

Априори известно, что люди не могут говорить что-либо, что не характеризовало бы их.
Думаю, что мыслительные способности выявятся в процессе интервью.

Замечательно. Как учит нас мудрейший xn80akxm, "люди не могут говорить что-либо, что не характеризовало бы их" ©. Ну разве можно с этим спорить? Нет! Значит, на том и порешили. Спрашиваем, что такое массив, или например, что такое связанный список. Сверяем полученный ответ с текстом учебника. Если ответ совпадает или близок к тексту, то мыслительные способности кандидата таким образом определены, и кандидат достойный. Может, кто-то думает, что это всего лишь способности к запоминанию терминов из учебника? Вот ведь дураки. :p
  • 0

#143
dzid

dzid
  • Свой человек
  • 939 сообщений

..куча бла-бла-бла проскипана...
Да, да! А также изучение высшей математики, всяких там теорем Коши (а это что за хрен?), да еще и со сдачей экзаменов - это тоже тот еще фимоз головного мозга. Надо изучать только четыре арифметических действия, ну и конечно, начисление процентов в жизни пригодится. :p

Ога, конечно. Вы программируете ради программирования. Вы напейсали компилятор? Или может вы - автор VS? Ваш код присутствует в ядре windows/linux/freebsd/os2/еще чего? Нет, скажите честно! Может вы какая знаменитость от computer science?

А вот я нищеброд, занимаюсь решением вполне реальных задач, стоящих перед определенной отраслью промышленности. Причем, что характерно - ВСЕ эти задачи сводятся к математическим моделям, которые надо запихать в компьютер, накормить данными и прикрутить красивенький интерфейс, чтобы юзер мозг не вывихнул. Тем и живу.

Поэтому я и утверждаю, что определение задроченности кандидата на мелкую специфику языка, да еще такую, практической пользы от применения которой в коде -0.0% - глупо. (исключения - зло. По любому) И характеризует работодателя как не самого умного человека. Это все потому, что знание какого-то конкретного языка программирования - неважно. Надо просто знать какой-нибудь, лучше не один. Хорошему, годному программисту изучить ЛЮБОЙ еще один язык программирования - не более недели времени (до уровня, когда он может на нем родить что-нибудь полезное). Если вспомнить, что в крупный проект люди вкатываются примерно год, неделя там роли особенной не играет. Важнее понимание основ - структуры данных, алгоритмы там всякие, математика, наличие здравого смысла в конце концов. Этому научить сложнее, поэтому это - важнее.

Я не утверждаю, что для написания конфигураций в 1с надо все это знать. Вполне допускаю, что не надо. Я тут про серьезные вещи говорю. Или там программер в проект из 10 строчек кода на бейсике шарпе, где нет и не будет понятия "архитектура приложения" и вообще контора закроется через год - ну там да, там знание языка тоже важно - изучать особенно нечего. Но ведь там обычно и не платят, вот ведь в чем дело-то! :)


Если уж очень хочется проверить мыслительные способности кандидата, лучше спросить, например:
1. Что такое массив (вектор);
2. Что такое связанный список;
3. Когда что использовать;

И где тут проверка мыслительных способностей кандидата?

Это была ВВОДНАЯ часть. Всегда ваш, К.О.

PS: Вы что, читать разучились? Срочно научитесь обратно!

Сообщение отредактировал dzid: 23.12.2009, 05:58:52

  • 0

#144
Havoc

Havoc
  • Завсегдатай
  • 296 сообщений

Приведу один из наших вопросов для собеседования. В качестве языка - JAVA.
Цель задачи заключается в том, чтобы потенциальный коллега показал свою способность
интерпретировать код у себя в голове и потом внятно объяснить,
что же с кодом не так, и что вообще он должен вывести.

class oops {
	static void main(string[] $) {
		system.out.println(1 - 0.9);
	}

}

Замечу, что грамотные спецы говорят о пазлах и гайдлайнах.
А что же скажете вы?


А что же скажете вы, типа, пацаки :)

Вы языки там не перепутали случайно?
В JDK нет класса string и пакета system.
Возможно переменную $ также нельзя объявлять, но насчет этого я точно не скажу.
В любом случае, даже если можно, этот код компилиться не будет.

Сообщение отредактировал Havoc: 23.12.2009, 09:57:54

  • 0

#145
hes

hes
  • В доску свой
  • 1 567 сообщений

Важнее понимание основ - структуры данных, алгоритмы там всякие, математика, наличие здравого смысла в конце концов. Этому научить сложнее, поэтому это - важнее.

верно сказано :) и то, алгоритмы досконально знать не обязательно. алгоритм можно восстановить, имея лишь представление о его правильной функциональности.
  • 0

#146
Havoc

Havoc
  • Завсегдатай
  • 296 сообщений

Поэтому я и утверждаю, что определение задроченности кандидата на мелкую специфику языка, да еще такую, практической пользы от применения которой в коде -0.0% - глупо.


+1
Если, конечно, нет конкурса 100 человек на место. Там уже можно и попридираться по мелочам )

Сообщение отредактировал Havoc: 23.12.2009, 09:56:55

  • 0

#147
xn80akxm

xn80akxm
  • Частый гость
  • 91 сообщений


class oops {
	static void main(string[] $) {
		system.out.println(1 - 0.9);
	}

}

Вы языки там не перепутали случайно?

Язык - Java.
  • 0

#148
Havoc

Havoc
  • Завсегдатай
  • 296 сообщений
Уважаемый xn80akxm, приведенный Вами код не будет компилиться, т.к. написан с ошибками.
  • 0

#149
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений

..куча бла-бла-бла проскипана...

Это была ВВОДНАЯ часть. Всегда ваш, К.О.

PS: Вы что, читать разучились? Срочно научитесь обратно!

Если ваша "вводная часть" такой bullshit, то остальное у вас даже читать нечего. Я вижу, если требуется хоть немного напрячь извилины (например, найти палиндромы), то в такой теме вас никогда нет. Ну ладно, палиндромы, это слишком мелко. Для такого специалиста как вы, ненужное баловство и пустая трата времени. Тогда, может быть, вас здесь неоднократно благодарили за помощь в решении чьей-то практической проблемы? Не подскажете, кто, когда и за что? А то у меня не получилось найти. Зато легко найти кучу ваших "бла-бла-бла", кстати, изложенных в довольно хамском тоне. :)
  • 0

#150
xn80akxm

xn80akxm
  • Частый гость
  • 91 сообщений

Уважаемый xn80akxm, приведенный Вами код не будет компилиться, т.к. написан с ошибками.

Угу, значит одна подзадача задачи - исправление ошибок.
  • 0

#151
Havoc

Havoc
  • Завсегдатай
  • 296 сообщений
Допустим, что все допущенные синтаксические ошибки исправлены.

Остается понять, каким будет результат выражения (1 - 0.9).
Литерал 0.9 преобразуется в число типа double.
Поскольку 0.9 в двоичном представлении - (1001/1010) если число и рациональное, то дробь с очень длинным хвостом, который не вместится полностью в тип double, двоичное представление будет близко к 0.9, но не равно этому значению.
Следовательно, и результат операции (1 - (1001/1010)), при выводе в виде десятичной дроби будет близок к 0.1, но не равен.

Цель задачи заключается в том, чтобы потенциальный коллега показал свою способность
интерпретировать код у себя в голове и потом внятно объяснить,
что же с кодом не так, и что вообще он должен вывести.


Я бы несколько по-другому сформулировал что именно показывает решение этой задачи, наверное, знание двоичной арифметики, знание того, как представляются числа в памяти. Не совсем согласен с тем, что программа из 1-й строчки может показать способность человека "запускать" программу в голове.

Сообщение отредактировал Havoc: 23.12.2009, 16:31:42

  • 0

#152
Havoc

Havoc
  • Завсегдатай
  • 296 сообщений
Раз пошла такая пьянка, предложу тогда и я задачку:

В сети существует 11 компьютеров и сетевой диск.
Диск хранит в себе 10*n чисел. Каждый компьютер обладает оперативной памятью, позволяющей хранить в себе n чисел.
Как отсортировать массив чисел, хранящийся на диске?

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

Задача с реального интервью, между прочим.
Суть в том, что нужно предложить способ, т.е. словесно описать алгоритм.

Сообщение отредактировал Havoc: 23.12.2009, 17:04:02

  • 0

#153
hes

hes
  • В доску свой
  • 1 567 сообщений
Havoc допускается ли так:
1. находим из N чисел по 10 максимумов (даже лучше n/10 чисел от конца сортированного списка)
2. сбрасываем их на 11 комп где он их сортирует по возрастанию,
3. стирает эти числа с диска
4. пишет максимумы на диск,
5. идем к пункту 1 пока не будет достигнуто условие полной обработки данных
?

Сообщение отредактировал hes: 23.12.2009, 17:16:48

  • 0

#154
Havoc

Havoc
  • Завсегдатай
  • 296 сообщений

Havoc допускается ли так:
1. находим из N чисел по 10 максимумов
2. сбрасываем их на 11 комп где он их сортирует по возрастанию,
3. стирает эти числа с диска
4. пишет максимумы на диск,
5. идем к пункту 1 пока не будет достигнуто условие полной обработки данных
?


Прежде чем критиковать время выполнения, задам такой вопрос:
Диск может содержать в себе только n*10 чисел, т.е. он заполнен на 100%.
Можете рассказать более детально, как именно будет происходить выполнение 3 и 4, а потом посчитаем время выполнения такого алгоритма.
Не забудьте, у самого диска нет оперативной памяти.

Ключ в том, что дисковые операции - самые нежелательные, их необходимо минимизировать.
После них идут сетевые операции, и самые быстрые - это операции с оперативной памятью, тем не менее, и их следует оптимизировать по максимуму :rolleyes:

Сообщение отредактировал Havoc: 23.12.2009, 17:23:08

  • 0

#155
hes

hes
  • В доску свой
  • 1 567 сообщений

Прежде чем критиковать время выполнения, задам такой вопрос:
Диск может содержать в себе только n*10 чисел, т.е. он заполнен на 100%.
Можете рассказать более детально, как именно будет происходить выполнение 3 и 4, а потом посчитаем время выполнения такого алгоритма.
Не забудьте, у самого диска нет оперативной памяти.

Ключ в том, что дисковые операции - самые нежелательные, их необходимо минимизировать.
После них идут сетевые операции, и самые быстрые - это операции с оперативной памятью, тем не менее, и их следует оптимизировать по максимуму :rolleyes:

об этом я не подумал - работаю тут еще параллельно, подскажете ?
--
пункт 4 просто - все что на 11 машине скинуть на диск.
а вот пункт 3 хз )

Сообщение отредактировал hes: 23.12.2009, 17:36:51

  • 0

#156
Havoc

Havoc
  • Завсегдатай
  • 296 сообщений

об этом я не подумал - работаю тут еще параллельно, подскажете ?
--
пункт 4 просто - все что на 11 машине скинуть на диск.
а вот пункт 3 хз )


Возможно, я изначально не совсем правильно понял Вашу мысль.

Вот именно самый первый пункт.
1. находим из N чисел по 10 максимумов

Не могли бы Вы объяснить, откуда именно вы выбираете числа?
Означает ли это, что вы каким-то образом используете другие 10 компьютеров, находящихся в сети?
  • 0

#157
hes

hes
  • В доску свой
  • 1 567 сообщений


об этом я не подумал - работаю тут еще параллельно, подскажете ?
--
пункт 4 просто - все что на 11 машине скинуть на диск.
а вот пункт 3 хз )


Возможно, я изначально не совсем правильно понял Вашу мысль.

Вот именно самый первый пункт.
1. находим из N чисел по 10 максимумов

Не могли бы Вы объяснить, откуда именно вы выбираете числа?
Означает ли это, что вы каким-то образом используете другие 10 компьютеров, находящихся в сети?

диск = n*10
на каждый из 10 компов скидываем n чисел - итого 10 компов загружены.
каждый комп сортирует свой список, допустим по возрастанию.
после - с конца каждого списка забираем n/10 чисел и отправляем на 11 комп - получается на 11 компе мы сортируем n отсортированных максимальных значений - и больше их трогать не надо. и так далее.
  • 0

#158
dzid

dzid
  • Свой человек
  • 939 сообщений

Раз пошла такая пьянка, предложу тогда и я задачку:

В сети существует 11 компьютеров и сетевой диск.
Диск хранит в себе 10*n чисел. Каждый компьютер обладает оперативной памятью, позволяющей хранить в себе n чисел.
Как отсортировать массив чисел, хранящийся на диске?

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

Задача с реального интервью, между прочим.
Суть в том, что нужно предложить способ, т.е. словесно описать алгоритм.

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

После чего выполняем слияние, которое может делать 11 комп.
Инициализация:
Каждый комп присылает свое минимальное значение. Мы их потом храним на 11 компе. Еще мы там храним количество чисел, оставшихся в каждом из оставшихся 10 компов.

Цикл: спрашиваем у компа, который обладает минимальным числом, это самое число и следующее минимальное число.
Выбираем следующий комп, обладающий минимальным числом, ну и т.д., пока числа не кончатся.

Ну как-то вот так, основная идея. Может еще что придумаю

Сообщение отредактировал dzid: 23.12.2009, 18:17:12

  • 0

#159
Havoc

Havoc
  • Завсегдатай
  • 296 сообщений

диск = n*10
на каждый из 10 компов скидываем n чисел - итого 10 компов загружены.
каждый комп сортирует свой список, допустим по возрастанию.
после - с конца каждого списка забираем n/10 чисел и отправляем на 11 комп - получается на 11 компе мы сортируем n отсортированных максимальных значений - и больше их трогать не надо. и так далее.



Отлично, начало абсолютно верное, давайте теперь поговорим о том, что и как будет происходить на 11-м компьютере.
Допустим, мы имеем 10 компьютеров и в их оператиной памяти 10 частей массива по n элементов, отсортированных в нужном нам порядке.

Объясните подробнее, как именно вы переместите числа на 11-й компьютер и далее запишете на диск?
  • 0

#160
Havoc

Havoc
  • Завсегдатай
  • 296 сообщений

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

После чего выполняем слияние, которое может делать 11 комп.
Инициализация:
Каждый комп присылает свое минимальное значение.

Цикл: спрашиваем у компа, который обладает минимальным числом, это самое число и следующее минимальное число.
Выбираем следующий комп, обладающий минимальным числом, ну и т.д., пока числа не кончатся.

Ну как-то вот так, основная идея. Может еще что придумаю


И как финальный штрих, распишите процесс записи на диск из оперативки 11-го компа :rolleyes:
  • 0


Количество пользователей, читающих эту тему: 2

пользователей: 0, неизвестных прохожих: 2, скрытых пользователей: 0

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.