50 nejdůležitějších otázek a odpovědí na programovací pohovor
Hledáte nejlepší programátorské otázky a odpovědi, které vám pomohou zvládnout pohovor? Zde je 50 nejlepších.

Softwarové společnosti neustále hledají dobré programátorské talenty, přičemž telefonické a online rozhovory často rozhodnou o vašem osudu během několika minut.
Dobrý programátor musí být co nejvšestrannější – od porozumění systémům po obecné programování, různé koncepty a technologie a také musí být aktuální.
Níže je uveden seznam 50 nejlepších otázek z programovacího pohovoru a jejich odpovědi. Osvětlují rozmanité pojmy, které musí znát každý začátečník, aby vynikl.
1. Co je počítačové programování?
Počítačové programování je proces kódování logických procesů, které má počítač provést. Toho je dosaženo pomocí počítačového jazyka, který obsahuje potřebné instrukce.
Proces lze dále rozdělit na návrh, kódování, ladění a aktualizaci.
2. Co je ladění?
Ladění je proces zjišťování a odstraňování chyb v softwarovém zdroji počítačového programu. Existuje mnoho metod, jak toho dosáhnout, ale většina vývojových prostředí je dodávána s integrovaným debuggerem, který usnadňuje práci.
3. Co je to kompilátor?
Kompilátor je softwarový program, který vezme napsaný program a přemění jej na strojový kód, kterému počítač rozumí.
Typický balík kompilátoru se však skládá z pre-procesoru, hlavního kompilátoru, který převádí počítačový jazyk na kód assembleru, a assembleru.
4. Co je pre-procesor?
Pre-procesor je program, který analyzuje napsaný počítačový kód, aby našel a uspokojil jeho závislosti, jako jsou potřebné knihovny.
Poté, co se pre-procesor ujistí, že je vše včetně prováděcího prostředí v pořádku, může kompilátor převést kód na kód sestavení.
5. Co je to assembler?
Assembler je program, který přebírá nejnižší úroveň lidského kódu zvanou assembler a převádí jej na strojový kód, se kterým může počítač pracovat.
Jazyk symbolických instrukcí je obvykle vydáván kompilátorem, i když lze kódovat přímo. Program sestavení může obsahovat kód jako:
MOV AH, 02H
ale když to zkompilujete do strojového kódu, dostanete pouze nuly a jedničky (např. 0110011110101010).
6. Jak probíhá program?
Operační systém nejprve načte zadaný program z úložiště pevného disku do systémové paměti (RAM) a poté mu umožní provést příkazem CPU, aby pokračoval v provádění od první adresy paměti programu. CPU provede jakýkoli příkaz, který vidí, a poté se přesune na další, přičemž tento postup často opakuje milionkrát za sekundu.
32bitové CPU provádějí 32bitové (4bajtové, dvouslovné) instrukce najednou, zatímco 64bitové CPU provádějí 64bitové (8bajtové, quad-word) instrukce najednou. Tyto instrukce jsou zabudovány do CPU a je to assembler, který převádí programovací kód na binární čísla, která představují nativní adresy příkazů CPU.
7. Definujte a Podprogram
Podprogram je posloupnost instrukcí v programu, kterou lze volat a provádět kdykoli. Jinými slovy, podprogram může být funkce, metoda nebo postup používaný k implementaci konkrétních úkolů, jako je odeslání e-mailu, otevření souboru nebo hrubé vynucení přihlašovací stránky.
8. Definujte Strojový kód
Strojový kód je posloupnost binárních čísel, která obsahuje prováděcí instrukce konkrétního mikroprocesoru a jeho přidružené adresy paměti.
Strojový kód je tradičně vydáván assemblerem, který je navržen pro tuto konkrétní rodinu mikroprocesorů.
9. Vysvětlete Kompilované vs. interpretované jazyky
Kompilovaný počítačový jazyk musí být před spuštěním na počítači převeden na strojový kód, zatímco interpretovaný jazyk nepotřebuje předchozí kompilaci.
Když spustíte interpretovaný program, je nejprve zpracován interpretem, který jej poté zkompiluje a spustí za běhu. Díky těmto dalším krokům jsou interpretované jazyky, jako je Python, pomalejší než kompilované jazyky, jako je C.
10. Co je to smyčka?
Smyčka je struktura kódu, která může opakovat konkrétní příkazy, dokud není dosaženo zadaného kritéria. Toto kritérium může zahrnovat pevný počet opakování nebo změnu definované proměnné.
11. Vyjmenujte oblíbené typy smyček
Různé počítačové jazyky budou interpretovat smyčky různými způsoby. Mezi oblíbené typy smyček rodiny C však patří:
- While() Smyčka – umožňuje spuštění specifického kódu, pokud jde o booleovský kód zatímco() podmínka splněna.
Například while(2>1){print(“yahoo!”)};. - Pro(;;) Smyčka – obsahuje tři výrazy (inicializace; hodnocení; aktualizovat), které definují podmínky, které se mají testovat, a také flexibilní metodu pro zvýšení počtu. Také alespoň jednou spustí kód.
- Do{} While() Smyčka – tento typ smyčky provádí dělat{} kód alespoň jednou před určením, zda zatímco() podmínka stále platí.
12. Vysvětlete Iterace vs Rekurze
Iterace je použití smyčky k provedení stejných kroků kódu, zatímco rekurze je proces, kdy se funkce znovu a znovu volá. Problém s rekurzí je ale v tom, že se můžete dostat jen do určité hloubky, dokud nenarazíte na problémy s pamětí.
13. Vysvětlete pracovní místa Přerušit a pokračovat ve smyčce A
A rozbít příkaz ukončí provádění smyčky a pokračuje ve vykonávání zbytku počítačového kódu. A pokračovat příkaz na druhé straně pokračuje v opakování cyklu od začátku.
14. Co je OOP?
OOP je zkratka pro objektově orientované programování a je to programovací paradigma, které implementuje návrh softwaru kolem dat a objektů, spíše než kolem funkcí nebo procedur.
15. Co je procedurální programování?
Procedurální programování je programovací paradigma, které organizuje počítačový kód kolem sekvencí nebo kroků instrukcí, které mají být provedeny. Jak název napovídá, jde o přístup shora dolů, který začíná kódem od počáteční fáze událostí a končí očekávaným koncem událostí.
16. Vysvětlete funkcionální programování
Funkční programování je paradigma počítačového programování, které přistupuje k vývoji softwaru aplikací sekvenčních funkcí, které nemutují stav ani data dodaných argumentů.
Cílem je vytvořit robustnější programy, které produkují očekávané výsledky bez nepředvídaných vedlejších účinků.
17. Vysvětlete Jazyk na vysoké úrovni
Vysokoúrovňový programovací jazyk je počítačový jazyk, který apeluje spíše na lidské porozumění než na specifika nebo povahu počítače.
Vysokoúrovňové programovací jazyky jako C a Python jsou snadno srozumitelné, zatímco nízkoúrovňový assembler může být pro začátečníky velmi matoucí.
18. Seznam Populární Nízkoúrovňové jazyky
Existují pouze dva nízkoúrovňové programovací jazyky: assembler a strojový kód.
19. Definujte útok SQL Injection Attack
Útok SQL injection je proces zadávání příkazů SQL do vstupních polí, jako jsou uživatelské jméno nebo adresy, v naději, že vývojář tyto vstupy během programování řádně nedezinfikoval. A když je takový útok úspěšný, umožní útočníkovi získat administrátorský přístup k serveru.
20. Co je tabulka v SQL?
Tabulka v SQL odkazuje na kolekci dat, která jsou seskupena do sloupců a řádků. Každý sloupec má odlišný datový typ a v jedné databázi můžete mít více tabulek. Můžete se také dotazovat na více než jednu tabulku najednou.
Vytvoříte tabulku pomocí:
CREATE TABLE název_tabulky (sloupec1 datový typ, sloupec2 datový typ, sloupec3 datový typ, …);
21. Vysvětlete rozdíl mezi objektem a třídou
Objekt je instancí třídy, zatímco třída je plán, ze kterého je objekt vytvořen. Objekt může mít stavy a vlastnosti, jako je barva, výška, hmotnost, rychlost a tak dále.
Tyto vlastnosti musí být definovány nebo alespoň inicializovány s výchozími hodnotami.
22. Kolik bitů tvoří jeden megabajt?
V 8,000,000 megabajtu je 1 8 10 bitů, protože jeden bajt je XNUMX bitů a jeden mega je XNUMX6.
23. Definujte datový typ Float
Float je datový typ, který představuje číslo s desetinnými zlomky. Používá se v situacích, kdy je potřeba vyšší úroveň přesnosti, než jakou mohou poskytnout standardní celá čísla. Příkladem plováku je:
0.013
or
25.932
24. Co znamená HexaDecimal 0xFF?
0xFF znamená Decimal 255 nebo Binary 11111111. 0x znamená Base16 nebo Hexadecimální zápis, který běží od 1 do 9 a pak pokračuje s A až F, aby reprezentoval 15. Takže 0xF je desítkové 15, zatímco 0xFF je desítkové 255.
25. Pojmenujte typy chyb v programování
Existují 3 hlavní typy chyb v počítačovém programu, jsou to:
- Chyba syntaxe
- Logická chyba
- Chyba při běhu
26. Co je to syntaktická chyba?
Chyba syntaxe nastane, když dojde k odchylce od často striktní syntaxe programovacích jazyků. Mohlo by to vyplývat z jednoduchého nesprávného umístění písmen do nesprávných parametrů, které se předají funkci. Většina kompilátorů bude obsahovat číslo řádku zdrojového kódu, kde došlo k chybě.
27. Co je to logická chyba?
Logická chyba je chyba, která vyplývá ze způsobu, jakým program funguje. Takže i když se program může spustit bezchybně, neplní svůj účel. Logické chyby se mohou vyskytovat mnoha způsoby a mohou být způsobeny mnoha důvody.
28. Co je to Runtime Error?
Runtime error je chyba počítačového programu, ke které dochází během provádění programu a v důsledku nepředvídaných okolností. Takže i když program funguje bezchybně, například problémy s pamětí a sítí mohou způsobit, že se program bude chovat špatně.
29. Vysvětlete Silné vs slabě napsané jazyky
Silně typovaný jazyk je přísný, pokud jde o různé datové typy a způsob jejich převodu, zatímco jazyk se slabým typem klade na datové typy a jejich definice méně omezení.
Mnoho slabě napsaných jazyků převede datové typy automaticky, zatímco silně napsané jazyky často vyžadují explicitní převody.
30. Co je architektura MVC?
MVC odkazuje na Model-View-Controller a je vzorem vývoje softwaru pro uživatelská rozhraní. Rozděluje logiku programu na 3 části.
Jedno model část zpracovává základní datovou logiku příslušných objektů, zatímco pohled zpracovává zobrazení informací uživateli a kontrolor zpracovává tok dat mezi pohledy a modely. Návrh MVC se často používá s objektově orientovaným programováním.
31. Definujte an Algoritmus
Algoritmus je posloupnost procedur určených k řešení konkrétního problému. Tyto postupy jsou obvykle rozděleny do menších kroků a počítač je pokaždé provádí přesně tak.
Příklady algoritmů zahrnují rozpoznávání obličeje, vyhledávání Google, způsob zavazování bot, kódování nebo šifrování dat a tak dále.
32. Co je Strojové učení?
Strojové učení neboli ML je část umělé inteligence, která se zaměřuje na pomoc systémům identifikovat vzorce a samostatně se rozhodovat prostřednictvím spotřeby dat.
To pak zlepšuje jejich výkon nebo efektivitu. Systémy strojového učení mohou být pod dohledem, bez dozoru a na posílení.
33. Co jsou Regulární výrazy?
Regulární výraz nebo Regex je řetězec používaný k definování vzorců vyhledávání v textových dokumentech. Různé programovací jazyky implementují regulární výrazy nebo používají oblíbené knihovny regulárních výrazů. Příklad regulárního výrazu, který odpovídá všem znakům v textu, je:
(.*)
zatímco následující odpovídá pouze souborům mp3:
.+\.(mp3)$
34. Co dělá operátor Modulus (%)?
Operátor modulu % vezme dva operandy a rozdělí první operand pomocí druhého. Jako výsledek pak vrátí zbytek operace.
Často se používá k testování lichých a sudých čísel vydělením libovolného celého čísla 2, kde výsledek 0 znamená sudé číslo a 1 znamená liché číslo.
35. Vysvětlete Proces Forking
Rozvětvení pochází z Vidlička() funkce v systémech Unix a Linux, kterou může běžící proces použít k vytvoření vlastní kopie. Rozvětvení procesů je tedy duplikací procesu za účelem vytvoření dvou podobných a současně se provádějících procesů.
Dalším typem forkování se rozumí převzetí zdrojového kódu projektu s otevřeným zdrojovým kódem a vytvoření zcela nového programu z něj.
36. Vysvětlete Tření vláken
Zakládání vláken je proces vytváření nového vlákna CPU pro spuštění procesu. Vytváření je často používáno výpočetně náročnými programy k využití vícevláknových schopností procesoru a jeho úspěch závisí na CPU, na kterém běží, kolik má jader a kolik vláken na jádro nabízí.
37. Co dělat Vyhrazená slova Znamenat?
Vyhrazená slova jsou termíny, které nesmíte používat jako identifikátor v programovacím jazyce. To zahrnuje funkce, proměnné a štítky. Jsou vyhrazeny, protože již byly definovány a mají konkrétní význam.
38. Seznam oblíbených rezervovaných slov
Různé jazyky mají různá vyhrazená slova na základě jejich syntaxe. Zde jsou nejoblíbenější vyhrazená slova v programování:
- IF
- TRUE
- NEPRAVDIVÉ
- SWITCH
- ELSE
- CASE
- BOOLEAN
- VRÁTIT SE
- FUNKCE
- PŘESTÁVKA
- GOTO
39. Co je to řetězec?
Řetězec je posloupnost znaků, často uložená v poli a používaná k definování textových dat. Nejoblíbenější struna je „ahoj světe“.
40. Co je to proměnná?
Proměnná je jakákoliv hodnota, která se může během provádění programu změnit. Proměnná může být libovolného datového typu, včetně řetězců a celých čísel. Například program se inicializuje následovně:
int a = 0;
int b = 1;
pak se během provádění provedou změny:
b = a+b; //b se změnil
41. Co je to konstanta?
Konstanta je proměnná, u které se neočekává, že by se během provádění programu změnila. Dobrým příkladem je rychlost světla nebo zvuku. Různé programovací jazyky umožňují definovat konstanty různými způsoby. Například v C:
const float middle_c = 261.62; //střední Klávesa c na klavíru je 261.6255 Hz
42. Definujte pole
Pole je typ proměnné, která se používá k ukládání více hodnot najednou. Mnoho jazyků umožňuje ukládat pouze hodnoty podobných datových typů, zatímco jiné jazyky zvládnou pole s různými typy. Můžete také mít vícerozměrná pole, což jsou pole polí a mohou být nepořádná.
Definování pole v mql4 je jednoduché pomocí:
řetězec TextArray[100]; //pole stovek řetězců
43. Co je Přetížení funkcí?
Přetěžování funkcí je metoda, která umožňuje vývojáři definovat více funkcí, které sdílejí stejný název, ale mají různé funkce. Toho je dosaženo vytvořením různých verzí funkcí s různými argumenty. Kompilátor pak ví, která funkce je potřebná, podle typu a počtu dodaných argumentů.
44. Definujte a Volejte podle reference
Volání odkazem je metoda předávání adresy argumentů v paměti funkci, na rozdíl od standardní metody předávání kopie hodnoty argumentu. Cílem referenčních volání je, aby byl argument přímo modifikován funkcí.
45. Vysvětlete Aritmetické operátory
Jedná se o speciální znaky, které slouží k provádění aritmetických operací v programovacím jazyce. Mezi aritmetické operátory patří:
- Sčítání nebo jednočlenné plus (+)
- Odečítání nebo unární mínus (-)
- Násobení (*)
- Divize (/)
- Modul (%).
46. Vysvětlete Logické operátory
Logické operátory jsou slova nebo symboly, které se používají k provádění operací založených na podmíněné logice. Většina jazyků má pouze 3 logické operátory:
- A AUTOMATIZACI (&& v C, C++, JavaScript)
- OR (|| v C, C++, JavaScript)
- NENÍ (! v C, C++, JavaScript)
47. Logická 1 AND 0 =?
Logická operace 1 AND 0 vám dá nepravdivý protože druhý operand je 0 a potřebujete, aby oba operandy operace AND byly 1 nebo PRAVDA, abyste získali kladný výstup.
48. Logické NE 1 =?
Logická operace NE 1 vám dá nepravdivý protože operátor NOT neguje vše, co mu zadáte, což znamená, že změní 1 na 0 a 0 na 1. Takže když mu dáte operand 1 nebo TRUE, bude to 0 nebo FALSE.
49. Logická 1 NAND 1 =?
Logická operace 1 NAND 1 vytvoří nepravdivý protože oba operandy jsou PRAVDA a operátor NAND vždy neguje dva podobné vstupy, aby vytvořil opačný výstup.
Pokud tedy operace byla 0 NAND 0, pak by výstup byl 1 nebo TRUE.
50. Logické 1 XOR 1 =?
Logická operace 1 XOR 1 vytvoří nepravdivý protože zatímco normální operace OR vytvoří hodnotu TRUE na jednom nebo obou vstupech, které mají hodnotu TRUE, operace XOR (Exclusive OR) vytvoří hodnotu TRUE pouze v případě, že pouze jeden vstup a ne druhý bude mít hodnotu TRUE.
Závěr
Dostali jsme se na konec tohoto seznamu 50 nejlepších otázek, které byste měli znát při pohovoru o programování, a jejich odpovědí. A jak vidíte, svět programování je rozsáhlý, ale vzrušující.
Žádné dva rozhovory nejsou stejné. Takže i když vás tento seznam nasměruje správným směrem k tématu, měli byste se také pokusit lépe porozumět každému problému.





