--Example SQL
CREATE TABLE D001_Students
(
StudentID INTEGER CONSTRAINT nnD001_STID NOT NULL,
ChristianName NVARCHAR(255) CONSTRAINT nnD001_CHNA NOT NULL,
Surname NVARCHAR(255) CONSTRAINT nnD001_SURN NOT NULL,
CONSTRAINT pkD001 PRIMARY KEY(StudentID)
);
CREATE INDEX idxD001_STID on D001_Students;
CREATE TABLE D002_Classes
(
ClassID INTEGER CONSTRAINT nnD002_CLID NOT NULL,
StudentID INTEGER CONSTRAINT nnD002_STID NOT NULL,
ClassName NVARCHAR(255) CONSTRAINT nnD002_CLNA NOT NULL,
CONSTRAINT pkD001 PRIMARY KEY(ClassID, StudentID),
CONSTRAINT fkD001_STID FOREIGN KEY(StudentID)
REFERENCES D001_Students(StudentID)
);
CREATE INDEX idxD002_CLID on D002_Classes;
CREATE VIEW V001_StudentClasses
(
SELECT
D001.ChristianName,
D001.Surname,
D002.ClassName
FROM
D001_Students D001
INNER JOIN
D002_Classes D002
ON
D001.StudentID = D002.StudentID
);
Это соглашения, которые мне преподавали, но необходимо адаптироваться ко что Вы использование шланга разработки.
Я настоятельно рекомендую книгу О'Рейли «Поваренная книга C #», так как она предоставит вам конкретные реализации алгоритмов. Еще один хороший вариант - «Алгоритмы в двух словах» для большего количества алгоритмов, не зависящих от языка.
Мне нравятся Алгоритмы в двух словах .
Изменить: и Руководство по разработке алгоритмов - это весело, но не начинайте с этого.
Я настоятельно рекомендую "Подробно о C #" нашего товарища Джона Скита. :)
Как кто-то, проводящий собеседование потенциальный разработчик для моей команды, я бы предпочел, чтобы вы не пробовали «играть» на интервью. Если вы будете изучать вопросы типа интервью, у вас может получиться действительно хорошо, но в таком случае станете ли вы хорошим разработчиком?
Кроме выпускников, которых я ожидаю учиться на работе, разработчики любого другого уровня получат задание для выполнения в Visual Studio. Кандидату будет предложено написать небольшую программу за 4 часа. Он будет содержать все элементы, необходимые, чтобы определить, хороши они или нет, и мы сможем увидеть примеры их реального стиля программирования, мыслительных процессов и способностей.
Худшим человеком, с которым я когда-либо беседовал, был тот, кто изучил «стандартный набор» "вопросов наизусть. Когда мы задали вопрос, он знал, что мы получили обратно красиво составленный ответ. Но когда его спросили о чем-то, чего он не знал, мы на мгновение ответили: «Я не знаю». Некоторые вопросы были логичными, мы не ответили. Я не ожидал, что кто-то знает ответ на первый взгляд, они должны были его решить.
Итак, просто научитесь писать программы. Узнайте, как передать это другим людям, и у вас все будет хорошо на интервью.
«Жемчужины программирования» Джона Бентли, не имеет ничего общего с C # как таковым (он был впервые опубликован 14 лет назад), но является отличной книгой по решению проблем программирования в целом
Вы спрашивали о книгах, но я советую попробовать одно из следующего:
Чем больше вы решите, тем лучше у вас будут алгоритмы.
PS: Не впадайте в зависимость :)
Select User, Category,
(Select Count(*) From Table
Where Category = A.Category
And Value <= A.Value) Rank
From Table A
Order By Category, Value
Если Value может иметь дубликаты,
Я бы сначала решил, нужно ли вам работать над C #, или над алгоритмами, или над обоими. Похоже, вас беспокоят «алгоритмы на C #», чего вам не должно быть. По сути, алгоритмы одинаковы для всех распространенных императивных языков программирования. Если вас действительно беспокоят алгоритмы, вы можете взять практически любую книгу по алгоритмам и поработать над ней. То же самое и с C #.
Многие «вопросы типа программирования» на собеседовании, к сожалению, имеют тенденцию быть либо «знаете ли вы этот второстепенный лакомый кусочек этого языка?» К сожалению, у вас не так много возможностей для изучения этих типов вопросов, кроме как много использовать язык и все больше знакомиться с его деталями.
Однако структуры данных и структура, в которой они находятся, немного отличаются . За (относительно) короткое время вы можете познакомиться с некоторыми аспектами .NET framework, которые могут значительно помочь. Полезно знать такие вещи, как использование дженериков и получение хеш-таблицы или списка.
Для общих вопросов по программированию, связанных с технологиями .NET, я написал электронную книгу "Shove It, FizzBuzz: How to Find and Land a .NET Development Job."
В ней больше, чем просто вопросы для интервью, но она все равно полна ими, и к ней прилагается симулятор интервью .NET.