50 parimat programmeerimisintervjuu küsimust ja vastust, mida peate teadma
Kas otsite populaarseimaid programmeerimisküsimusi ja vastuseid, mis aitavad teil intervjuule jõuda? Siin on 50 parimat.

Tarkvarafirmad otsivad alati häid programmeerimistalente ning telefoni- ja veebiintervjuud otsustavad sageli teie saatuse vaid mõne minutiga.
Hea programmeerija peab olema võimalikult mitmekülgne – alates süsteemi mõistmisest kuni üldise programmeerimise, erinevate kontseptsioonide ja tehnoloogiateni, samuti olema kursis.
Järgmine on nimekiri 50 populaarseimast programmeerimisintervjuu küsimusest ja nende vastusest. Need heidavad valgust mitmekesistele kontseptsioonidele, mida iga algaja peab silma paistmiseks teadma.
1. Mis on arvutiprogrammeerimine?
Arvutiprogrammeerimine on arvutis täidetavate loogiliste protsesside kodeerimise protsess. See saavutatakse arvutikeele abil, mis sisaldab vajalikke juhiseid.
Protsessi saab edasi jagada projekteerimiseks, kodeerimiseks, silumiseks ja värskendamiseks.
2. Mis on silumine?
Silumine on arvutiprogrammi tarkvaraallika vigade avastamise ja kõrvaldamise protsess. Selleks on palju meetodeid, kuid enamikul arenduskeskkondadel on asjade lihtsamaks muutmiseks integreeritud silur.
3. Mis on kompilaator?
Kompilaator on tarkvaraprogramm, mis võtab kirjutatud programmi ja muudab selle masinkoodiks, millest arvuti aru saab.
Tüüpiline kompilaatoripakett koosneb aga eelprotsessorist, peamisest kompilaatorist, mis muudab arvutikeele montaažikoodiks, ja assemblerist.
4. Mis on eelprotsessor?
Eelprotsessor on programm, mis analüüsib kirjutatud arvutikoodi, et leida ja rahuldada selle sõltuvusi, näiteks vajalikke teeke.
Kui eelprotsessor on veendunud, et kõik, sealhulgas täitmiskeskkond, on korras, saab kompilaator teisendada koodi koostekoodiks.
5. Mis on Assembler?
Assembler on programm, mis võtab kõige madalamal tasemel inimloetava arvutikoodi, mida nimetatakse assemblerkeeleks, ja muudab selle masinkoodiks, millega arvuti saab töötada.
Assamblee keele väljastab tavaliselt kompilaator, kuigi saab ka otse kodeerida. Koostamisprogramm võib sisaldada sellist koodi nagu:
MOV AH, 02H
aga masinkoodiks kompileerides saad ainult nullid ja ühed (nt 0110011110101010).
6. Kuidas programm töötab?
Esiteks laadib operatsioonisüsteem määratud programmi kõvaketta salvestusruumist süsteemimällu (RAM) ja seejärel lubab sellel käivitada, suunates protsessori jätkama selle täitmist programmi esimeselt mäluaadressilt. CPU täidab mis tahes käsu, mida ta näeb, seejärel liigub järgmise juurde, korrates seda protseduuri sageli miljoneid kordi sekundis.
32-bitised protsessorid täidavad korraga 32-bitiseid (4-baidiseid, kahesõnalisi) käske, 64-bitised protsessorid aga 64-bitisi (8-baidiseid, neljasõnalisi) käske. Need juhised on CPU-sse sisse ehitatud ja just komplekteerija muudab programmeerimiskoodi kahendarvudeks, mis esindavad protsessori loomulikke käsuaadresse.
7. Defineeri a Alamprogramm
Alamprogramm on programmi käskude jada, mida saab igal ajal välja kutsuda ja käivitada. Teisisõnu, alamprogramm võib olla funktsioon, meetod või protseduur, mida kasutatakse konkreetsete ülesannete, näiteks meili saatmise, faili avamise või sisselogimislehe jõhkra sundimise rakendamiseks.
8. Määratlege Masina kood
Masinakood on kahendarvude jada, mis sisaldab konkreetse mikroprotsessori ja sellega seotud mäluaadresside täitmiskäske.
Masinakoodi väljastab traditsiooniliselt monteerija, mis on mõeldud selle konkreetse mikroprotsessorite perekonna jaoks.
9. Selgitage Koostatud ja tõlgitud keeled
Kompileeritud arvutikeel tuleb enne arvutis käivitamist muuta masinkoodiks, samas kui tõlgitud keel ei vaja eelnevat kompileerimist.
Kui käivitate tõlgendatud programmi, töötleb seda esmalt tõlk, mis seejärel selle käigult kompileerib ja käivitab. Need lisatoimingud muudavad tõlgendatavad keeled (nt Python) aeglasemaks kui kompileeritud keeled (nt C.
10. Mis on silmus?
Silmus on koodistruktuur, mis võib korrata konkreetseid avaldusi, kuni on saavutatud määratud kriteerium. See kriteerium võib hõlmata fikseeritud arvu kordusi või määratletud muutuja muutmist.
11. Loetlege populaarsed silmuste tüübid
Erinevad arvutikeeled tõlgendavad silmuseid erineval viisil. Populaarsed C-perekonna ahelatüübid on aga järgmised:
- While() Loop – see võimaldab käivitada kindlat koodi, kui see on Boolean samas () tingimus on täidetud.
Näiteks while(2>1){print("yahoo!")};. - For(;;) Loop – sisaldab kolme väljendit (initsialiseerimine; hindamine; värskendada), mis määratlevad testimise tingimused ja paindliku meetodi loenduse suurendamiseks. Samuti käivitab see koodi vähemalt korra.
- Tee{} While() Loop – seda tüüpi silmus käivitab tee{} koodi vähemalt üks kord, enne kui otsustate, kas samas () tingimus on endiselt tõsi.
12. Selgitage iteratsioon vs Rekursiooni
Iteratsioon on tsükli kasutamine samade koodisammude täitmiseks, samas kui rekursioon on protsess, mille käigus funktsioon kutsub ennast ikka ja jälle. Rekursiooni probleem seisneb aga selles, et mäluprobleemide ilmnemiseni saate jõuda ainult teatud sügavusele.
13. Selgitage töökohti Katkesta ja jätka in A Loop
A murdma lause lõpetab tsükli täitmise ja jätkab ülejäänud arvutikoodi täitmist. A jätkama avaldus seevastu jätkab tsükli itereerimist algusest peale.
14. Mis on OOP?
OOP tähistab objektorienteeritud programmeerimist ja see on programmeerimisparadigma, mis rakendab tarkvara disaini andmete ja objektide, mitte funktsioonide või protseduuride ümber.
15. Mis on protseduuriline programmeerimine?
Protseduuriline programmeerimine on programmeerimisparadigma, mis korraldab arvutikoodi täidetavate käskude jadade või sammude ümber. Nagu nimigi ütleb, on see ülalt-alla lähenemine, mis alustab koodi sündmuste algfaasist ja lõpeb sündmuste eeldatava lõpuga.
16. Selgitage funktsionaalset programmeerimist
Funktsionaalne programmeerimine on arvutiprogrammeerimise paradigma, mis läheneb tarkvaraarendusele, rakendades järjestikuseid funktsioone, mis ei muteeri olekut ega esitatud argumentide andmeid.
Eesmärk on luua tugevamaid programme, mis annavad oodatud tulemusi ilma ettenägematute kõrvalmõjudeta.
17. Selgitage Kõrgetasemeline keel
Kõrgetasemeline programmeerimiskeel on arvutikeel, mis meeldib rohkem inimese arusaamisele kui arvuti eripärale või olemusele.
Kõrgetasemelistest programmeerimiskeeltest, nagu C ja Python, on lihtne aru saada, samas kui madala taseme koostamiskeel võib esmakordsetele kasutajatele väga segadusse ajada.
18. Nimekiri Populaarne Madala tasemega keeled
Madala tasemega programmeerimiskeelt on ainult kaks: montaaži- ja masinkood.
19. Määratlege SQL-i süstimise rünnak
SQL-i süstimisrünnak on protsess, mille käigus sisestatakse SQL-laused sisestusväljadele, näiteks kasutajanime või aadressi sisestused, lootuses, et arendaja ei desinfitseerinud programmeerimise ajal sisendeid korralikult. Ja kui see õnnestub, võimaldab selline rünnak ründajal saada administraatori juurdepääsu serverile.
20. Mis on tabel SQL-is?
SQL-i tabel viitab veergudesse ja ridadesse rühmitatud andmete kogumile. Igal veerul on erinev andmetüüp ja ühes andmebaasis võib olla mitu tabelit. Saate päringuid teha ka mitmest tabelist korraga.
Loote tabeli koos:
CREATE TABLE tabeli_nimi(veerg1 andmetüüp, veerg2 andmetüüp, veerg3 andmetüüp, …);
21. Selgitage objekti ja klassi erinevust
Objekt on klassi eksemplar, klass aga plaan, millest objekt luuakse. Objektil võivad olla olekud ja omadused, nagu värv, kõrgus, kaal, kiirus jne.
Need omadused peavad olema siiski määratletud või lähtestatud vähemalt vaikeväärtustega.
22. Mitu bitti teeb ühe megabaidi?
8,000,000 megabaidis on 1 8 10 bitti, sest üks bait on XNUMX bitti ja üks mega XNUMX6.
23. Määratlege ujuvandmete tüüp
Ujuk on andmetüüp, mis esindab arvu kümnendmurdudega. Seda kasutatakse olukordades, kus on vaja suuremat täpsust kui standardsed täisarvud. Ujuki näide on:
0.013
or
25.932
24. Mida HexaDecimal 0xFF tähistab?
0xFF tähistab kümnendarvu 255 või binaarset 11111111. 0x tähistab baas16 või kuueteistkümnendsüsteemi tähistust, mis jookseb 1-st 9-ni ja jätkub A-st F-ni, mis tähistab 15. Seega on 0xF kümnendkoht 15, 0xFF aga kümnendkoht 255.
25. Nimetage programmeerimise vigade tüübid
Arvutiprogrammis on 3 peamist tüüpi vigu, need on:
- Süntaksi viga
- Loogiline viga
- Runtime Error
26. Mis on süntaksiviga?
Süntaksiviga ilmneb siis, kui esineb kõrvalekalle programmeerimiskeelte sageli rangest süntaksist. See võib tuleneda lihtsast tähtede valesti paigutamisest valedele parameetritele, mis antakse funktsioonile. Enamik kompilaatoreid sisaldab lähtekoodi rea numbrit, kus viga ilmnes.
27. Mis on loogiline viga?
Loogikaviga on viga, mis tuleneb programmi tööviisist. Ehkki programm võib töötada veatult, ei saavuta see oma eesmärki. Loogikavead võivad esineda mitmel viisil ja olla põhjustatud paljudest põhjustest.
28. Mis on käitusaegne viga?
Runtime error on arvutiprogrammi tõrge, mis ilmneb programmi täitmise ajal ja ettenägematute asjaolude tõttu. Ehkki programm töötab laitmatult, võivad näiteks mälu- ja võrguprobleemid põhjustada programmi tõrkeid.
29. Selgitage Tugevad ja nõrgalt trükitud keeled
Tugevalt trükitud keel on oma erinevate andmetüüpide ja nende teisendamise suhtes range, samas kui nõrgalt trükitud keel seab andmetüüpidele ja nende määratlustele vähem piiranguid.
Paljud nõrgalt trükitud keeled teisendavad andmetüübid automaatselt, samas kui tugevasti trükitud keeled nõuavad sageli selgesõnalisi teisendusi.
30. Mis on MVC arhitektuur?
MVC viitab Model-View-Controllerile ja on kasutajaliideste tarkvaraarendusmuster. See jagab programmi loogika kolmeks osaks.
. mudel osa käsitleb kõnealuste objektide aluseks olevat andmeloogikat, samas kui vaadata haldab teabe kuvamist kasutajale ja kontroller haldab andmevoogu vaadete ja mudelite vahel. MVC disaini kasutatakse sageli koos objektorienteeritud programmeerimisega.
31. Defineeri an Algoritm
Algoritm on protseduuride jada, mis on loodud konkreetse probleemi lahendamiseks. Need protseduurid on tavaliselt jaotatud väiksemateks etappideks ja arvuti teeb neid iga kord täpselt nii.
Algoritmi näited hõlmavad näotuvastust, Google'i otsingut, kingade sidumise viisi, andmete kodeerimist või krüptimist jne.
32. Mis on Masinõpe?
Masinõpe ehk ML on tehisintellekti osa, mis keskendub sellele, et aidata süsteemidel andmete tarbimise kaudu mustreid tuvastada ja ise otsuseid teha.
See parandab nende jõudlust või tõhusust. Masinõppesüsteemid võivad olla järelevalve all, järelevalveta ja tugevdamisepõhised.
33. Mis on Regulaaravaldised?
Regulaaravaldis ehk Regex on string, mida kasutatakse tekstidokumentides otsingumustrite määratlemiseks. Erinevad programmeerimiskeeled rakendavad regulaaravaldisi või kasutavad populaarseid regex-teeke. Regulaarne näide teksti kõigi märkide sobitamiseks on järgmine:
(.*)
samas kui järgmine vastab ainult mp3-failidele:
.+\.(mp3)$
34. Mida teeb mooduli (%) operaator?
Mooduli operaator % võtab kaks operandi ja jagab esimese operandi teise abil. Seejärel tagastab see tulemuseks ülejäänud toimingu.
Seda kasutatakse sageli paaritute ja paarisarvude testimiseks, jagades mis tahes täisarvu 2-ga, kus 0 tulemus tähendab paarisarvu ja 1 tähendab paaritut arvu.
35. Selgitage Protsessi hargimine
Harknemine pärineb kahvel () funktsioon Unixi ja Linuxi süsteemides, mida jooksev protsess saab kasutada enda koopia loomiseks. Seega on protsessi kahveldamine protsessi dubleerimine kahe sarnase ja samaaegselt töötava protsessi loomiseks.
Täiendav kahvlitüüp viitab avatud lähtekoodiga projekti lähtekoodi võtmisele ja sellest täiesti uue programmi loomisele.
36. Selgitage Niit Kudemine
Lõimede loomine on protsessi käivitamiseks uue CPU lõime loomine. Arvutusmahukad programmid kasutavad sageli kudemist, et kasutada ära protsessori mitme lõimega ühendamise võimalusi ja selle edu sõltub protsessorist, millel see töötab, kui palju tuumasid sellel on ja kui palju lõime tuuma kohta pakub.
37. Mida teha Reserveeritud sõnad Tähendab?
Reserveeritud sõnad on terminid, mida te ei tohi programmeerimiskeeles identifikaatorina kasutada. See hõlmab funktsioone, muutujaid ja silte. Need on reserveeritud, kuna need on juba määratletud ja neil on konkreetne tähendus.
38. Loetlege populaarsed reserveeritud sõnad
Erinevates keeltes on nende süntaksi põhjal erinevad reserveeritud sõnad. Siin on programmeerimises kõige populaarsemad reserveeritud sõnad:
- IF
- TRUE
- FALSE
- SWITCH
- VEEL
- CASE
- BOOLE
- RETURN
- FUNCTION
- BREAK
- GOTO
39. Mis on string?
String on tähemärkide jada, mida hoitakse sageli massiivis ja mida kasutatakse tekstiandmete määratlemiseks. Kõige populaarsem string on "tere maailm".
40. Mis on muutuja?
Muutuja on mis tahes väärtus, mis võib programmi täitmise ajal muutuda. Muutuja võib olla mis tahes andmetüüpi, sealhulgas stringe ja täisarvu. Näiteks programm lähtestatakse järgmiselt:
int a = 0;
int b = 1;
siis tehakse täitmise ajal muudatusi:
b = a+b; //b on varieerunud
41. Mis on konstant?
Konstant on muutuja, mis programmi täitmise ajal eeldatavasti ei muutu. Hea näide on valguse või heli kiirus. Erinevad programmeerimiskeeled võimaldavad teil konstante erineval viisil määratleda. Näiteks C-s:
const float middle_c = 261.62; //Klaveri keskmine klahv c on 261.6255 Hz
42. Defineerige massiiv
Massiiv on muutuja tüüp, mida kasutatakse korraga mitme väärtuse salvestamiseks. Paljud keeled võimaldavad salvestada ainult sarnaste andmetüüpide väärtusi, samas kui teised keeled saavad käsitleda erinevat tüüpi massiive. Teil võib olla ka mitmemõõtmelisi massiive, mis on massiivid ja võivad muutuda segaseks.
Massiivi määratlemine mql4-s on lihtne:
string TextArray[100]; //sajast stringist koosnev massiiv
43. Mis on Funktsiooni ülekoormus?
Funktsioonide ülekoormamine on meetod, mis võimaldab arendajal määratleda mitu funktsiooni, millel on sama nimi, kuid millel on erinevad funktsioonid. See saavutatakse erinevate funktsioonide erinevate argumentidega versioonide loomisega. Seejärel teab kompilaator esitatud argumentide tüübi ja arvu järgi, millist funktsiooni on vaja.
44. Defineeri a Helista viite teel
Viidekutse on meetod argumentide mäluaadressi edastamiseks funktsioonile, erinevalt argumendi väärtuse koopia edastamise standardmeetodist. Viitekõnede eesmärk on, et funktsioon muudaks argumenti otse.
45. Selgitage Aritmeetikaoperaatorid
Need on erimärgid, mis täidavad programmeerimiskeeles aritmeetilisi toiminguid. Aritmeetilised operaatorid hõlmavad järgmist:
- Lisa- või ühekordne pluss (+)
- Lahutamine või unaarmiinus (-)
- Korrutamine (*)
- Osakond (/)
- Moodul (%).
46. Selgitage loogiline operaatorid
Loogilised operaatorid on sõnad või sümbolid, mida kasutatakse tingimusloogikal põhinevate toimingute sooritamiseks. Enamikul keeltel on ainult kolm loogilist operaatorit:
- JA (&& C-s, C++-s, JavaScriptis)
- OR (|| keeles C, C++, JavaScript)
- EI (! keeles C, C++, JavaScript)
47. Loogiline 1 JA 0 =?
Loogiline tehe 1 JA 0 annab teile vale sest teine operaand on 0 ja positiivse väljundi saamiseks peavad mõlemad AND-operandid olema 1 või TRUE.
48. Loogiline EI 1 =?
Loogiline MITTE 1 toiming annab teile vale kuna operaator NOT eitab kõike, mida te talle annate, mis tähendab, et see muudab 1 0-ks ja 0 1-ks. Seega, kui anda sellele operandi 1 või TRUE, on tulemuseks 0 või FALSE.
49. Loogiline 1 NAND 1 =?
Loogiline 1 NAND 1 toiming loob vale kuna mõlemad operandid on TRUE ja NAND-operaator eitab alati kaks sarnast sisendit, et tekitada vastupidine väljund.
Seega, kui operatsioon oli 0 NAND 0, siis oleks väljund 1 või TRUE.
50. Loogiline 1 XOR 1 =?
Loogiline operatsioon 1 XOR 1 annab tulemuseks vale sest kui tavaline VÕI-tehing annab ühe või mõlema sisendi puhul TÕENE, siis XOR (Exclusive VÕI) toiming annab TÕENE ainult siis, kui ainult üks sisend, mitte teine, on TÕENE.
Järeldus
Oleme jõudnud selle 50 parima programmeerimisintervjuu küsimuse ja nende vastuste loendi lõppu. Ja nagu näete, on programmeerimismaailm tohutu, kuid põnev.
Kaks intervjuud pole ühesugused. Ehkki see loend näitab teile õigeid teemajuhiseid, peaksite proovima ka igast probleemist paremini aru saada.





