Здравствуйте, Smetanin, Вы писали:
S>DEMON HOOD, уважаемый, вы о чём, какой ДиректХ? Как можно сравнивать знание конкретного API и знания парадигмы порграммирования...
Как вы можете об этом говорить? Вы сами занимались этим? Писали движки для игр?
Если я вам начну задавать вопросы, сможете вы на них ответить?
Там тоже очень интересный мир, который не ограничивается "какими то апи".
А теория 3d? etc...
Dimentiy wrote: > S>>Интересно, а по вашему, какие *БАЗОВЫЕ* знания должны быть у > *начинающего* программиста? > > void main() > { > } > > А вот фиг там :0) > > *int* main() {
return 0; > }
Здравствуйте, Calc, Вы писали:
S>>DEMON HOOD, уважаемый, вы о чём, какой ДиректХ? Как можно сравнивать знание конкретного API и знания парадигмы порграммирования... C>Как вы можете об этом говорить? Вы сами занимались этим? Писали движки для игр? C>Если я вам начну задавать вопросы, сможете вы на них ответить? C>Там тоже очень интересный мир, который не ограничивается "какими то апи". C>А теория 3d? etc...
Я не понял вашего поста. Вы мне возражаете? Вы считаете, что у стажёра может не быть базовых знаний?
Я говорил о том, что стажёр-программист должен знать базовые вещи. Мне возражают, приводя в качестве примера ДиректХ. Я говорю, что ДиреткХ — это вещь не базовая.
Вот вы, Calc, если будете брать стажёра — что, не потребуете от него базовых знаний? Может быть то, что я пересчислил — не базовое? Для геймдева, я подозреваю, к базовым знаниям ещё "геометрия/стереометрия" добавляется. Я не прав?
А вот как раз прикладному API (хоть ДиректХ, хоть купленный движок) стажёра, имеющего нормальную базовую подготовку — можно и обучить.
А если он не знает, что такое виртуальная функция, какие бывают алгоритмы сортировки... Вы его возьмёте?
Давайте я попробую.
В двух словах: S>1. Ориетироваться в ООП: наследование, полиморфизм, инкапсуляция — должны быть для него не абстрактые слова.
Вам по бучу, Страуструпу или UML? (одно и тоже, но разными словами) S>2. Знать основные структуры данных: массив, связный список, очередь, дерево, стек и т.д.
Массив — набор ячеек (ячеек памяти, в другой литературе "переменных одного типа с одним именем, различаемых по индексу") одного типа
Связной список — какой? Односвязный, двусвязный? Есть поле для хранения значения и есть поле для указателя на предыдущий элемент и последующий элемент.
Очередь, оноже FIFO (First in, first out), имеет конец и начало, тоже является разновидностью списков, элементы вставляются по концам.
Дерево — каждый из элементов имеет своего родителя, в зависимости от типа списка либо родитель знает о потомках, либо потомок знает о своем родителе. Есть бинарные деревья...
стек — тоже список, включение и исключение элементов идет на одном конце FILO (FIRST in Last out), зачастую операциями pop(извлечение) и push(добавление) S>3. Знать осноные приемы программирования. Должно быть некое понимание, что любое решение — это палка о двух концах. Т.е. например, можно получить прирост в скорости за счет увеличения памяти.
Ну нпример можно кэшировать данные. С этим довольно туго, опыта мало. S>4. Общее представление о потоках, разделяемой памяти. (Тут я уже сильно сомневаюсь, т.к. на этом вопросе очень многие плывут.)
Семафоры, мьютексы, API для временного запрета доступа к ячейке памяти, сообщения. синхронизация, ожидание завершения потока.
Если не ошибаюсь, то рарделяемая потоками память, это память, которая пренадлежит процессу, в котором были порождены потоки (синхронизацией занимался, есть проект, есть маленький опыт)
А теперь скажите гожусь я на роль стажера?
Вдруг от вашего ответа будет зависить моя дальнейшая жизнь
>> Все эти ваши сортировки то же самое. S>Нет. Сортировки — это базовые знания. Если ты не имеешь представления о базовых алгоритмах — ты не изучал программирование.
qsort, пузырьки, прямой проход.
Поиск нравится. В связке с сортировками хорошо спрашивать про двоичный поиск (весчь).
S>Вообще-то это тоже базовые знания. Если ты не помнишь приблизительно, как выглядит потоковый ввод-вывод, значит ты книг по С++ (например, Старуструпа) не читаешь вообще. Это значит, что ты как минимум ленив и нелюбопытен.
Я примерно знаю как это выглядит, что поток можно направить на любой участок памяти, делал я это, но делал это года два назад, сечас не пользуюсь.
>> Программист — это не отличник-зубрила, это творческая натура, имхо.
S>Без комментариев.
Ну почему так критично.
Вы книги Буча по UML читали?
Ну как там можно зазубрить всю эту полемику (читать как воду, вводный материал)?
Здравствуйте, DEMON HOOD, Вы писали:
DH>Здравствуйте, Smetanin, Вы писали:
S>>>>значит ты книг по С++ (например, Старуструпа) DH>>>вот ещё выжали — обязательное прочтение Страустропа. Наверное на собеседовании нужну пару раз автора процитировать?
S>>Ясно. Не читаешь.
DH>Подход понятен! DH>Коментировать остальное хамство даже не буду.
Я прокоментирую.
Страуструп — создатель языка.
Хошь, не хошь, а читировать придется.
Здравствуйте, MaximVK, Вы писали:
DH>>веришь — не знаю. Ну не могу я сейчас словами описать чем класс от структуры отличается — не помню, что не мешает этими самыми классами пользоваться. Захотел освежить память? рядом МСДН, 30-секунд и я уже знаю
MVK>Видишь ли Demon Hood, если ты не знаешь, чем отличается структура от класса, как ты принимаешь решение, что лучше создавать в данном конкретном случае: структуру или класс? Или это тебе спускает сверху архитектор?
С C++ практически ни чем, не считая доступа к полям и фушкциям членам, в структуре они всегда public, насчет наследования структур не помню (по страуструпу )
DH>>Ага, значит если я не знаю, что есть виртуальная функция то и ПАРАДИГМЫ я не знаю? MVK>Если ты не знаешь, что такое виртуальная функция — как ты себе представляешь наследование?
Виртуальная функция это святое, это начало абстрактных классов, как такое можно не знать?
DH>>я знаю про слова stack, queue, и даже знаю что это виды упорядочивания данных. Что дальше? За подробностями — в МСДН при необходимости MVK>Когда тебе встречается необходимость "упорядочить данные", ты всегда создаешь массив? Программист, который знает различные механизмы "упорядочивания данных", который при слове FIFO и FILO не впадает в ступор, не будет впихивать решение в единственный метод, про который он знает, а сможет выбрать оптимальный.
В ступор не ставит, но и жизнь пока не облегчало
Здравствуйте, Smetanin, Вы писали:
S>Здравствуйте, Calc, Вы писали:
S>>>DEMON HOOD, уважаемый, вы о чём, какой ДиректХ? Как можно сравнивать знание конкретного API и знания парадигмы порграммирования... C>>Как вы можете об этом говорить? Вы сами занимались этим? Писали движки для игр? C>>Если я вам начну задавать вопросы, сможете вы на них ответить? C>>Там тоже очень интересный мир, который не ограничивается "какими то апи". C>>А теория 3d? etc...
S>Я не понял вашего поста. Вы мне возражаете? Вы считаете, что у стажёра может не быть базовых знаний?
Я просто не понимаю как про другой мир можно говорить "просто апи"?
S>Я говорил о том, что стажёр-программист должен знать базовые вещи. Мне возражают, приводя в качестве примера ДиректХ. Я говорю, что ДиреткХ — это вещь не базовая.
Согласен, но вы сказали это некоректно.
S>Вот вы, Calc, если будете брать стажёра — что, не потребуете от него базовых знаний? Может быть то, что я пересчислил — не базовое? Для геймдева, я подозреваю, к базовым знаниям ещё "геометрия/стереометрия" добавляется. Я не прав?
Трехмерная желательно.
Любимая тема — просчет сталкновений
S>А вот как раз прикладному API (хоть ДиректХ, хоть купленный движок) стажёра, имеющего нормальную базовую подготовку — можно и обучить.
S>А если он не знает, что такое виртуальная функция, какие бывают алгоритмы сортировки... Вы его возьмёте?
Я с вами полностью согласен, я выступил в защиту мира DirectX, а именно мира 3d
Если мы говорим не о платорме Win, а о программировании в целом, то и не надо говорить о DirectX, надо говорить о 3d
Здравствуйте, Roman Avramov, Вы писали:
RA>Прочитал всю ветку. Та же примерно ситуация. RA>Как раз сейчас ищу стажера примерно на те же деньги (500 — 600 евриков), в основом ориентируемся на студентов старших курсов.
А если я не студент и отвечаю на все вопросы, освещенные в теме как базовые, то вы меня берете?
Скажите где вы находитесь? Подъеду поговорю RA> надо было написать простое приложение, которое загружает данные из датабазы (структура спроектирована) и отображает в TreeView.
MFC или ODBC API? RA> Задача на полчаса максимум.
Если MFC, то на самом деле и 15 минут достаточно для кодинга.
Может на самом деле в программеры податься
Здравствуйте, Kisloid, Вы писали:
K>Прочитал всю ветку, получил небольшой шок Не знать хотя бы сортировку пузырьком и пытаться устроиться на работу программистом, это все равно что слепому идти снайпером в армию
А у них главное мирноискатель и уши, глаза то зачем?
Здравствуйте, Calc, Вы писали:
C>Давайте я попробую. C>В двух словах: S>>1. Ориетироваться в ООП: наследование, полиморфизм, инкапсуляция — должны быть для него не абстрактые слова. C>Вам по бучу, Страуструпу или UML? (одно и тоже, но разными словами)
Ориентироваться, то есть понимать, что примерно слова эти значат. И всё.
S>>2. Знать основные структуры данных: массив, связный список, очередь, дерево, стек и т.д. C>... C>Связной список — какой? Односвязный, двусвязный? Есть поле для хранения значения и есть поле для указателя на предыдущий элемент и последующий элемент. ...
Зачёт
S>>3. Знать осноные приемы программирования. Должно быть некое понимание, что любое решение — это палка о двух концах. Т.е. например, можно получить прирост в скорости за счет увеличения памяти. C>Ну нпример можно кэшировать данные. С этим довольно туго, опыта мало.
Нормально. Это вопрос на общую адекватность, вообще говоря.
S>>4. Общее представление о потоках, разделяемой памяти. (Тут я уже сильно сомневаюсь, т.к. на этом вопросе очень многие плывут.) C>Семафоры, мьютексы...
C>А теперь скажите гожусь я на роль стажера?
Легко.
S>>Вообще-то это тоже базовые знания. Если ты не помнишь приблизительно, как выглядит потоковый ввод-вывод, значит ты книг по С++ (например, Старуструпа) не читаешь вообще. Это значит, что ты как минимум ленив и нелюбопытен. C>Я примерно знаю как это выглядит, что поток можно направить на любой участок памяти, делал я это, но делал это года два назад, сечас не пользуюсь.
Ммммм... Я, в общем-то имел в виду просто конcольный ввод-вывод "Направить поток" — это уже не базовые знания
>>> Программист — это не отличник-зубрила, это творческая натура, имхо.
S>>Без комментариев. C>Ну почему так критично. C>Вы книги Буча по UML читали? C>Ну как там можно зазубрить всю эту полемику (читать как воду, вводный материал)?
Зачем зубрить-то? Не понял. Я вообще просто посмеялся над "отличник-зубрила", поскольку это, судя по всему, в мою сторону было обращено. Смешно, потому что у меня в дипломе практически одни тройки. Я не учился, а больше пиво пил. Поэтому, в частности, мне упорно кажется, что человек, не знающий элементарных вещей (хуже меня!) — абсолютно профнепригоден!
Здравствуйте, Calc, Вы писали:
C>Здравствуйте, Smetanin, Вы писали:
S>>Здравствуйте, Calc, Вы писали:
S>>>>DEMON HOOD, уважаемый, вы о чём, какой ДиректХ? Как можно сравнивать знание конкретного API и знания парадигмы порграммирования... C>>>Как вы можете об этом говорить? Вы сами занимались этим? Писали движки для игр? C>>>Если я вам начну задавать вопросы, сможете вы на них ответить? C>>>Там тоже очень интересный мир, который не ограничивается "какими то апи". C>>>А теория 3d? etc...
S>>Я не понял вашего поста. Вы мне возражаете? Вы считаете, что у стажёра может не быть базовых знаний? C>Я просто не понимаю как про другой мир можно говорить "просто апи"?
Это вы, уважаемый, читаете невнимательно. Я написал
Как можно сравнивать знание конкретного API и знания парадигмы программирования...
S>>Вот вы, Calc, если будете брать стажёра — что, не потребуете от него базовых знаний? Может быть то, что я пересчислил — не базовое? Для геймдева, я подозреваю, к базовым знаниям ещё "геометрия/стереометрия" добавляется. Я не прав? C>Трехмерная желательно.
Опять невнимательно читаете Я стереометрию упомянул Хотя, может я не в курсе — стереометрия бывает 2D ?
Здравствуйте, olegkr, Вы писали:
O>Здравствуйте, kittown, Вы писали:
K>>любой здравый кодинг стайл заставит K>>расставить скобки. K>>Неважно, что такой код делает, пока он не исправлен.
O>Вообщем-то задача, как раз и состоит в том, что бы этот код поправить и расставить правильно скобки.
По мне уж лучше узнать начальные сведения и конечные и переписать выражение самому с нуля, быстрее будет
Здравствуйте, chelovek, Вы писали:
C>Здравствуйте, SeRya, Вы писали:
C>...Так что учите C++, даже если это нужно только для интервью.
SR>>А что, Страуструпа почитать гордость не позволяет?
C>Да нет, позволяет. Читал когда-то (первый раз, когда еще не было шаблонов и множественного наследования). Но к разным собеседованиям приходится читать разные книги. Значит прежде чем искать работу нужно почитать (иногда заново прочитать) несколько.
Есть ключевые технологии, которые полезно знать каждому, кот претендует на опередленную позицию. Я не утверждаю, что тех, кто ими владеет недостаточно хорошо ни в коем случае брать нельзя. Это лишь один из многих факторов, хотя и довольно важный.
Знание определенных тонкостей языка позволяет выявить определенные моменты, например, не "приувеличил" ли кандидат свой опыт. Если у кандидата с небольшим опытом все-таки есть глубокие познания — большой плюс (и поэтому спрашивать об этом совершенно оправдано), если нет — это может быть компенсировано познаниями в чем-то другом.
Часть вопросов на интервью служат лишь для того, чтобы определить, стоит ли углубляться в данную тему или стоит подойти с другой стороны. Поэтому не стоит относиться к этому так болезненно.
SR>>Не вижу ничего зазорного в том, чтобы оценить знания C++. C>Я тоже. Но знать C++ и уметь решать поставленные перед тобой задачи — разные вещи. Вы, например, можете в практической работе использовать только некоторое подмножество языка. Соответственно, остальное может забываться.
Согласен. Более того, я считаю, что лучше просто честно признаться, что вам, к сожалению, этими вещами пользоваться не приходилось, поэтому ваши знания поврехностны. Если вы покажете, что хорошо разобрались в другой области, то и в этой, наверное, разберетесь. Думаю, что подавляющее большинство интервьюеров отнесется к этому с пониманием. В нашем отделе это отпределенно так.
SR>>Некторые не так важны, а другие позволяют выявить полную некомпетентность. C>А если кандидат просто устал, переволновался и не так понял вопрос? Вы сможете это выявить?
К сожалению, элемент случайности неизбежен (как и во многих других видах деятельности). Хотя я не склонен драматизировать. В подавляющем большинстве случаев при грамотном подходе интервьирование дает неплохое и достаточно адекватное представление о кандидате.
А если уж совсем не непруха — повезет в следующий раз.
C>Пример из жизни: сколько строк будет выбрано запросом "select * from a, b", где в a 5 строк, а в b 6. Знаете какие ответы давали на этот вопрос люди написавшие не одну серьезную систему?... Вот и я удивляюсь как они их писали... .
Хочется верить, что это не будет примером для подражания
SR>>Не хотите, чтобы вас об этом спрашивали — честно пишите в резюме о том, что вы знаете, а что нет. И постарайтесь доказать, что то, что вы знаете, вы знаете действиетльно хорошо.
C>А я и не пишу в резюме, что хотя бы что-то знаю. Я пишу что разработал и что для этого использовал.
C>Потребителю ПО нужна программа, обеспечивающая требуемый уровень функциональности и содержащая мало ошибок, C>а не знание ее разработчиком чего-то. Степень связи этих вещей еще нуждается в обосновании в каждом конкретном случае.
Дело не в том, что человек в принципе не справиться (хотя может ведь и не справиться), а в том, что с грамотным человеком удобнее и прятнее работать, на него можно положиться, а не контролировать каждый его шаг.
Здравствуйте, Smetanin, Вы писали:
C>>А теперь скажите гожусь я на роль стажера?
S>Легко.
А можно ли работать скажем с 9_00 до 16-17_00?
Так как в институт в 18_00
На самом деле чтоль подумать о смене работы...
S>Ммммм... Я, в общем-то имел в виду просто конcольный ввод-вывод "Направить поток" — это уже не базовые знания
Ну с консолью сложно, до сих пор выводу шестнадцатиричные числа через printf или sprintf , потому что консолью практически и не пользуюсь.
Здравствуйте, Calc, Вы писали:
C>Здравствуйте, Smetanin, Вы писали:
C>>>А теперь скажите гожусь я на роль стажера?
S>>Легко. C>А можно ли работать скажем с 9_00 до 16-17_00? C>Так как в институт в 18_00 C>На самом деле чтоль подумать о смене работы...
Хыхы На самом деле я недавно резко сменил специализацию и программировать полностью прекратил. Теперь работаю вирусным аналитиком К кандидату на должность вирусного аналитика вопросы будут значительно "более другие" Зато, если есть желание — с графиком никаких проблем и стажёров брать вполне готовы, насколько мне известно.
S>>Ммммм... Я, в общем-то имел в виду просто конcольный ввод-вывод "Направить поток" — это уже не базовые знания C>Ну с консолью сложно, до сих пор выводу шестнадцатиричные числа через printf или sprintf , потому что консолью практически и не пользуюсь.
Ну, собственно, я там где-то выше и писал, что человек либо об iostream.h должен иметь представление, либо о stdio.h
Calc wrote: > Здравствуйте, Kisloid, Вы писали: > > K>Прочитал всю ветку, получил небольшой шок Не знать хотя бы сортировку > пузырьком и пытаться устроиться на работу программистом, это все равно > что слепому идти снайпером в армию > А у них главное миноискатель и уши, глаза то зачем?
Во-первых сапёр не снайпер, во-вторых растяжка не из металла делается..
Здравствуйте, Trean, Вы писали:
S>>Вопрос. Нахрен нужен программист, который постоянно будет сидеть и придумывать пузырьковую сортировку? Или (привет, Демон Худ) постоянно находить её в "литературе", поскольку она там "шире всего представлена"?
T>Чтобы платить $600 за умение пользоваться поиском