Топ-50 запитань і відповідей на співбесіді з програмування, які потрібно знати
Шукаєте основні запитання та відповіді з програмування, які допоможуть вам пройти співбесіду? Ось 50 найкращих.

Компанії, що займаються програмним забезпеченням, завжди шукають талантів у програмуванні, оскільки телефонні та онлайн-співбесіди часто вирішують вашу долю всього за кілька хвилин.
Хороший програміст має бути якомога універсальнішим – від розуміння систем до загального програмування, різних концепцій і технологій, а також бути в курсі останніх новин.
Нижче наведено список із 50 найпопулярніших запитань на співбесіді з програмування та відповіді на них. Вони проливають світло на різноманітні поняття, які повинен знати кожен новачок, щоб досягти успіху.
1. Що таке комп’ютерне програмування?
Комп’ютерне програмування — це процес кодування логічних процесів, які мають виконуватися комп’ютером. Це досягається за допомогою комп’ютерної мови, яка містить необхідні інструкції.
Процес можна далі розділити на проектування, кодування, налагодження та оновлення.
2. Що таке налагодження?
Налагодження - це процес виявлення та усунення помилок у програмному коді комп'ютерної програми. Існує багато способів зробити це, але більшість середовищ розробки мають інтегрований налагоджувач, який спрощує роботу.
3. Що таке компілятор?
Компілятор — це програмне забезпечення, яке перетворює написану програму на машинний код, зрозумілий комп’ютеру.
Однак типовий пакет компілятора складається з попереднього процесора, головного компілятора, який перетворює комп’ютерну мову на асемблерний код, і асемблера.
4. Що таке попередній процесор?
Попередній процесор — це програма, яка аналізує написаний комп’ютерний код, щоб знайти й задовольнити його залежності, наприклад необхідні бібліотеки.
Після того як препроцесор переконається, що все, включаючи середовище виконання, в порядку, компілятор може перетворити код на код асемблера.
5. Що таке асемблер?
Асемблер — це програма, яка бере найнижчий рівень зрозумілого людині комп’ютерного коду, який називається мовою асемблера, і перетворює його на машинний код, з яким може працювати комп’ютер.
Мова асемблера зазвичай виводиться компілятором, хоча можна також кодувати безпосередньо. Програма збирання може містити такий код, як:
MOV AH, 02H
але коли ви компілюєте його в машинний код, ви отримуєте лише нулі та одиниці (наприклад, 0110011110101010).
6. Як виконується програма?
Спочатку операційна система завантажує вказану програму з жорсткого диска в системну пам’ять (RAM), а потім дозволяє їй виконуватися, вказуючи центральному процесору продовжити її виконання з першої адреси пам’яті програми. ЦП виконує будь-яку команду, яку бачить, а потім переходить до наступної, часто повторюючи цю процедуру мільйони разів на секунду.
32-розрядні процесори виконують 32-розрядні (4-байтові, подвійні слова) інструкції на ходу, тоді як 64-розрядні ЦП виконують 64-розрядні (8-байтові, чотирисловні) інструкції на ходу. Ці інструкції вбудовані в ЦП, і саме асемблер перетворює код програмування на двійкові числа, які представляють адреси рідних команд ЦП.
7. Дайте визначення a Підпрограма
Підпрограма — це послідовність інструкцій у програмі, яка може бути викликана та виконана в будь-який час. Іншими словами, підпрограма може бути функцією, методом або процедурою, яка використовується для реалізації певних завдань, таких як надсилання електронного листа, відкриття файлу або підбір сторінки входу.
8. Визначте Машинний код
Машинний код — це послідовність двійкових чисел, яка містить інструкції виконання певного мікропроцесора та пов’язані з ним адреси пам’яті.
Машинний код традиційно виводиться асемблером, розробленим для конкретного сімейства мікропроцесорів.
9. Поясніть Компільовані та інтерпретовані мови
Скомпільована комп’ютерна мова має бути перетворена на машинний код перед виконанням на комп’ютері, тоді як інтерпретована мова не потребує попередньої компіляції.
Коли ви виконуєте інтерпретовану програму, вона спочатку обробляється інтерпретатором, який потім компілює та виконує її на льоту. Ці додаткові кроки роблять інтерпретовані мови, такі як Python, повільнішими, ніж скомпільовані мови, такі як C.
10. Що таке цикл?
Цикл — це структура коду, яка може повторювати певні оператори, доки не буде досягнуто заданий критерій. Цей критерій може включати фіксовану кількість повторень або зміну визначеної змінної.
11. Перелічіть популярні типи петель
Різні комп’ютерні мови інтерпретують цикли по-різному. Однак популярні типи петель сімейства C включають:
- Цикл while(). – він дозволяє виконувати певний код, якщо це логічне значення поки () умова виконана.
Наприклад while(2>1){print(“yahoo!”)};. - Цикл For(;;). – містить три вирази (ініціалізація; оцінка; оновлення), які визначають умови для перевірки, а також гнучкий метод збільшення кількості. Він також виконає код принаймні один раз.
- Цикл Do{} While(). – цей тип циклу виконує зробити{} код принаймні один раз, перш ніж визначити, чи є поки () умова все ще актуальна.
12. Поясніть ітерацію проти Рекурсія
Ітерація — це використання циклу для виконання одних і тих самих кроків коду, тоді як рекурсія — це процес, коли функція викликає саму себе знову і знову. Однак проблема з рекурсією полягає в тому, що ви можете досягти лише певної глибини, поки не зіткнетеся з проблемами пам’яті.
13. Поясніть робочі місця Перерва і продовження в A Loop
A перерву Інструкція завершує виконання циклу та продовжує виконання решти комп’ютерного коду. А продовжувати оператор, з іншого боку, продовжує ітерацію циклу з самого початку.
14. Що таке ООП?
ООП означає об’єктно-орієнтоване програмування, і це парадигма програмування, яка реалізує програмне забезпечення навколо даних і об’єктів, а не навколо функцій чи процедур.
15. Що таке процедурне програмування?
Процедурне програмування — це парадигма програмування, яка організовує комп’ютерний код навколо послідовностей або кроків інструкцій, які потрібно виконати. Як випливає з назви, це низхідний підхід, який починається з початкової фази подій і закінчується очікуваним завершенням подій.
16. Поясніть функціональне програмування
Функціональне програмування — це парадигма комп’ютерного програмування, яка підходить до розробки програмного забезпечення шляхом застосування послідовних функцій, які не змінюють ані стан, ані дані наданих аргументів.
Мета полягає в тому, щоб створити більш надійні програми, які дають очікувані результати без непередбачуваних побічних ефектів.
17. Поясніть Мова високого рівня
Мова програмування високого рівня — це комп’ютерна мова, яка більше відповідає людському розумінню, ніж специфіці чи природі комп’ютера.
Мови програмування високого рівня, такі як C і Python, легко зрозуміти, тоді як мова асемблера низького рівня може заплутати новачків.
18. Список Популярні Мови низького рівня
Існує лише дві мови програмування низького рівня: асемблер і машинний код.
19. Визначте атаку SQL Injection Attack
Атака SQL-ін’єкції — це процес введення операторів SQL у поля введення, наприклад ім’я користувача чи адреса, в надії, що розробник не продезінфікував введені дані належним чином під час програмування. І в разі успіху така атака дозволяє зловмиснику отримати доступ адміністратора до сервера.
20. Що таке таблиця в SQL?
Таблиця в SQL відноситься до колекції даних, згрупованих у стовпці та рядки. Кожен стовпець має окремий тип даних, і ви можете мати кілька таблиць в одній базі даних. Ви також можете запитувати кілька таблиць одночасно.
Ви створюєте таблицю з:
CREATE TABLE table_name(тип даних стовпця1, тип даних стовпця2, тип даних стовпця3, …);
21. Поясніть різницю між об’єктом і класом
Об’єкт — це екземпляр класу, а клас — це схема, з якої створюється об’єкт. Об’єкт може мати такі стани та властивості, як колір, висота, вага, швидкість тощо.
Ці властивості мають бути визначені або ініціалізовані принаймні значеннями за замовчуванням.
22. Скільки бітів становить один мегабайт?
В 8,000,000 мегабайті 1 8 10 біт, оскільки один байт дорівнює XNUMX бітам, а один мегабайт — XNUMX6.
23. Визначте тип даних Float
Число з плаваючою точкою — це тип даних, який представляє число з десятковими дробами. Він використовується в ситуаціях, коли потрібен вищий рівень точності, ніж той, який можуть забезпечити стандартні цілі числа. Приклад поплавця:
0.013
or
25.932
24. Що означає HexaDecimal 0xFF?
0xFF означає десяткову систему 255 або двійкову систему 11111111. 0x означає основу 16 або шістнадцяткову систему запису, яка починається від 1 до 9, а потім продовжується від A до F, щоб представити 15. Отже, 0xF — це десяткове число 15, тоді як 0xFF — це десяткове число 255.
25. Назвіть типи помилок у програмуванні
Існує 3 основних типи помилок у комп’ютерній програмі:
- Синтаксична помилка
- Логічна помилка
- Помилка при виконанні
26. Що таке синтаксична помилка?
Синтаксична помилка виникає, коли є відхилення від часто суворого синтаксису мов програмування. Це може бути результатом простого неправильного розташування літер до неправильних параметрів, які передаються функції. Більшість компіляторів включають номер рядка вихідного коду, де сталася помилка.
27. Що таке логічна помилка?
Логічна помилка - це помилка, яка виникає через те, як працює програма. Таким чином, хоча програма може виконуватися бездоганно, вона не досягає своєї мети. Логічні помилки можуть виникати багатьма способами та з багатьох причин.
28. Що таке помилка виконання?
Помилка виконання — це помилка комп’ютерної програми, яка виникає під час виконання програми та внаслідок непередбачених обставин. Отже, хоча програма працює бездоганно, наприклад, проблеми з пам’яттю та мережею можуть спричинити неправильну роботу програми.
29. Поясніть Сильні та слабко типізовані мови
Мова зі строгим типом накладає менше обмежень на типи даних і їх визначення.
Багато слабо типізованих мов автоматично перетворюють типи даних, тоді як строго типізовані мови часто вимагають явних перетворень.
30. Що таке архітектура MVC?
MVC відноситься до Model-View-Controller і є шаблоном розробки програмного забезпечення для інтерфейсів користувача. Він розділяє логіку програми на 3 частини.
Команда модель частина обробляє базову логіку даних відповідних об’єктів, тоді як вид обробляє відображення інформації для користувача, і контролер обробляє потік даних між представленнями та моделями. Дизайн MVC часто використовується з об'єктно-орієнтованим програмуванням.
31. Дайте визначення Алгоритм
Алгоритм — це послідовність процедур, призначених для вирішення певної задачі. Ці процедури зазвичай розбиваються на менші кроки, і комп’ютер щоразу виконує їх саме так.
Приклади алгоритмів включають розпізнавання обличчя, пошук Google, спосіб зав’язування взуття, кодування або шифрування даних тощо.
32 Що Машинне навчання?
Машинне навчання або ML – це розділ штучного інтелекту, який зосереджується на допомозі системам визначати шаблони та самостійно приймати рішення за допомогою використання даних.
Тоді це покращує їх продуктивність або ефективність. Системи машинного навчання можуть бути керованими, неконтрольованими та базуватися на підкріпленні.
33. Що таке Регулярні вирази?
Регулярний вираз або Regex — це рядок, який використовується для визначення шаблонів пошуку в текстових документах. Різні мови програмування реалізують регулярні вирази або використовують популярні бібліотеки регулярних виразів. Приклад регулярного виразу для відповідності всім символам у тексті:
(.*)
тоді як наступне відповідає лише файлам mp3:
.+\.(mp3)$
34. Що робить оператор Modulus (%)?
Оператор модуля % приймає два операнди і ділить перший операнд на другий. Потім він повертає залишок операції як результат.
Його часто використовують для перевірки парних і непарних чисел шляхом ділення будь-якого цілого числа на 2, де результат 0 означає парне число, а 1 означає непарне число.
35. Поясніть Розгалуження процесу
Розгалуження походить від вилка () функція в системах Unix і Linux, яка може використовуватися запущеним процесом для створення самої копії. Отже, розгалуження процесу — це дублювання процесу для створення двох подібних процесів, що виконуються одночасно.
Додатковий тип розгалуження стосується отримання вихідного коду проекту з відкритим кодом і створення з нього абсолютно нової програми.
36. Поясніть Створення потоку
Створення потоку — це процес створення нового потоку ЦП для запуску процесу. Відродження часто використовується програмами з інтенсивним обчисленням, щоб використовувати багатопотокові можливості процесора, і його успіх залежить від процесора, на якому він працює, кількості ядер і кількості потоків на ядро.
37. Що робити Зарезервовані слова Середнє?
Зарезервовані слова – це терміни, які не можна використовувати як ідентифікатори в мові програмування. Це включає функції, змінні та мітки. Вони зарезервовані, оскільки вони вже визначені та мають конкретні значення.
38. Перелічіть популярні зарезервовані слова
У різних мовах є різні зарезервовані слова на основі їх синтаксису. Ось найпопулярніші зарезервовані слова в програмуванні:
- IF
- ІСТИНА
- ПОМИЛКОВИЙ
- ВИМИКАЧ
- ELSE
- СПРАВА
- BOOLEAN
- ПОВЕРНЕННЯ
- ФУНКЦІЯ
- BREAK
- GOTO
39. Що таке рядок?
Рядок — це послідовність символів, яка часто міститься в масиві та використовується для визначення текстових даних. Найпопулярнішим рядком є «hello world».
40. Що таке змінна?
Змінна — будь-яке значення, яке може змінюватися під час виконання програми. Змінна може бути будь-якого типу даних, включаючи рядки та цілі числа. Наприклад, програма ініціалізується так:
int a = 0;
int b = 1;
потім під час виконання вносяться зміни:
b = a+b; //b змінився
41. Що таке константа?
Константа - це змінна, яка не повинна змінюватися під час виконання програми. Хорошим прикладом є швидкість світла або звуку. Різні мови програмування дозволяють визначати константи різними способами. Наприклад, у C:
const float middle_c = 261.62; //середня тональність c на піаніно становить 261.6255 Гц
42. Визначте масив
Масив — це тип змінної, яка використовується для зберігання кількох значень одночасно. Багато мов дозволяють зберігати значення лише подібних типів даних, тоді як інші мови можуть обробляти масиви з різними типами. Ви також можете мати багатовимірні масиви, які є масивами масивів і можуть стати безладними.
Визначити масив у mql4 просто за допомогою:
рядок TextArray[100]; //масив зі ста рядків
43 Що Перевантаження функцій?
Перевантаження функцій — це метод, який дозволяє розробнику визначати кілька функцій, які мають однакові назви, але мають різні функціональні можливості. Це досягається шляхом створення різних версій функції з різними аргументами. Потім компілятор дізнається, яка функція потрібна за типом і кількістю наданих аргументів.
44. Дайте визначення a Дзвінок за посиланням
Виклик за посиланням — це метод передачі адреси пам’яті аргументів функції, на відміну від стандартного методу передачі копії значення аргументу. Метою посилальних викликів є те, що аргумент безпосередньо змінюється функцією.
45. Поясніть Арифметичні оператори
Це спеціальні символи, які використовуються для виконання арифметичних операцій мовою програмування. Арифметичні оператори включають:
- Додаток або унарний плюс (+)
- Віднімання або унарний мінус (-)
- Множення (*)
- Відділ (/)
- Модуль (%).
46. Поясніть Логічні оператори
Логічні оператори - це слова або символи, які використовуються для виконання операцій на основі умовної логіки. Більшість мов мають лише 3 логічні оператори:
- І (&& у C, C++, JavaScript)
- OR (|| у C, C++, JavaScript)
- $NOT (! у C, C++, JavaScript)
47. Логічна 1 І 0 =?
Логічна операція 1 І 0 дасть вам false тому що другий операнд дорівнює 0, і вам потрібно, щоб обидва операнди операції AND були 1 або TRUE, щоб отримати позитивний результат.
48. Логічне НЕ 1 =?
Логічна операція NOT 1 дасть вам false тому що оператор NOT заперечує все, що ви йому надаєте, тобто перетворює 1 на 0, а 0 на 1. Таким чином, надання йому операнда 1 або TRUE призводить до 0 або FALSE.
49. Логічна 1 NAND 1 =?
Буде створена логічна 1 NAND 1 операція false тому що обидва операнди є ІСТИННИМИ, а оператор NAND завжди заперечує два подібні вхідні дані для створення протилежного виходу.
Таким чином, якщо операція була 0 NAND 0, тоді вихід буде 1 або TRUE.
50. Логічна 1 XOR 1 =?
Буде створена логічна операція XOR 1 false тому що в той час як звичайна операція АБО видає значення ІСТИНА для одного або обох вхідних даних, які є ІСТИННИМИ, операція XOR (виключне АБО) видає значення ІСТИНА лише тоді, коли тільки один вхід, а не інший, є ІСТИННИМ.
Висновок
Ми підійшли до кінця цього списку 50 найкращих запитань на співбесіді з програмування, які потрібно знати, і відповідей на них. І як бачите, світ програмування величезний, але захоплюючий.
Немає двох однакових співбесід. Отже, хоча цей список вказує вам правильні теми, ви також повинні спробувати краще зрозуміти кожну проблему.





