50 najpomembnejših vprašanj in odgovorov na intervjuju o programiranju, ki jih morate vedeti

Iščete najboljša programska vprašanja in odgovore, ki vam bodo pomagali pri intervjuju? Tukaj je 50 najboljših.

Podjetja, ki se ukvarjajo s programsko opremo, vedno iščejo dobre programerske talente, pri čemer telefonski in spletni razgovori pogosto odločijo o vaši usodi v samo nekaj minutah.

Dober programer mora biti čim bolj vsestranski – od razumevanja sistemov do splošnega programiranja, različnih konceptov in tehnologij, pa tudi biti na tekočem.

Sledi seznam 50 najboljših vprašanj za intervjuje o programiranju in odgovori nanje. Osvetlili so različne koncepte, ki jih mora poznati vsak začetnik, če želi biti uspešen.

Kazalo skrij

1. Kaj je računalniško programiranje?

Računalniško programiranje je postopek kodiranja logičnih procesov, ki naj bi jih izvajal računalnik. To se doseže z uporabo računalniškega jezika, ki vsebuje potrebna navodila.

Postopek lahko nadalje razdelimo na načrtovanje, kodiranje, odpravljanje napak in posodabljanje.

2. Kaj je odpravljanje napak?

Odpravljanje napak je postopek odkrivanja in odpravljanja napak v izvorni programski opremi računalniškega programa. Obstaja veliko načinov za to, vendar ima večina razvojnih okolij integriran razhroščevalnik, ki olajša stvari.

3. Kaj je prevajalnik?

Prevajalnik je programska oprema, ki vzame napisani program in ga spremeni v strojno kodo, ki jo lahko računalnik razume.

Tipičen paket prevajalnika pa je sestavljen iz predprocesorja, glavnega prevajalnika, ki spremeni računalniški jezik v zbirno kodo, in asemblerja.

4. Kaj je predprocesor?

Predprocesor je program, ki analizira napisano računalniško kodo, da poišče in zadovolji njene odvisnosti, kot so potrebne knjižnice.

Ko se predprocesor prepriča, da je vse, vključno z izvajalnim okoljem, v redu, lahko prevajalnik pretvori kodo v zbirno kodo.

5. Kaj je asembler?

Asembler je program, ki sprejme najnižjo raven človeku berljive računalniške kode, imenovane zbirni jezik, in jo spremeni v strojno kodo, s katero lahko računalnik dela.

Zbiralni jezik običajno izpiše prevajalnik, čeprav lahko kodira tudi neposredno. Program za sestavljanje lahko vključuje kodo, kot je:

MOV AH, 02H

ko pa ga prevedete v strojno kodo, dobite samo ničle in enice (npr. 0110011110101010).

6. Kako se program izvaja?

Najprej operacijski sistem naloži določen program iz pomnilnika trdega diska v sistemski pomnilnik (RAM) in mu nato dovoli izvedbo tako, da CPE-ju naroči, naj nadaljuje z izvajanjem s prvega pomnilniškega naslova programa. CPE izvede kateri koli ukaz, ki ga vidi, nato se premakne na naslednjega, pri čemer ta postopek pogosto ponovi milijonkrat na sekundo.

32-bitni procesorji sproti izvajajo 32-bitna (4-bajtna, dvobesedna) navodila, medtem ko 64-bitni procesorji sproti izvajajo 64-bitna (8-bajtna, štiribesedna) navodila. Ta navodila so vgrajena v CPE in asembler je tisti, ki pretvori programsko kodo v binarna števila, ki predstavljajo izvorne naslove ukazov CPE.

7. Določite a Podprogram

Podprogram je zaporedje navodil v programu, ki ga je mogoče kadar koli priklicati in izvesti. Z drugimi besedami, podprogram je lahko funkcija, metoda ali postopek, ki se uporablja za izvajanje določenih nalog, kot je pošiljanje e-pošte, odpiranje datoteke ali vsiljevanje strani za prijavo.

8. Določite Strojna koda

Strojna koda je zaporedje binarnih števil, ki vsebuje navodila za izvajanje določenega mikroprocesorja in z njim povezane pomnilniške naslove.

Strojno kodo običajno izpiše asembler, ki je zasnovan za določeno družino mikroprocesorjev.

9. Pojasnite Prevedeni proti interpretiranim jezikom

Prevedeni računalniški jezik je treba pretvoriti v strojno kodo, preden se izvede v računalniku, medtem ko interpretirani jezik ne potrebuje predhodnega prevajanja.

Ko izvedete interpretiran program, ga najprej obdela tolmač, ki ga nato sproti prevede in izvede. Zaradi teh dodatnih korakov so interpretirani jeziki, kot je Python, počasnejši od prevedenih jezikov, kot je C.

10. Kaj je zanka?

Zanka je struktura kode, ki lahko ponavlja določene stavke, dokler ni doseženo določeno merilo. Ta kriterij lahko vključuje fiksno število ponovitev ali spremembo definirane spremenljivke.

11. Naštejte priljubljene vrste zank

Različni računalniški jeziki bodo zanke interpretirali na različne načine. Priljubljene vrste zank družine C pa vključujejo:

  1. Medtem ko() zanka – omogoča izvajanje določene kode, če je logična vrednost medtem ko() pogoj je izpolnjen.
    Na primer: while(2>1){print("yahoo!")};.
  2. Za(;;) Loop – vsebuje tri izraze (inicializacija; vrednotenje; posodobitev), ki opredeljujejo pogoje za testiranje, kot tudi prilagodljivo metodo za povečanje števila. Prav tako bo vsaj enkrat izvedel kodo.
  3. Zanka Do{} While(). – ta vrsta zanke izvaja narediti {} kodo vsaj enkrat, preden ugotovite, ali je medtem ko() pogoj še vedno drži.

12. Pojasnite ponovitev vs Rekurzija

Iteracija je uporaba zanke za izvajanje istih korakov kode, medtem ko je rekurzija postopek, pri katerem se funkcija znova in znova kliče. Težava z rekurzijo pa je, da lahko pridete le do določene globine, dokler ne naletite na težave s pomnilnikom.

13. Pojasnite Jobs of Prekini in nadaljuj v A Loop

A odmor stavek konča izvajanje zanke in nadaljuje z izvajanjem preostale računalniške kode. A naprej na drugi strani pa nadaljuje s ponavljanjem zanke od začetka.

14. Kaj je OOP?

OOP pomeni objektno usmerjeno programiranje in je programska paradigma, ki načrtovanje programske opreme izvaja okoli podatkov in objektov, ne pa okoli funkcij ali postopkov.

15. Kaj je proceduralno programiranje?

Proceduralno programiranje je paradigma programiranja, ki organizira računalniško kodo okoli zaporedij ali korakov navodil, ki jih je treba izvesti. Kot že ime pove, gre za pristop od zgoraj navzdol, ki začne kodo od začetne faze dogodkov in konča s pričakovanim koncem dogodkov.

16. Razložite funkcionalno programiranje

Funkcionalno programiranje je paradigma računalniškega programiranja, ki pristopa k razvoju programske opreme z uporabo zaporednih funkcij, ki ne spremenijo niti stanja niti podatkov podanih argumentov.

Cilj je ustvariti robustnejše programe, ki dajejo pričakovane rezultate brez nepredvidenih stranskih učinkov.

17. Pojasnite Jezik na visoki ravni

Programski jezik na visoki ravni je računalniški jezik, ki je bolj všeč človeškemu razumevanju kot posebnostim ali naravi računalnika.

Visokonivojski programski jeziki, kot sta C in Python, so lahko razumljivi, nizkonivojski zbirni jezik pa lahko zelo zmede začetnike.

18. Seznam priljubljenih Jeziki nizke ravni

Obstajata samo dva nizkonivojska programska jezika: sestavljanje in strojna koda.

19. Definirajte napad z vbrizgavanjem SQL

Napad z vbrizgavanjem SQL je postopek vnašanja stavkov SQL v vnosna polja, kot so vnosi uporabniškega imena ali naslova, v upanju, da razvijalec med programiranjem ni pravilno očistil vnosov. In ko je uspešen, takšen napad omogoči napadalcu pridobitev skrbniškega dostopa do strežnika.

20. Kaj je tabela v SQL?

Tabela v SQL se nanaša na zbirko podatkov, ki so združeni v stolpce in vrstice. Vsak stolpec ima ločen podatkovni tip in v eni zbirki podatkov lahko imate več tabel. Poizvedujete lahko tudi po več kot eni tabeli hkrati.

Ustvarite tabelo z:

CREATE TABLE table_name(podatkovni tip stolpca1, podatkovni tip stolpca2, podatkovni tip stolpca3, …);

21. Pojasnite razliko med objektom in razredom

Objekt je primerek razreda, medtem ko je razred načrt, iz katerega je predmet ustvarjen. Objekt ima lahko stanja in lastnosti, kot so barva, višina, teža, hitrost itd.

Te lastnosti je treba definirati ali inicializirati vsaj s privzetimi vrednostmi.

22. Koliko bitov sestavlja en megabajt?

V 8,000,000 megabajtu je 1 bitov, ker je en bajt 8 bitov in en mega 106.

23. Definirajte podatkovni tip Float

Plavajoči je podatkovni tip, ki predstavlja število z decimalnimi ulomki. Uporablja se v primerih, ko je potrebna višja raven natančnosti od tiste, ki jo lahko zagotovijo standardna cela števila. Primer plovca je:

0.013 

or 

25.932

24. Kaj pomeni HexaDecimal 0xFF?

0xFF pomeni decimalno 255 ali binarno 11111111. 0x pomeni base16 ali heksadecimalni zapis, ki poteka od 1 do 9 in se nato nadaljuje z A do F, da predstavlja 15. Torej je 0xF decimalno 15, medtem ko je 0xFF decimalno 255.

25. Poimenujte vrste napak pri programiranju

V računalniškem programu obstajajo 3 glavne vrste napak:

  1. Sintaksna napaka
  2. Logična napaka
  3. Napaka med izvajanjem

26. Kaj je sintaksna napaka?

Do sintaksne napake pride, ko pride do odstopanja od pogosto stroge sintakse programskih jezikov. To je lahko posledica preproste napačne postavitve črk na napačne parametre, ki se posredujejo funkciji. Večina prevajalnikov bo vključila številko vrstice izvorne kode, kjer je prišlo do napake.

27. Kaj je logična napaka?

Logična napaka je napaka, ki izhaja iz načina delovanja programa. Torej, čeprav se program morda izvaja brezhibno, ne doseže svojega namena. Logične napake se lahko pojavijo na različne načine in so posledica številnih razlogov.

28. Kaj je napaka med izvajanjem?

Napaka med izvajanjem je napaka računalniškega programa, ki se pojavi med izvajanjem programa in zaradi nepredvidenih okoliščin. Torej, čeprav program deluje brezhibno, lahko na primer težave s pomnilnikom in omrežjem povzročijo, da se program ne obnaša pravilno.

29. Pojasnite Močni vs šibko tipizirani jeziki

Strogo tipiziran jezik je strog glede različnih tipov podatkov in načina, kako jih lahko pretvorite, medtem ko šibko tipiziran jezik postavlja manj omejitev glede tipov podatkov in njihovih definicij.

Številni šibko tipizirani jeziki samodejno pretvorijo tipe podatkov, medtem ko močno tipizirani jeziki pogosto zahtevajo eksplicitne pretvorbe.

30. Kaj je MVC arhitektura?

MVC se nanaša na Model-View-Controller in je vzorec razvoja programske opreme za uporabniške vmesnike. Programsko logiko loči na 3 dele.

Naš Model del obravnava temeljno podatkovno logiko zadevnih predmetov, medtem ko Vstopi v svet udobja skrbi za prikaz informacij uporabniku in krmilnik obravnava pretok podatkov med pogledi in modeli. Zasnova MVC se pogosto uporablja pri objektno usmerjenem programiranju.

31. Določite an Algoritem

Algoritem je zaporedje postopkov, namenjenih reševanju določenega problema. Ti postopki so običajno razdeljeni na manjše korake in računalnik jih vsakič izvede točno tako.

Primeri algoritmov vključujejo prepoznavanje obraza, iskanje Google, način zavezovanja čevljev, kodiranje ali šifriranje podatkov itd.

32. Kaj je Strojno učenje?

Strojno učenje ali ML je del umetne inteligence, ki se osredotoča na pomoč sistemom pri prepoznavanju vzorcev in samostojnem sprejemanju odločitev s pomočjo porabe podatkov.

To nato izboljša njihovo delovanje ali učinkovitost. Sistemi strojnega učenja so lahko nadzorovani, nenadzorovani in temeljijo na okrepitvi.

33. Kaj so Regularni izrazi?

Regularni izraz ali regularni izraz je niz, ki se uporablja za definiranje iskalnih vzorcev v besedilnih dokumentih. Različni programski jeziki izvajajo regularne izraze ali uporabljajo priljubljene knjižnice regularnih izrazov. Primer regularnega izraza za ujemanje z vsemi znaki v besedilu je:

(.*)

medtem ko se naslednje ujema samo z datotekami mp3:

.+\.(mp3)$

34. Kaj počne operater modula (%)?

Operator modula % vzame dva operanda in prvega operanda deli z drugim. Nato kot rezultat vrne preostanek operacije.

Pogosto se uporablja za testiranje lihih in sodih števil z deljenjem katerega koli celega števila z 2, pri čemer rezultat 0 pomeni sodo število, 1 pa liho število.

35. Pojasnite Proces Forking

Forking prihaja iz vilice () funkcija v sistemih Unix in Linux, ki jo lahko uporablja tekoč proces za ustvarjanje kopije samega sebe. Razcepitev procesa je torej podvajanje procesa za ustvarjanje dveh podobnih in istočasno izvajajočih se procesov.

Dodatna vrsta razcepitve se nanaša na prevzem izvorne kode odprtokodnega projekta in ustvarjanje popolnoma novega programa iz nje.

36. Pojasnite Drstenje niti

Drstenje niti je postopek ustvarjanja nove niti CPE za izvajanje procesa. Drstenje pogosto uporabljajo računalniško intenzivni programi za izkoriščanje večnitnih zmožnosti procesorja, njegov uspeh pa je odvisen od procesorja, na katerem deluje, koliko jeder ima in koliko niti na jedro ponuja.

37. Kaj storiti Rezervirane besede Pomeni?

Rezervirane besede so izrazi, ki jih v programskem jeziku ne smete uporabljati kot identifikator. To vključuje funkcije, spremenljivke in oznake. Pridržani so, ker so že definirani in imajo posebne pomene.

38. Seznam priljubljenih rezerviranih besed

Različni jeziki imajo različne rezervirane besede glede na njihovo sintakso. Tukaj so najbolj priljubljene rezervirane besede v programiranju:

  1. IF
  2. TRUE
  3. FALSE
  4. SWITCH
  5. ŠE
  6. ZADEVA
  7. BOOLEAN
  8. NAZAJ
  9. FUNKCIJA
  10. BREAK
  11. GOTO

39. Kaj je niz?

Niz je zaporedje znakov, ki se pogosto hrani v matriki in se uporablja za definiranje besedilnih podatkov. Najbolj priljubljen niz je "hello world".

40. Kaj je spremenljivka?

Spremenljivka je katera koli vrednost, ki se lahko spremeni med izvajanjem programa. Spremenljivka je lahko katere koli vrste podatkov, vključno z nizi in celimi števili. Na primer, program se inicializira, kot je prikazano spodaj:

int a = 0;

int b = 1;

potem se med izvajanjem izvedejo spremembe:

b = a+b; //b se je spreminjal

41. Kaj je konstanta?

Konstanta je spremenljivka, za katero se ne pričakuje, da se bo spremenila med izvajanjem programa. Dober primer je hitrost svetlobe ali zvoka. Različni programski jeziki vam omogočajo definiranje konstant na različne načine. Na primer v C:

const float middle_c = 261.62; //srednja tipka c na klavirju je 261.6255 Hz

42. Definirajte matriko

Matrika je vrsta spremenljivke, ki se uporablja za shranjevanje več vrednosti hkrati. Številni jeziki vam omogočajo shranjevanje samo vrednosti podobnih tipov podatkov, medtem ko lahko drugi jeziki obravnavajo polja z različnimi tipi. Imate lahko tudi večdimenzionalne nize, ki so nizi nizov in lahko postanejo neurejeni.

Definiranje matrike v mql4 je preprosto z:

niz TextArray[100]; //matrika stotih nizov

43. Kaj je Preobremenitev funkcij?

Preobremenitev funkcij je metoda, ki omogoča razvijalcu, da definira več funkcij, ki imajo isto ime, vendar imajo različne funkcionalnosti. To se doseže z ustvarjanjem različnih različic funkcij z različnimi argumenti. Prevajalnik nato glede na vrsto in število posredovanih argumentov ve, katera funkcija je potrebna.

44. Določite a Klic z referenco

Klic s sklicem je metoda posredovanja pomnilniškega naslova argumentov funkciji, v nasprotju s standardno metodo posredovanja kopije vrednosti argumenta. Cilj referenčnih klicev je, da funkcija neposredno spremeni argument.

45. Pojasnite Aritmetični operaterji

To so posebni znaki, ki služijo za izvajanje aritmetičnih operacij v programskem jeziku. Aritmetični operaterji vključujejo:

  1. Dodatek ali unarni plus (+)
  2. Odštevanje ali unarni minus (-)
  3. Množenje (*)
  4. Divizija (/)
  5. Modul (%).

46. Pojasnite logične Izvajalci

Logični operatorji so besede ali simboli, ki se uporabljajo za izvajanje operacij na podlagi pogojne logike. Večina jezikov ima samo 3 logične operatorje:

  1. IN (&& v C, C++, JavaScript)
  2. OR (|| v C, C++, JavaScript)
  3. NE (! v C, C++, JavaScript)

47. Logično 1 IN 0 =?

Logična operacija 1 IN 0 vam bo dala false ker je drugi operand 0 in morate imeti oba operanda operacije IN 1 ali TRUE, da dobite pozitiven rezultat.

48. Logično NE 1 =?

Logična operacija NOT 1 vam bo dala false ker operator NOT zanika vse, kar mu podate, kar pomeni, da spremeni 1 v 0 in 0 v 1. Če mu torej podate operand 1 ali TRUE, je rezultat 0 ali FALSE.

49. Logični 1 NAND 1 =?

Proizvedena bo logična operacija 1 NAND 1 false ker sta oba operanda TRUE in operater NAND vedno zanika dva podobna vhoda, da proizvede nasproten izhod.

Torej, če je bila operacija 0 NAND 0, potem bi bil rezultat 1 ali TRUE.

50. Logično 1 XOR 1 =?

Proizvedena bo logična operacija 1 XOR 1 false ker medtem ko bo običajna operacija ALI proizvedla TRUE na enem ali obeh vhodih, ki sta TRUE, operacija XOR (izključni ALI) proizvede TRUE le, če je TRUE le en vhod in ne drugi.

zaključek

Prišli smo do konca tega seznama 50 najpomembnejših vprašanj za razgovor o programiranju, ki jih morate vedeti, in odgovorov nanje. In kot lahko vidite, je svet programiranja ogromen, a vznemirljiv.

Niti dva intervjuja nista enaka. Torej, medtem ko vas ta seznam usmerja v pravo temo, poskusite tudi bolje razumeti vsako težavo.

Nnamdi Okeke

Nnamdi Okeke

Nnamdi Okeke je računalniški navdušenec, ki rad bere široko paleto knjig. Raje uporablja Linux pred Windows/Macom in ga uporablja
Ubuntu že od prvih dni. Ujamete ga lahko na twitterju prek bongotrax

Članki: 299

Prejmite tehnične stvari

Tehnološki trendi, startup trendi, ocene, spletni dohodek, spletna orodja in trženje enkrat ali dvakrat mesečno