Re[5]: О собеседованиях программистов
От: michael_isu Беларусь  
Дата: 21.02.11 09:36
Оценка: -1
Здравствуйте, Wissenschaftler, Вы писали:

W>И? Есть куча людей, для которых LINQ — это инструмент, который они удачно и умело используют при разработке на C#. Что дает сакральное знание, парсит его кодогенератор C#, или транслирует во что-то .Net-специфичное, после чего его парсит кодогенератор .Net? Как это скажется на качестве и скорости решения разработчиками задач?


Это просто такой тест на умение вести диалог. Я привожу некоторые аргументы — linq есть только в C# (c 3.0) и VB (c 9.0), такие-то ключевые слова добавлены в язык и т.д., в ответ лишь — все равно упертое мнение, без каких-либо аргументов, нервные возгласы в стиле — вы тут меня завалить чтоли хотите и т.д.

Я на собеседовании отвечал на эти же вопросы спокойно (список вопросов один), после уже пообщались на более интересные темы. Просто я не додумываю за собеседующих, зачем задаются вопросы, отвечаю на них и все. Много думать что зачем и почему — вредно.
Re[11]: О собеседованиях программистов
От: michael_isu Беларусь  
Дата: 21.02.11 09:56
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Здравствуйте, michael_isu, Вы писали:


_>>Вопросов задается около 15, на разные базовые понятия, поэтому мнение складывается целостное.


ВВ>По вашим высказыванием здесь такое впечатление совсем не складывается.


Я привел лишь пару примеров ответов на вопросы и их реакции.

_>>Linq — это language integrated query.


ВВ>И что? Сей факт не мешал авторам этой аббревиатуры выносить ее в название типов фреймворка. Или вас как-то по-особенному на выделенном клинит? Попробуйте код с Linq запросами скомпилировать под фреймворк 2.0. Заработает?


Консоль с таргетом .net 2.0:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            var items = new List<int>(new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 });

            var foo = from i in items
                      where i % 2 == 0
                      select i;            
        }
    }
}


Error: The type or namespace name 'Linq' does not exist in the namespace 'System' (are you missing an assembly reference?)

Что нужно сделать, чтобы избавиться от этой ошибки?
Re[12]: О собеседованиях программистов
От: 1stein Украина  
Дата: 21.02.11 10:00
Оценка:
Здравствуйте, michael_isu, Вы писали:

_>Что нужно сделать, чтобы избавиться от этой ошибки?


А что, в тех 15-ти вопросах такого нету?
Will code C# for food
Re[11]: О собеседованиях программистов
От: samius Япония http://sams-tricks.blogspot.com
Дата: 21.02.11 10:14
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>И что? Сей факт не мешал авторам этой аббревиатуры выносить ее в название типов фреймворка. Или вас как-то по-особенному на выделенном клинит? Попробуйте код с Linq запросами скомпилировать под фреймворк 2.0. Заработает?

Да, требуется просто наличие соответствующих типов. Одного конкретного — ExtensionMethodAttribute или как там его, а остальные по спекe языка в секции Query expressions.
Re[12]: О собеседованиях программистов
От: Воронков Василий Россия  
Дата: 21.02.11 10:20
Оценка:
Здравствуйте, samius, Вы писали:

S>Здравствуйте, Воронков Василий, Вы писали:


ВВ>>И что? Сей факт не мешал авторам этой аббревиатуры выносить ее в название типов фреймворка. Или вас как-то по-особенному на выделенном клинит? Попробуйте код с Linq запросами скомпилировать под фреймворк 2.0. Заработает?

S>Да, требуется просто наличие соответствующих типов. Одного конкретного — ExtensionMethodAttribute или как там его, а остальные по спекe языка в секции Query expressions.

Т.е., говоря другими словами, потребуется подключать библиотеки *фреймворка*?
Re[13]: О собеседованиях программистов
От: samius Япония http://sams-tricks.blogspot.com
Дата: 21.02.11 10:24
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Здравствуйте, samius, Вы писали:


S>>Да, требуется просто наличие соответствующих типов. Одного конкретного — ExtensionMethodAttribute или как там его, а остальные по спекe языка в секции Query expressions.


ВВ>Т.е., говоря другими словами, потребуется подключать библиотеки *фреймворка*?

Нет, не требуется. Можно слабать нужные типы по месту, не подключая вообще ничего.
Re[17]: О собеседованиях программистов
От: blackhearted Украина  
Дата: 21.02.11 10:33
Оценка:
Здравствуйте, __kot2, Вы писали:


__>если взять оттуда случайные 100 человек, дать Х денег и сказать — все, вы теперь другая контора, экшен! становись профитабл, делай продукт, они просрут все деньги и выдадут мохнатую зеленую какашку, которая полностью провалится в продажах.


а из какой конторы будет не так? назовите претендентов. гугл? яблоко? то же самое будет.
Re: О собеседованиях программистов
От: genre Россия  
Дата: 21.02.11 10:55
Оценка:
Здравствуйте, Wissenschaftler, Вы писали:


W>но никто, никто, чёрт возьми, не задает такие вопросы, как:

W>Как бы Вы разбили эту задачу на адекватные подзадачи, чтобы минимизировать риски

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

W>Как бы организовали систему тестов, если бы пришлось разрабатывать такую-то систему

W>Как бы пошагово локализовывали такой-то баг в некоторой системе

А вот это вопросы, которые обсудить на простых примерах невозможно, а на сложных слишком сложно.

А главное основываясь на этих вопросах очень сложно сделать выводы о человеке.
Ни разу не наблюдал, как коллеги работающие вместе довольно давно не могут прийти к общему мнению по подобным вопросам? Вот так и тут будет. У тебя свое виденье системы тестирования или дизайна, у кандидата свое. И дальше что?
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Re[14]: О собеседованиях программистов
От: Воронков Василий Россия  
Дата: 21.02.11 11:15
Оценка:
Здравствуйте, samius, Вы писали:

ВВ>>Т.е., говоря другими словами, потребуется подключать библиотеки *фреймворка*?

S>Нет, не требуется. Можно слабать нужные типы по месту, не подключая вообще ничего.

Ага, и реализовать весь требуемый функционал с нуля. При этом Линк у нас редуцируется лишь до особого синтаксиса, который поддерживает компилятор.

Параллельно с этим человек может использовать функции из System.Linq на каком-нибудь C++\CLI без всякого специального синтаксиса и вполне закономерно считать, что он использует Линк. Библиотека же именно так и называется.
Re[15]: О собеседованиях программистов
От: samius Япония http://sams-tricks.blogspot.com
Дата: 21.02.11 12:04
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Здравствуйте, samius, Вы писали:


ВВ>>>Т.е., говоря другими словами, потребуется подключать библиотеки *фреймворка*?

S>>Нет, не требуется. Можно слабать нужные типы по месту, не подключая вообще ничего.

ВВ>Ага, и реализовать весь требуемый функционал с нуля. При этом Линк у нас редуцируется лишь до особого синтаксиса, который поддерживает компилятор.

Весь требуемый для конкретного примера — лишь метод Where

ВВ>Параллельно с этим человек может использовать функции из System.Linq на каком-нибудь C++\CLI без всякого специального синтаксиса и вполне закономерно считать, что он использует Линк. Библиотека же именно так и называется.

Только линком называется не библиотека, а комплекс средств, большая часть из которых — языковые расширения. Некоторые из них не доступны в C++/CLI — анонимные типы, екстеншн методы, Query expression. теряюсь даже как там с лямбдами и замыканиями для CLI.
ну и как, сильно похоже на LINQ:
Enumerable::Select(Enumerable::Where(Enumerable::Join(source, ...
?
Re[2]: О собеседованиях программистов
От: Vzhyk  
Дата: 21.02.11 12:05
Оценка:
19.02.2011 2:42, мыщъх пишет:
> а индустрии по в рф нет. именно индустрии.
> программисты есть, а индустрии нет.
Вот в этом я согласен с тобой на 100%. И по сути — это и есть ответ на
все вопросы ТС.
Posted via RSDN NNTP Server 2.1 beta
Re[16]: О собеседованиях программистов
От: Воронков Василий Россия  
Дата: 21.02.11 12:19
Оценка: +1
Здравствуйте, samius, Вы писали:

ВВ>>Параллельно с этим человек может использовать функции из System.Linq на каком-нибудь C++\CLI без всякого специального синтаксиса и вполне закономерно считать, что он использует Линк. Библиотека же именно так и называется.

S>Только линком называется не библиотека, а комплекс средств, большая часть из которых — языковые расширения. Некоторые из них не доступны в C++/CLI — анонимные типы, екстеншн методы, Query expression. теряюсь даже как там с лямбдами и замыканиями для CLI.

Именно что, что Линком называется не библиотека. И не синтаксис. Так уж получается, что данный термин используют для обозначения и того, и другого. "Комплекса средств". В этом смысле утверждения "Линк это часть языка C#" и "Линк это часть фреймворка" могут рассматриваться как одинаково верные и как одинаково неверные, если собеседующему так больше хочется.

Как раз на мой взгляд основная часть Линка — это НЕ языковые расширения. Из последних полезны разве что экстеншин методы и лямбды, при том что оба формально связаны с Линком лишь косвенно. Кстати, экстеншин методы тоже не нужны. В том же Немерле очень даже удобно вызывать методы через пайпы.

А "со стороны фреймворка" Линк — это далеко не только библиотека с ФВП, это и абстрактное АСТ, и отдельный компилятор для выражений.

S>ну и как, сильно похоже на LINQ:

S>Enumerable::Select(Enumerable::Where(Enumerable::Join(source, ...
S>?

Смысл вопроса мне неясен. А seq.Select(...).Where(...) сильно похоже на Линк? Или Select(_,...) |> Where (_,...)?
Re[17]: О собеседованиях программистов
От: samius Япония http://sams-tricks.blogspot.com
Дата: 21.02.11 12:35
Оценка: +1 -1
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Именно что, что Линком называется не библиотека. И не синтаксис. Так уж получается, что данный термин используют для обозначения и того, и другого. "Комплекса средств". В этом смысле утверждения "Линк это часть языка C#" и "Линк это часть фреймворка" могут рассматриваться как одинаково верные и как одинаково неверные, если собеседующему так больше хочется.

Для меня все довольно однозначно. Линк без поддержки фреймворка имеет смысл, Линк без поддержки языка — нет. Потому я против того что бы рассматривать Линк отдельно от языка.

ВВ>Как раз на мой взгляд основная часть Линка — это НЕ языковые расширения. Из последних полезны разве что экстеншин методы и лямбды, при том что оба формально связаны с Линком лишь косвенно.

Это все равно что говорить о том что Generics — это не расширение платформы и язка, а классы в FCL.

ВВ>Кстати, экстеншин методы тоже не нужны. В том же Немерле очень даже удобно вызывать методы через пайпы.

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

ВВ>А "со стороны фреймворка" Линк — это далеко не только библиотека с ФВП, это и абстрактное АСТ, и отдельный компилятор для выражений.

Только по той милости что компиляторы в самом фреймворке. Еще раз, линк без поддержки фреймворка возможен.

S>>ну и как, сильно похоже на LINQ:

S>>Enumerable::Select(Enumerable::Where(Enumerable::Join(source, ...
S>>?

ВВ>Смысл вопроса мне неясен.

Я просто считаю что то что вызываются методы из неймспейса System::Linq, говорит только о том, что вызываются методы из этого неймспейса.
ВВ>А seq.Select(...).Where(...) сильно похоже на Линк?
Довольно похоже, но на самом деле это может быть банальным fluent интерфейсом

ВВ>Или Select(_,...) |> Where (_,...)?

совсем не похоже
Re[18]: О собеседованиях программистов
От: Воронков Василий Россия  
Дата: 21.02.11 12:57
Оценка: +1
Здравствуйте, samius, Вы писали:

ВВ>>Именно что, что Линком называется не библиотека. И не синтаксис. Так уж получается, что данный термин используют для обозначения и того, и другого. "Комплекса средств". В этом смысле утверждения "Линк это часть языка C#" и "Линк это часть фреймворка" могут рассматриваться как одинаково верные и как одинаково неверные, если собеседующему так больше хочется.

S>Для меня все довольно однозначно. Линк без поддержки фреймворка имеет смысл, Линк без поддержки языка — нет. Потому я против того что бы рассматривать Линк отдельно от языка.

Линк без поддержки фреймворка это просто синтаксис. Какой еще он может иметь смысл? По-моему в этом синтаксисе вообще смысла довольно мало.

ВВ>>Как раз на мой взгляд основная часть Линка — это НЕ языковые расширения. Из последних полезны разве что экстеншин методы и лямбды, при том что оба формально связаны с Линком лишь косвенно.

S>Это все равно что говорить о том что Generics — это не расширение платформы и язка, а классы в FCL.

Нет, не все равно. Линк таки включает в себя библиотеку для работы с коллекциями в функциональном стиле, причем библиотека эта спокойно может использоваться и без синтаксиса.

ВВ>>А "со стороны фреймворка" Линк — это далеко не только библиотека с ФВП, это и абстрактное АСТ, и отдельный компилятор для выражений.

S>Только по той милости что компиляторы в самом фреймворке.

У Линка свой компилятор выражений, если что.

S>Еще раз, линк без поддержки фреймворка возможен.


Возможен синтаксис. Но 1) линк это не только синтаксис и 2) линк возможен и без синтаксиса.

ВВ>>Смысл вопроса мне неясен.

S>Я просто считаю что то что вызываются методы из неймспейса System::Linq, говорит только о том, что вызываются методы из этого неймспейса.

А я считаю, что методы из этого неймспейса — это часть Линка. Такая же, как и встроенный в C# синтаксис.

ВВ>>А seq.Select(...).Where(...) сильно похоже на Линк?

S>Довольно похоже, но на самом деле это может быть банальным fluent интерфейсом

В сухом остатке для удобного использования все инфраструктуры Линка достаточно лишь синтаксиса, позволяющего "по месту" объявлять делегаты. Все. Можно использовать Линк, а возможности C# — только в рамках 2.0.
Re[3]: О собеседованиях программистов
От: michael_isu Беларусь  
Дата: 21.02.11 13:04
Оценка:
Здравствуйте, divergo, Вы писали:

_>>Но фраза "объект имеет тип IEnumerable" вводила его в полный ступор.


D>Подобные вещи меня однозначно вгоняют в ступор + меланхолия + пропадает желание работать в этой компании.

D>Не только Вы ищите профессионалов, но соискатели хотят работать в профессиональном окружении.
D>Не являясь мега-гуру, и то понимаю, что классный спец никогда так не скажет.
D>У хорошего специалиста и речь грамотная, ну или пусть пишет только код, и не собеседует.

Ну да, с меланхоликом жить тяжко, на то они и вопросы, чтобы выявить то, что нужно выявить. Кроме писать код, надо ещё с другими людьми уметь работать и общаться.
Re[2]: О собеседованиях программистов
От: Vzhyk  
Дата: 21.02.11 13:09
Оценка:
21.02.2011 12:55, genre пишет:

> У тебя свое виденье системы тестирования или дизайна, у кандидата свое.

> И дальше что?
И это очень хорошо, если у него есть видение.
Posted via RSDN NNTP Server 2.1 beta
Re[19]: О собеседованиях программистов
От: samius Япония http://sams-tricks.blogspot.com
Дата: 21.02.11 13:10
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Здравствуйте, samius, Вы писали:


S>>Для меня все довольно однозначно. Линк без поддержки фреймворка имеет смысл, Линк без поддержки языка — нет. Потому я против того что бы рассматривать Линк отдельно от языка.


ВВ>Линк без поддержки фреймворка это просто синтаксис. Какой еще он может иметь смысл? По-моему в этом синтаксисе вообще смысла довольно мало.

var, анонимные типы — это не синтаксис.

S>>Это все равно что говорить о том что Generics — это не расширение платформы и язка, а классы в FCL.


ВВ>Нет, не все равно. Линк таки включает в себя библиотеку для работы с коллекциями в функциональном стиле, причем библиотека эта спокойно может использоваться и без синтаксиса.

Не сильно спокойно.

ВВ>>>А "со стороны фреймворка" Линк — это далеко не только библиотека с ФВП, это и абстрактное АСТ, и отдельный компилятор для выражений.

S>>Только по той милости что компиляторы в самом фреймворке.

ВВ>У Линка свой компилятор выражений, если что.

В FW 2 его нет, если что.

S>>Еще раз, линк без поддержки фреймворка возможен.


ВВ>Возможен синтаксис. Но 1) линк это не только синтаксис и 2) линк возможен и без синтаксиса.

LINQ без интеграции с языком? Интригует

ВВ>А я считаю, что методы из этого неймспейса — это часть Линка. Такая же, как и встроенный в C# синтаксис.

Но тогда придется считать частью линка многие другие методы, которые к FW не имеют отношения:
Maybe<U> Select<U>(Maybe<T>, Func<T, U>)

ВВ>В сухом остатке для удобного использования все инфраструктуры Линка достаточно лишь синтаксиса, позволяющего "по месту" объявлять делегаты. Все. Можно использовать Линк, а возможности C# — только в рамках 2.0.

Это только возможность вызова методов, не более. Интеграции в язык нет.
Re[4]: О собеседованиях программистов
От: Lloyd Россия  
Дата: 21.02.11 13:48
Оценка: 1 (1) -1
Здравствуйте, out-of-the-way, Вы писали:

OOT>В ООП исходят из того что тип это набор того что можно с этим типом сделать, экземпляр класса реализующего IEnumerable имеет тип IEnumerable. Тип это интерфейс, а класс это его конкретная реализация. Возникает небольшая путаница на счёт классов которые не реализуют интерфейсов, но на практике проблем не возникает.


У вас каша в голове
Re[6]: О собеседованиях программистов
От: Lloyd Россия  
Дата: 21.02.11 13:51
Оценка:
Здравствуйте, michael_isu, Вы писали:

L>>Кто знает, в каком контексте был задан этот вопрос.


_>вопрос был такой — какого типа может быть переменная list:


_>var e = list.GetEnumerator();


IEnumerator? Мне кажется или вы сами на свой вопрос не смогли оветить?
Re[20]: О собеседованиях программистов
От: Воронков Василий Россия  
Дата: 21.02.11 14:08
Оценка: +1
Здравствуйте, samius, Вы писали:

ВВ>>Линк без поддержки фреймворка это просто синтаксис. Какой еще он может иметь смысл? По-моему в этом синтаксисе вообще смысла довольно мало.

S>var, анонимные типы — это не синтаксис.

Что характерно это и не Линк. В языках, где нет анонимных типов, но есть, скажем, тюплы, ВНЕЗАПНО оказывается, что тюплы могут выполнять эту функцию не хуже. Интересно, они после этого становятся "частью Линка"?

S>>>Это все равно что говорить о том что Generics — это не расширение платформы и язка, а классы в FCL.

ВВ>>Нет, не все равно. Линк таки включает в себя библиотеку для работы с коллекциями в функциональном стиле, причем библиотека эта спокойно может использоваться и без синтаксиса.
S>Не сильно спокойно.

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

ВВ>>>>А "со стороны фреймворка" Линк — это далеко не только библиотека с ФВП, это и абстрактное АСТ, и отдельный компилятор для выражений.

S>>>Только по той милости что компиляторы в самом фреймворке.
ВВ>>У Линка свой компилятор выражений, если что.
S>В FW 2 его нет, если что.

В FW2 и Линка нет, если что.

S>>>Еще раз, линк без поддержки фреймворка возможен.

ВВ>>Возможен синтаксис. Но 1) линк это не только синтаксис и 2) линк возможен и без синтаксиса.
S>LINQ без интеграции с языком? Интригует

А что добавление нового синтаксиса — это единственная интеграция с языком, которую ты можешь представить?

ВВ>>А я считаю, что методы из этого неймспейса — это часть Линка. Такая же, как и встроенный в C# синтаксис.

S>Но тогда придется считать частью линка многие другие методы, которые к FW не имеют отношения:
S>Maybe<U> Select<U>(Maybe<T>, Func<T, U>)

Не понял — ни причинно-следственной связи, ни вывода.

ВВ>>В сухом остатке для удобного использования все инфраструктуры Линка достаточно лишь синтаксиса, позволяющего "по месту" объявлять делегаты. Все. Можно использовать Линк, а возможности C# — только в рамках 2.0.

S>Это только возможность вызова методов, не более. Интеграции в язык нет.

Точно. Язык ведь у нас методы вызывать не умеет
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.