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

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

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

Итак, давайте начнем:

Список всех тем:

  1. ООП
  2. Абстракция против инкапсуляции
  3. Интерфейсы
  4. Частичные классы
  5. Стек против кучи
  6. Дженерики
  7. .Net Core против .Net Framework
  8. Внедрение зависимости
  9. Балансировка нагрузки
  10. Нормализация в базе данных

Давайте начнем:

  1. ООП

Объектно-ориентированное программирование — это парадигма информатики, особенно программирования.

Это означает создание объекта, который содержит как данные, так и методы. Он имеет 4 столба.

а) Инкапсуляция

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

б) Наследование

  • Когда класс включает в себя имущество другого класса
  • Возможность повторного использования объекта/дочерние и родительские отношения
  • Примеры: Ребенок-Родитель, Телефон-Samsung, Телефон-iPhone и т. д.

в) полиморфизм

  • Одно имя, много форм
  • Одна функция ведет себя в разных формах
  • Множество форм одного объекта
  • Пример: Человек может быть сыном, сотрудником или отцом одновременно.

г) Абстракция

  • Для представления основных функций без представления второстепенных деталей
  • Показывая только что, а не как.
  • Предоставьте соответствующую информацию
  • Класс состоит из общих данных
  • Должен быть унаследован
  • Неполная информация в абстрактном классе.

2. Абстракция и инкапсуляция

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

3. Интерфейсы

  • Интерфейс используется для достижения абстракции
  • Это полный абстрактный класс, который может содержать только пустые методы и свойства.
  • Должен начинаться с I. (IAnimal/ICar)
  • По умолчанию все члены являются общедоступными и абстрактными.
  • Без создания объекта
  • Нет конструктора
  • Используется по соображениям безопасности и множественного наследования.

4. Частичные классы

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

5. Стек против кучи

  • Стек — это массив памяти, а куча — это область памяти.
  • Стеки работают LIFO, в то время как куча работает где угодно, добавляйте/удаляйте.
  • Стеки хранят типы значений, а куча хранит ссылочные типы.
  • Стек имеет статическое выделение памяти, а куча имеет динамическое выделение памяти.
  • Размер переменной в стеке фиксирован, в то время как его размер можно изменить в куче.
  • Стек быстрее, чем куча.
  • Стек виден только потоку-владельцу, а куча видна всем потокам.
  • В стеке хранятся значения и ссылки на объекты, а в куче хранятся только объекты.
  • Сборщик мусора работает только в куче.

6. Общие

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

7. .NET Core и .NET Framework

  • .NET Core имеет открытый исходный код, в то время как некоторые компоненты .NET Framework имеют открытый исходный код.
  • .NET core является кроссплатформенным, а .NET Framework работает только для Windows.
  • Микросервисы поддерживаются в .NET Core.
  • В .NET Core нет поддержки WCF.
  • С точки зрения производительности .NET Core намного быстрее, чем .NET Framework.

8. Внедрение зависимостей

  • Это шаблон проектирования программного обеспечения, который позволяет нам разрабатывать слабосвязанные программные системы.
  • Он устраняет тесную связь
  • Это помогает нам управлять будущими изменениями и другими сложностями в нашем программном обеспечении.
  • Сделайте код читаемым и удобным для сопровождения.
  • Это может быть достигнуто с помощью конструктора DI, внедрения свойств/сеттеров или зависимости метода.

9. Балансировка нагрузки

  • Балансировка нагрузки означает эффективное распределение входящего сетевого трафика между группой внутренних серверов/фермой серверов/пулом.
  • Выступает в роли гаишника
  • Это максимизирует скорость
  • Когда один сервер не работает, Load Balancer отправляет запросы на другие серверы.
  • Это обеспечивает высокую доступность и надежность.
  • Он обеспечивает гибкость добавления или удаления серверов динамически/статически.
  • Некоторые алгоритмы используются как круговой алгоритм, наименьшее время, наименьшее количество соединений и случайный выбор с 2 вариантами.

10. Нормализация в базе данных

  • 1-я нормальная форма или 1NF означает наличие атомарных значений и уникальных значений в таблице.
  • 2-я нормальная форма или 2NF означает отсутствие частичной зависимости в таблице.
  • 3-я нормальная форма или 3NF означает отсутствие транзитивной зависимости в таблице.
  • BCNF означает, что таблица уже находится в форме 3NF, и дальнейшее разделение в таблице невозможно.

Это все для почты.

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

Об авторе:

Как вы знаете, меня зовут Саиф Кхан Хакро. Я получил степень бакалавра компьютерных наук в FAST NUCES Karachi в период с 2013 по 2017 год со средним баллом 3,49. Я работаю разработчиком программного обеспечения в секторе программного обеспечения с 2017 года, уделяя особое внимание домену .NET. Мне нравится писать сочинения и читать книги. Эти статьи были созданы, чтобы упростить обучение для профессионалов и студентов.