Страницы

8 июля 2013 г.

Что должен знать Junior .Net Developer, идя на свое первое собеседование?

Мне в последнее время очень часто задают этот вопрос. И я тут решил, что стоит составить детальный список и просто бросать ссылку нуждающимся. Лень - она такая :)
Далее следует компиляция из нескольких заметок, написаных ранее. Информация основана на личных наблюдениях и опыте проведения собеседований.

Итак, примерный список тем: 
  • Основы ООП: инкапсуляция, наследование, полиморфизм. Куда ж без этого.
  • Модификаторы доступа (почему то для многих становится сюрпризом, что их аж целых пять штук)
  • Классы. Абстрактные классы и их ключевые особенности. Анонимные и вложенные классы. Конструктор.
  • GC - просто знать, что это такое.
  • Интерфейсы.
  • Чем абстрактный класс отличается от интерфейса (это уже практически притча во языцех)
  • Struct, enum.
  • Особенности наследования. Множественное наследование в C# (Да, я знаю, что его нет, это как раз и спрашивают. Но эмулировать то можно, кстати). 
  • New vs override. 
  • Ключевое слово sealed.
  • Классификация типов (примитивные, value, reference). Dynamic. Что такое var.
  • Особенности передачи параметров. Ключевые слова ref и out, в чем различие.
  • Именованые и опциональные параметры.
  • Extension methods
  • Операторы ветвления(if, switch-case) и циклы(for, while, do-while)
  • Работа с неуправляемыми ресурсами (using, IDisposable)
  • Коллекции. Класификация коллекций. Цикл foreach: особенности и ограничения.
  • Многопоточность. (Хотя бы поверхностно, тут от вас вряд ли потребуют глубоких знаний)
  • Механизм работы с исключениями. Try, catch, finally - как они работают. Какие исключения нельзя перехватить.
  • LINQ(to Object, XML, Data) - желательно знать и уметь составить несложный запрос на коленке.
  • Основные подходы к работе с БД в .Net.
Дополнительно могу выделить "общие" дисциплины
  • SQL - основы. Это такая штука, его знаешь либо поверхностно, либо ты гуру. Среднего не дано.
  • Паттерны, хотя бы широко известные. Как минимум - builder и factory.
  • Алгоритмы и структуры данных. Понятно, что все уже написано до нас, но лучше ведь знать, как оно работает, не так ли? 
Конкретные технологии (ASP.Net, WCF, WPF и т.д.) будут скорее бонусом, чем необходимостью. Если у вас есть прочный фундамент знаний основ .Net фреймворка, в нужной технологии разберетесь быстро.

Из книг могу посоветовать только неизменную класику:
  • Шилдт Г. - "C# Учебный Курс". Совсем для начинающих, насколько я помню. Достаточно просто написана. 
  • Шилдт Г. - "Полный справочник по C#" - справочник он и есть справочник. В целом, суховато, но информация присутствует.
  • Троелсен Э. - "Язык программирования C# 2010 и платформа .NET 4". Это пятое издание, уже год как есть шестое. Советую купить бумажную. В крайнем случае, может послужить как пресс или оружие. Полторы тысячи страниц - не шутка.
  • Рихтер - "CLR via C#". Эту книгу стоит читать, когда поднаберетесь опыта. Год - уже неплохо. Раньше не стоит, только запутаетесь.
  • John Skeet - "C# in Depth". Слышал много хорошего, сам только собираюсь читать.
  • Robert Martin - "Clean Code: A Handbook of Agile Software Craftsmanship". K С# не относится, но желательна для развития общей культуры программирования. И видео его посмотрите, если будет возможность. Проще гуглить "Uncle Bob - The Clean Code"
Надеюсь, ничего не забыл.

Комментариев нет:

Отправить комментарий