Вопросы каждый хороший разработчик.NET должны смочь ответить? [закрытый]

MySQL: У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, для правильного синтаксиса для использования рядом с ... at line ...

Эта ошибка часто возникает из-за того, что вы забыли правильно удалить данные, переданные в MySQL-запрос .

Пример того, что не делать («Плохая идея»):

$query = "UPDATE `posts` SET my_text='{$_POST['text']}' WHERE id={$_GET['id']}";
mysqli_query($db, $query);

Этот код может быть включен в страницу с формой для отправки с URL-адресом например http://example.com/edit.php?id=10 (для редактирования сообщения n ° 10)

Что произойдет, если представленный текст содержит одинарные кавычки ? $query закончится:

$query = "UPDATE `posts` SET my_text='I'm a PHP newbie' WHERE id=10';

И когда этот запрос будет отправлен в MySQL, он будет жаловаться, что синтаксис неверен, потому что в середине есть отдельная одинарная кавычка.

Чтобы избежать таких ошибок, вы ДОЛЖНЫ всегда избегать данных перед использованием в запросе.

Экранирование данных перед использованием в SQL-запросе также очень важно, потому что если вы этого не сделаете, ваш скрипт будет быть открытым для инъекций SQL. SQL-инъекция может привести к изменению, потере или изменению записи, таблицы или всей базы данных. Это серьезная проблема безопасности!

Документация:

246
задан 9 revs, 5 users 71% 23 December 2012 в 23:32
поделиться

25 ответов

Основные вопросы включают:

я думаю, что это обычно помогает попросить, чтобы Ваши претенденты завершили простое осуществление кодирования, такое как:

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

Затем, ищут определенное техническое ноу-хау:

  • (Обработчики событий) Создают класс с пользовательским обработчиком событий, создают другой класс, который сцепляется на пользовательский обработчик событий.
  • (XML) Загрузка XML-документ и выбор все узлы со свойствами x, y и z.
  • (Функциональное программирование) Создают функцию, которая принимает другую функцию в качестве параметра. Карта или Сгиб функционируют работы, действительно хорошие для этого.
  • (Отражательная) Запись функция, которая определяет, имеет ли класс конкретный атрибут.
  • (Regex) Запись регулярное выражение, которое удаляет все теги из блока HTML.

Ни один из них не особенно трудные вопросы для опытного программиста C# для ответа, и они должны дать Вам хорошую идею Ваших претендентов особые преимущества. Можно также хотеть работать в нескольких вопросах/примерах кода, которые используют определенные шаблоны разработки.

[Редактирование для разъяснения] :

Кажется, что много людей не понимает, почему я спросил бы эти типы вопросов. Позвольте мне затронуть несколько комментариев народов (я не заключаю в кавычки непосредственно, но перефразирую вместо этого):

<час>

Q: , Когда был прошлый раз, кто-либо использовал летучие вещества или слабые ссылки?

А: , Когда я даю технические интервью, я надеюсь видеть, понимает ли человек высокоуровневые и низкоуровневые функции.NET. Летучие вещества и слабые ссылки являются двумя функциями низкого уровня, обеспеченными.NET - даже если эти функции не используются часто на практике, ответы на эти вопросы являются чрезвычайно разоблачающими:

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

  • А хорошее понимание слабых ссылок демонстрирует, что человек знает о близких деталях сборщика "мусора" и как это решает когда к свободной памяти. Несомненно, Вы могли спросить кандидатов, "как сборщик "мусора" работает", но спрашивающий о слабых ссылках получает намного лучший, более вдумчивый ответ.

.NET является довольно абстрактным языком, но у звездообразных разработчиков почти всегда есть глубокое понимание CLR и детали низкого уровня времени выполнения.NET.

<час>

Q: , Почему кто-либо должен был бы реализовать их собственную хеш-таблицу или связанный список?

А: я не подразумеваю, что класс Словаря является нижним или что люди должны прокрутить свою собственную хеш-таблицу. Это - основной вопрос, который тестирует, имеет ли человек минимальный понимание datastructures. Это - то, на что тестируют эти вопросы: понимание абсолютного минимума.

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

<час>

Q: , Почему эти вопросы так ориентированы на свернувшееся молоко?

А: , поскольку заголовок этого потока является "вопросами, которые должен знать каждый хороший разработчик.NET". Каждый разработчик.NET начинает их карьеру, пишущий приложения типа CRUD, и 90% всех людей разработки приложений делают для жизни, касается приложений направления деятельности.

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

171
ответ дан Community 23 November 2019 в 03:02
поделиться

Еще много:

, Каковы ограничения сборки "мусора".

Знают о финализаторах и IDisposable.

знать о пуле потоков и когда использовать его.

, Если Вы делаете приложения GUI - знать, что Windows GUI является единственным, распараллелил.

Использование foreach (я вижу много людей, делающих MoveNext и т.д.)

1
ответ дан Brian Rasmussen 23 November 2019 в 03:02
поделиться

Я не попросил бы, чтобы они "знали что-то из учебника" вопросы, а скорее спросили некоторый несерьезный материал как:

  • , Что цикл foreach делает в простом C#? (Ожидание, что он пишет цикл итератора.)
  • , Что такое одиночный элемент?
  • Позволяют ему проанализировать Строку к Дате и времени (ожидание, что он использует TryParse вместо попытки/выгоды)
  • Реализация, одиночный элемент, стратегические модели и шаблоны "команда"
  • Позволяют ему Осуществить рефакторинг часть кода для тестирования. Ожидая, что он абстрагирует внешние сервисы далеко от Единицы под Тестом и реализует его собственный Двойной по сравнению с тестом из сервиса (служащий никакой основой насмешки)

, Они не на 100% уверены, в зависимости от человека, я могу спросить их:

  • позволяют ему охранять метод от пустого входа (ожидание, что он использует несколько возвратов для сокращения вложения)
  • , как делает объектную работу инициализатора (Ожидание, что он пишет ориентированное на многопотоковое исполнение присвоение)

, Также я спросил бы его, как он изучил его материал и что он читает (что блоги, книги).

2
ответ дан Peter Mortensen 23 November 2019 в 03:02
поделиться

Я - поклонник следующего в дополнение к некоторым вопросам, уже упомянутым:

  • , Кто такой делегат?
  • , Что приложение является доменом?
  • , Когда Вы использовали бы ключевое слово блокировки?
  • стандартные ориентированные на многопотоковое исполнение классы универсального набора библиотеки?
  • , Что такое дополнительный метод?
  • , Каково различие между XmlDocument и XmlReader?
  • , Как Вы читаете в параметрах конфигурации из файла конфигурации приложения?
2
ответ дан splattne 23 November 2019 в 03:02
поделиться

Я предложу некоторое внимание вопросов на понимание концепций программирования с помощью dotnet как

, Каково различие между управляемой и неуправляемой средой? За и против JIT за и против GC, Если мы должны разработать приложение X, мы можем использовать dotnet? почему? (это определит, как он видит dotnet)

, я предлагаю также записать маленькие методы и попросить, чтобы он переписал их с лучшей производительностью, использующей лучше dotnet классы или стандартные пути. Также запишите неправильные методы (с точки зрения любого) логичный или безотносительно и попросите, чтобы он исправил их.

2
ответ дан Ahmed Said 23 November 2019 в 03:02
поделиться

Это - определенный переменный вопрос, и не действительно один необходимо быть в состоянии ответить полностью теперь, но один необходимо быть в состоянии ответить когда соответствующий:

, "Что платформа.NET предлагает делать задачу X?"

Или более конкретно:

"Платформа.NET включает объект, который делает X?"

, Например, я недавно провел несколько часов, разрабатывая объект, который оптимизирован, чтобы сохранить массив булевских переменных и воздействовать на него, такие как выполнение мудрого набором НЕ, ИЛИ, XOR, И, установить все значения, и т.д. Только когда после я закончил писать все свои модульные тесты и настраивать его для лучшей производительности, возможной, что я понял, что мой объект "BoolArray" уже существовал в платформе.NET под именем "BitArray".

Это может быть жестким для ответа с тех пор много раз лучший ответ на том, какой объект / помощники для использования являются тем, который Вы не знаете или полностью понимаете. Насколько замечательный мир.NET был бы то, если бы все на самом деле знали о даже простом StringBuilder, основной инструмент, который может увеличить существенное количество производительности.

2
ответ дан Spodi 23 November 2019 в 03:02
поделиться

Что такое поток?

, Каков GC?

2
ответ дан StingyJack 23 November 2019 в 03:02
поделиться

Вот некоторые, которые я раньше фильтровал программистов, подающих заявление на должности как программисты C#:

, Каково различие между ссылочным типом и типом значения?

Объясняют интерфейс IDisposable, какая конструкция языка C# требует его и как Вы реализовали бы его.

то, Какое исключение Вы выдали бы, если пустой указатель передается как аргумент методу, который имеет контракт, который не позволяет, аннулирует для того параметра?

3
ответ дан Mike Scott 23 November 2019 в 03:02
поделиться

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

4
ответ дан Nicholas 23 November 2019 в 03:02
поделиться

Martin Fowler предпочитает навыки проектирования по знанию платформы . С другой стороны, можно задать вопрос, который покажет знание шаблонов разработки и платформы.NET как это:

  • шаблоны разработки Имени и принципы Вы знаете и как они используются в Платформе.NET?
6
ответ дан Dzmitry Huba 23 November 2019 в 03:02
поделиться

Знайте различие между ссылкой и оцените типы.

Знают, что события хранятся как твердые ссылки (т.е. не забудьте не регистрировать события, или приложение пропустит память).

Строки неизменны.

10
ответ дан Brian Rasmussen 23 November 2019 в 03:02
поделиться

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

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

11
ответ дан Gene Roberts 23 November 2019 в 03:02
поделиться

Честно?

, "Что такое.NET?"

, Если они могут дать Вам четкий ответ относительно того, что.NET и каково это не, как это используется, какие элементы это состоит из, и т.д. Если они могут убедить Вас, они знают, каково это, тогда возможности, они знают это вполне прилично.

факт вопроса, многие люди действительно не знают, какова.NET. Даже те, кто пишет программы для него.

13
ответ дан Erik Funkenbusch 23 November 2019 в 03:02
поделиться

Я всегда искал бы мягкие навыки сам - никакая предназначенная игра слов. Так хороший дизайн OO, разработка через тестирование, хороший много (программирующий) языковой фон и повсюду вокруг общего изящества (и вещи получения степень готовности я предполагаю!).

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

я сделал бы, чтобы они записали некоторый код - лучший способ узнать то, что они знают и как они работают. Кто-либо может запомнить ответ на, 'Каково различие между ссылочным типом и типом значения?'

18
ответ дан Jennifer 23 November 2019 в 03:02
поделиться

Хорошие вопросы меня спросили,

  • , Что Вы думаете, хороши о.NET?
  • , Что, Вы думаете, плохи о.NET?

было бы интересно видеть то, что придумает кандидат, и Вы, конечно, узнаете вполне немного о том, как он использует платформу.

33
ответ дан splattne 23 November 2019 в 03:02
поделиться

Кто такой Jon Skeet?

34
ответ дан Steven A. Lowe 23 November 2019 в 03:02
поделиться

Я с парнями, которые ищут решающие проблему способности, а не вид вещи, которую можно искать и запомнить из '101 лучшего интервью.NET Qs и As".

Только для цитирования меня в качестве примера я склонен 'знать' вещи, которые я должен использовать со дня на день. Я склонен забывать (и позже иметь, чтобы повторно посмотреть) вещи, которые я редко использую.

, Если бы Вы хотели сбить меня с толку в интервью, это было бы очень легко.

, Тем не менее, я спроектировал и кодировал большую часть инфраструктуры для системы, которая использует идентичные уровни Business Objects и Data для его WinForms и воплощений ASP.NET, и наша кодовая база является устойчивой и достаточно допускающей повторное использование для нас, чтобы быть в состоянии поддерживать и разработать 20 + по-другому настроенные версии веб-сайта, а также растущее число (в настоящее время 5) приложения WinForms...

... с группой разработчиков два.

я раньше работал над командой как технический вывод, и мое задание включило довольно большое пополнение и интервьюирование. Моя самая захватывающая ошибка нанимала парня, который знал больше о технологии, которую мы использовали, чем вся остальная часть нас соединенный, включая меня, и я считал меня как эксперт. Он знал все...

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

Структурируют Ваши интервью мудро...

42
ответ дан ChrisA 23 November 2019 в 03:02
поделиться

Я думаю, брал ли я интервью у кого-то, у кого был опыт LINQ, я буду возможно всего , просят, чтобы они объяснили LINQ. Если они могут объяснить задержанное выполнение, потоковую передачу, интерфейсы IEnumerable/IEnumerator, foreach, блоки итератора, деревья выражений (для бонусных очков, так или иначе) тогда они могут, вероятно, справиться с остальными. (По общему признанию они могли быть в порядке разработчики и не "получить" LINQ все же - я действительно думаю о случае, где они утверждали, что знали, что достаточно LINQ делает его справедливым вопросом.)

В прошлом я задал несколько из вопросов, уже перечисленных, и немногие другие:

  • Различие между ссылкой и типами значения
  • Передача ссылкой по сравнению с передачей значением
  • IDisposable и финализаторы
  • Строки, неизменность, кодировки символов
  • Плавающая точка
  • Делегаты
  • Дженерики
  • типы Nullable
66
ответ дан Jon Skeet 23 November 2019 в 03:02
поделиться

Это не могло бы быть тем, что Вы хотите услышать, но я рекомендовал бы не фокусироваться на узких технологиях, но на общем программировании и навыках решения проблем. Солидные разработчики могут изучить то, что Вы хотите, чтобы они сделали быстро.

я, например, не являюсь Компактным парнем Платформы, таким образом, я мог бы привести Ваше интервью к сбою, если бы Вы пошли то направление. Но если бы я должен был использовать его, то я мог бы провести некоторое исследование и перейти прямо в.

книга Joel, Умный и Добивается цели , имеет большой совет для найма devs и существуют большие сочные разделы о видах вопросов спросить. Я настоятельно рекомендую его.

94
ответ дан Brian MacKay 23 November 2019 в 03:02
поделиться

Я нашел эти списки на блоге Scott Hanselman:

Вот то, что я думаю, самые важные вопросы из этих сообщений, разделенных на категории. Я отредактировал и перестроил их. К счастью, для большинства этих вопросов на Переполнении стека уже существует хороший ответ. Просто перейдите по ссылкам (я обновлю их всех ASAP).

Независимые от платформы вопросы о.NET

ASP.NET

135
ответ дан 37 revs, 2 users 98% 23 November 2019 в 03:02
поделиться

«Какой из ASP: какие элементы управления вы бы когда-либо использовали в производстве и почему?»

Это скажет Вы быстро узнаете, действительно ли ваш субъект когда-либо создавал и поддерживал большой проект достаточно долго, чтобы его сжигали DataGrids и LinkButtons, или он все еще находится в фазе перетаскивания «научи себя за 21 день».

(ответ таков: asp: Repeater, asp: PlaceHolder, asp: литерал и asp: содержимое)

3
ответ дан Jason Kester 23 November 2019 в 03:02
поделиться

Это не плохой способ сделать это, но вы можете сделать это только с одной переменной цикла, как это:

char letter = 65;

while(letter <= 65+25){
  printf("%c\t%d\n", letter, letter);
  ++letter;
}
-121--336600-

Вы можете использовать Thread.setUncaughtExcepureHandler () , чтобы поймать исключения.

Запись на SD-карту так же проста, как извлечение каталога для карты с помощью Environment.getExternalStorageDirectory () и создание там файла.

File f = new File(Environment.getExternalStorageDirectory(),filename);

Необходимо предоставить приложению правильное разрешение на запись на SD-карту, добавив это в манифест:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
-121--1456370-

Еще несколько:

  1. Частичные классы. И его ограничения?
  2. Запечатанные классы
  3. Как локализация может быть выполнена в .NET?
  4. Подключение к базе данных
  5. Различные файлы конфигурации
  6. Делегаты против событий
  7. Неуправляемый доступ к dll
  8. Отражения
  9. Общие классы
  10. Самые горячие в .NET 3,5
  11. Используемые рамки тестирования установки.
2
ответ дан 23 November 2019 в 03:02
поделиться

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

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

Тогда меня попросили разработать три страницы веб-приложения в течение 6 часов. Ограничения наложения в приложении было умного охватывающем основным аспектом развития приложений, таких как небольшая ERD, дизайн Saydd, консистенция пользовательского интерфейса, контролирует конкретные проблемы, такие как использование радиопередачи в GRIDVIEW и получения и отображения типов изображений из DB на веб-странице, один алгоритм, Безопасность, шифрование, хеширование, представление данных и манипуляция.

Затем на следующий день они сопровождали 30-минутную дискуссию на разработанном приложении, охватывающих зоны узкой местности и улучшению дизайна и использованных алгоритмов. И 1 час необязательный тест для улучшения вашего алгоритма, разработанного на предыдущем шаге с определенным условием.

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

1
ответ дан 23 November 2019 в 03:02
поделиться

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

Быть тупой, я действительно не читал слишком много типичных вопросов, так как основная парадигма - «, насколько хорошо вы можете вооскочить свои мысли и понимание? », это действительно то, что интервьюер находясь в поиске. Общение всегда моя самая большая слабость из-за того, как я и могу расстроиться довольно легко.

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

Вы будете удивлены тем, сколько на самом деле будет на самом деле, и блефом, в котором в конце дня попадаются их «штаны», метафорически говоря.

Мои 2центные, С уважением, Том.

2
ответ дан 23 November 2019 в 03:02
поделиться

Я бы предпочел задать ему проблему и попросить ее решить ее, используя функции .net, которые вы знаете, и почему вы думаете, что это лучшее решение.

Это позволит раскрыть почти все возможности кандидата с точки зрения технических, аналитических навыков и навыков решения проблем, а также его подход к решению проблемы.

0
ответ дан 23 November 2019 в 03:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: