2010-10-25 6 views
4

Мне просто предложили собеседование с коротким уведомлением. Завтра утром я беру интервью для позиций, которые имеют C# как необходимое мастерство. Позиция - это позиция кооператива, и я вполне уверен, что компания понимает, что учащиеся, участвующие в этом процессе, вероятно, будут иметь очень ограниченный опыт работы на C#, если таковой вообще есть, особенно потому, что местный колледж не предлагает ему класс (это не означает, что люди не может узнать это на стороне, но что-то, о чем нужно помнить).Что нужно знать для C#?

Я уверен, что известно, что я раньше не использовал C#, но мой вопрос заключается в следующем: учитывая то, что я знаю (указано ниже), какие темы, характерные для C#, следует изучить, которые уникальны для языка или, возможно, отличается от многих других языков?

Языки, что я чувствую себя по крайней мере комфортно являются:

  • Ada
  • C
  • C++
  • Java
  • Objective-C
  • Python
+6

Вы можете начать с написания «C#», как и все остальные. ;-) –

+0

Знаете, я почему-то совсем забыл о # на клавиатуре./facepalm – Anthony

ответ

5

С его позиции курятника, и вы знаете java, они, скорее всего, не будут задавать много вопросов, характерных для C#. Скорее всего, они будут просить два типа вводные типа вопросов - 1) концепции программирования, и 2) алгоритм вопросы

1) для концепции программирования, таких вопросы, как:
- объектные понятия ориентированного программирования (полиморфизм, абстракция, интерфейсы и т.д.)
- в чем разница между государственными/частными методами
- как писать методы доступа в C#
- что делает неизменное среднее
- когда использовать обычные строки против StringBuilder

2) Ф.О. r алгоритм, почти все технические сотрудники курятника задают несколько вариантов:
- как создать алгоритм для преобразования строки, используя буфер и/или без буфера (например: на месте)?

2

C# очень близко e на Java, поэтому вам в основном нужно учиться с точки зрения различий.

Try this артикул.

+3

Это поднимается до C# 2. С тех пор C# сильно изменился. Теперь я чувствую - для меня, во всяком случае, как язык * очень * для Java. –

+0

@ Jon: Я свободно признаю, что статья не является исчерпывающей, но я думаю, что она достаточно хороша, чтобы использовать существующие знания Java. Надеюсь, что материал, начиная с версии 2.0, будет считаться достаточно продвинутым, что он не будет разрывом для совместной работы. –

+0

C# и Java-программы написаны в совершенно разных стилях из-за различий между двумя языками. Итераторы, ссылочные параметры, лямбда-формы, LINQ и связанные с ними концепции приводят к программам C#, которые выглядят очень по-разному (и намного меньше) эквивалентных Java-программ. Короче говоря, не имеет значения, сколько сходств вы можете указать; это различия. –

0

Java является вашим самым близким, и многие вещи, которые вы знаете, будут непосредственно применимы к C#.

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

Есть, очевидно, несколько тонких различий, но если вы читали на что-то вроде «C# для Java Programmers, вы должны быть очень загружены.

0

Узнайте, почему C# отличается от CLR.

+0

Ну, CLR не отличается от JVM. Я думаю, что самое большое изменение вне синтаксиса - это общая библиотека. –

+1

Да, это правильно - разница действительно C#/Java, а остальное –

1

Менее чем за 24 часа вы можете узнать о C#, который бы убедил интервьюера, у которого даже есть небольшая подсказка, что вы знаете язык. Сосредоточьтесь на том, чтобы очистить свои силы (например: решить какую-то интересную проблему с алгоритмом на каком-то языке, который вы знаете).

Если вы действительно хотите втиснуть, прочитайте overview.

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

Что касается языкового сходства, не обращайте внимания на совет, похожий на Java и C#, и, безусловно, не делайте такого заявления в интервью для задания на C#.Хотя языки могут быть внешне похожими, с множеством общих черт, C# имеет множество современных языковых функций, которые отсутствуют в Java (итераторы, формы лямбда, LINQ, структура, свойства, объекты выражения, ссылочные параметры, индексы и т. Д.). Это приводит к совершенно различным стилям программирования.

+0

Я не хочу сказать им, что знаю C#, это было бы ложью. Я хотел бы сказать им, что я начал изучать язык, и я считаю, что могу при необходимости быстро его поднять. – Anthony

+0

Как программист на C#, мне не трудно читать код Java и понимать, что он делает. Обратное верно, если код не слишком сильно использует расширенные функции. Просто зная, какие прямые эквиваленты C# для ключевых слов и типов Java достаточно, чтобы получить длинный путь. –

2

Самое главное, это не сам C#, с которым вам не придется беспокоиться, но сама инфраструктура .Net.

0

Возможно, они спросят вас обо всех ключевых словах, например, о том, что означает запечатанное? Когда вы переопределяете? Скажите мне, что статично ... Что такое app.config для ...

Но они действительно хотят, чтобы вы сказали, что у вас есть опыт работы с SQL-сервером, ASP, winforms и WPF ... так как вы студент, у вас, вероятно, нет такого опыта, но это то, чего они хотят.

2

Вот что я хотел бы сосредоточиться на собеседовании на работу.

Многие компании, собирающие разработчиков C#, берут их с рынка, где большое количество запрограммировано в VB. Многие компании, особенно те, кто финансирует проекты Agile или Lean, где стоимость изменений должна быть низкой, предпочитают нанимать разработчиков Java. Сообщество Java имеет большую базу с открытым исходным кодом, тенденцию программировать с меньшими классами и лучше придерживаться принципов SOLID, а также умеет писать модульные тесты, приемочные тесты и использовать шаблоны проектирования надлежащим образом и эффективно.

Вещи, которые вы уже знаете:

  • JUnit -> NUnit
  • Дженерик -> время компиляции Дженерики
  • Java библиотека -> NLibrary.NET (Spring.NET, Selenium.NET, NHibernate, и т.п.)

Новые вещи стоит подбирая:

  • Делегаты *
  • Лямбда *
  • Linq *
  • WPF или Silverlight (почти то же самое) - основной Xaml интересно, быстро для кода, создает прекрасный динамический шаблон MVC и почти не работает (вы получаете предупреждения о выходе)

(*) Вот почему я предпочитаю C# для Java в эти дни ... платформа Microsoft в стороне ...

вещей, которые вы знаете о причине/широкого воздействия языка Java и они могущества **: не

  • Resharper (ярлыки рефакторинга IntelliJ в в Visual Studio)
  • REST
  • MVC (Winforms не поддается этому; WPF)
  • Git/Mercurial
  • Как написать чистый, обслуживаемый код.

(**) Я сказал не может уже!

Удачи вам в интервью!

0

Я думаю, что большинство вопросов будет о:

  1. концепций объектно-ориентированного программирования (как абстракции, инкапсуляция, полиморфизм, какая разница между интерфейсом в абстрактном классе ... и т.д.?)
  2. данные структуры и коллекции (достоинства ) когда использовать arraylist и когда использовать список ??
  3. рамки .net (могут спросить о какие новые в рамках 3.5 или 4)
  4. какова разница между управляемого кода и неуправляемого кода ?.
  5. может спросить u о LINQ.
0

Концепция Basic Opps изучает сначала, если вы базовый программист. , если вы не программист на базовом уровне, то начните с этого: - csharp.2000things

Смежные вопросы