В большинстве случаев давать интервью — одно из самых увлекательных и рискованных занятий. Я подал заявку примерно в 20 фирм на свою первую работу в качестве инженера-программиста в Карачи, Пакистан, и большинство из них в конечном итоге отказали мне (может быть, я был не так подготовлен или мне не повезло).
Неопределенность при поиске работы напряжена, скучна и полна приключений одновременно. В то время как смена работы — это совершенно другой сценарий, в Пакистане получение должности нового инженера-программиста — это значительное достижение. Сменить работу проще, чем искать новую должность. Вы применяете каждую возможность, которую видите, и часто приближаетесь к неудаче.
Мы подвержены давлению со стороны сверстников и семье. Все постоянно интересуются нашей работой и зарплатой. Я создал это руководство для начинающих, чтобы люди (первокурсники и профессионалы) могли прочитать его перед тем, как отправиться на какое-либо важное собеседование по программному обеспечению.
Итак, давайте начнем:
Список всех тем:
- ООП
- Абстракция против инкапсуляции
- Интерфейсы
- Частичные классы
- Стек против кучи
- Дженерики
- .Net Core против .Net Framework
- Внедрение зависимости
- Балансировка нагрузки
- Нормализация в базе данных
Давайте начнем:
- ООП
Объектно-ориентированное программирование — это парадигма информатики, особенно программирования.
Это означает создание объекта, который содержит как данные, так и методы. Он имеет 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. Мне нравится писать сочинения и читать книги. Эти статьи были созданы, чтобы упростить обучение для профессионалов и студентов.