Die 50 wichtigsten Fragen und Antworten zu Programmierinterviews

Suchen Sie nach den wichtigsten Programmierfragen und -antworten, die Ihnen helfen, ein Vorstellungsgespräch zu führen? Hier sind die Top 50.

Softwareunternehmen sind immer auf der Suche nach guten Programmiertalenten, wobei Telefon- und Online-Interviews oft in nur wenigen Minuten über Ihr Schicksal entscheiden.

Ein guter Programmierer muss möglichst vielseitig sein – vom Systemverständnis über allgemeines Programmieren, unterschiedliche Konzepte und Technologien bis hin zur Aktualität.

Im Folgenden finden Sie eine Liste mit den 50 wichtigsten Interviewfragen für Programmierer und deren Antworten. Sie werfen ein Licht auf die vielfältigen Konzepte, die jeder Anfänger kennen muss, um sich zu übertreffen.

Inhaltsverzeichnis

1. Was ist Computerprogrammierung?

Computerprogrammierung ist der Prozess der Codierung logischer Prozesse, die von einem Computer ausgeführt werden sollen. Dies wird durch die Verwendung einer Computersprache erreicht, die die notwendigen Anweisungen enthält.

Der Prozess kann weiter in Design, Codierung, Debugging und Aktualisierung unterteilt werden.

2. Was ist Debuggen?

Debugging ist der Prozess des Auffindens und Beseitigens von Fehlern in der Softwarequelle eines Computerprogramms. Es gibt viele Methoden, dies zu tun, aber die meisten Entwicklungsumgebungen verfügen über einen integrierten Debugger, um die Dinge zu vereinfachen.

3. Was ist ein Compiler?

Ein Compiler ist ein Softwareprogramm, das das geschriebene Programm nimmt und es in Maschinencode umwandelt, den ein Computer verstehen kann.

Ein typisches Compilerpaket besteht jedoch aus einem Präprozessor, dem Hauptcompiler, der die Computersprache in Assemblercode umwandelt, und einem Assembler.

4. Was ist ein Präprozessor?

Ein Präprozessor ist ein Programm, das den geschriebenen Computercode analysiert, um seine Abhängigkeiten, wie z. B. benötigte Bibliotheken, zu finden und zu erfüllen.

Nachdem der Präprozessor sichergestellt hat, dass alles, einschließlich der Ausführungsumgebung, in Ordnung ist, kann ein Compiler den Code in Assembler-Code konvertieren.

5. Was ist ein Assembler?

Ein Assembler ist ein Programm, das die niedrigste Ebene des für Menschen lesbaren Computercodes namens Assemblersprache in den Maschinencode umwandelt, mit dem ein Computer arbeiten kann.

Die Assemblersprache wird normalerweise von einem Compiler ausgegeben, obwohl man auch direkt codieren kann. Ein Assembler-Programm kann Code enthalten wie:

MOV AH, 02H

aber wenn Sie es in Maschinencode kompilieren, erhalten Sie nur Nullen und Einsen (z. B. 0110011110101010).

6. Wie wird ein Programm ausgeführt?

Zuerst lädt das Betriebssystem das spezifizierte Programm aus dem Festplattenspeicher in den Systemspeicher (RAM) und erlaubt ihm dann seine Ausführung, indem es die CPU anweist, seine Ausführung von der ersten Speicheradresse des Programms fortzusetzen. Die CPU führt jeden Befehl aus, den sie sieht, und wechselt dann zum nächsten, wobei sie diesen Vorgang oft millionenfach pro Sekunde wiederholt.

32-Bit-CPUs führen 32-Bit-Anweisungen (4 Byte, Doppelwort) auf einmal aus, während 64-Bit-CPUs 64-Bit-Anweisungen (8 Byte, Quad-Wort) auf einmal ausführen. Diese Anweisungen sind in die CPU eingebaut, und es ist der Assembler, der den Programmcode in die Binärzahlen umwandelt, die die nativen CPU-Befehlsadressen darstellen.

7. Definiere a Subroutine

Ein Unterprogramm ist eine Folge von Anweisungen in einem Programm, die jederzeit aufgerufen und ausgeführt werden kann. Mit anderen Worten, eine Subroutine kann eine Funktion, eine Methode oder eine Prozedur sein, die verwendet wird, um bestimmte Aufgaben wie das Senden einer E-Mail, das Öffnen einer Datei oder das Brute-Force einer Anmeldeseite zu implementieren.

8. Definieren Maschinensprache

Maschinencode ist eine Folge von Binärzahlen, die Ausführungsanweisungen eines bestimmten Mikroprozessors und seiner zugehörigen Speicheradressen enthält.

Maschinencode wird traditionell von einem Assembler ausgegeben, der für diese bestimmte Familie von Mikroprozessoren entwickelt wurde.

9. Erklären Sie Kompilierte vs. interpretierte Sprachen

Eine kompilierte Computersprache muss in Maschinencode umgewandelt werden, bevor sie auf einem Computer ausgeführt wird, während eine interpretierte Sprache keine vorherige Kompilierung benötigt.

Wenn Sie ein interpretiertes Programm ausführen, wird es zuerst von einem Interpreter verarbeitet, der es dann kompiliert und im laufenden Betrieb ausführt. Diese zusätzlichen Schritte machen interpretierte Sprachen wie Python langsamer als kompilierte Sprachen wie C.

10. Was ist eine Schleife?

Eine Schleife ist eine Codestruktur, die bestimmte Anweisungen wiederholen kann, bis ein bestimmtes Kriterium erreicht ist. Dieses Kriterium kann eine feste Anzahl von Wiederholungen oder die Änderung einer definierten Größe umfassen.

11. Listen Sie beliebte Arten von Loops auf

Verschiedene Computersprachen interpretieren Schleifen auf unterschiedliche Weise. Zu den beliebten Schleifentypen der C-Familie gehören jedoch:

  1. While-Schleife – Es ermöglicht die Ausführung von spezifischem Code, solange es sich um einen booleschen Wert handelt während() Bedingung ist erfüllt.
    Zum Beispiel while(2>1){print(“yahoo!”)};.
  2. For(;;)-Schleife – enthält drei Ausdrücke (Initialisierung; Auswertung; aktualisieren), die die zu testenden Bedingungen sowie eine flexible Methode zum Erhöhen der Anzahl definieren. Es wird auch Code mindestens einmal ausführen.
  3. Führe {} While()-Schleife aus – Dieser Schleifentyp führt die aus tun{} Code mindestens einmal, bevor Sie feststellen, ob die während() Zustand stimmt noch.

12. Erklären Sie Iteration vs Rekursion

Eine Iteration ist die Verwendung einer Schleife, um dieselben Codeschritte auszuführen, während eine Rekursion der Prozess einer Funktion ist, die sich immer wieder selbst aufruft. Das Problem bei der Rekursion ist jedoch, dass Sie nur bis zu einer bestimmten Tiefe gelangen können, bis Sie auf Speicherprobleme stoßen.

13. Erklären Sie die Jobs von Pause und weiter in einer Schleife

A brechen -Anweisung beendet die Ausführung einer Schleife und fährt mit der Ausführung des restlichen Computercodes fort. EIN fortsetzen -Anweisung hingegen fährt mit der Iteration der Schleife von Anfang an fort.

14. Was ist OOP?

OOP steht für Object Oriented Programming und ist ein Programmierparadigma, das Softwaredesign um Daten und Objekte herum und nicht um Funktionen oder Prozeduren herum implementiert.

15. Was ist prozedurale Programmierung?

Die prozedurale Programmierung ist ein Programmierparadigma, das Computercode um die auszuführenden Sequenzen oder Schritte von Anweisungen herum organisiert. Wie der Name schon sagt, handelt es sich um einen Top-Down-Ansatz, der den Code in der Anfangsphase der Ereignisse beginnt und mit dem erwarteten Ende der Ereignisse endet.

16. Erklären Sie die funktionale Programmierung

Funktionale Programmierung ist ein Paradigma der Computerprogrammierung, das sich der Softwareentwicklung nähert, indem es sequentielle Funktionen anwendet, die weder den Zustand noch die Daten der gelieferten Argumente verändern.

Das Ziel besteht darin, robustere Programme zu erstellen, die die erwarteten Ergebnisse ohne unvorhergesehene Nebenwirkungen erzielen.

17. Erklären Sie Hochsprache

Eine höhere Programmiersprache ist eine Computersprache, die eher das menschliche Verständnis als die Besonderheiten oder Natur des Computers anspricht.

Höhere Programmiersprachen wie C und Python sind leicht zu verstehen, während eine einfache Assemblersprache für Anfänger sehr verwirrend sein kann.

18. Beliebt auflisten Low-Level-Sprachen

Es gibt nur zwei Low-Level-Programmiersprachen: Assembler und Maschinencode.

19. Definieren Sie einen SQL-Injection-Angriff

Ein SQL-Injection-Angriff ist ein Prozess, bei dem SQL-Anweisungen in Eingabefelder wie Benutzernamen oder Adresseingaben eingegeben werden, in der Hoffnung, dass ein Entwickler die Eingaben während der Programmierung nicht ordnungsgemäß bereinigt hat. Und wenn er erfolgreich ist, ermöglicht ein solcher Angriff dem Angreifer, Administratorzugriff auf den Server zu erlangen.

20. Was ist eine Tabelle in SQL?

Eine Tabelle in SQL bezieht sich auf eine Sammlung von Daten, die in Spalten und Zeilen gruppiert sind. Jede Spalte hat einen eigenen Datentyp und Sie können mehrere Tabellen in einer einzigen Datenbank haben. Sie können auch mehr als eine Tabelle gleichzeitig abfragen.

Sie erstellen eine Tabelle mit:

CREATE TABLE Tabellenname(Spalte1 Datentyp, Spalte2 Datentyp, Spalte3 Datentyp, …);

21. Erklären Sie den Unterschied zwischen einem Objekt und einer Klasse

Ein Objekt ist eine Instanz einer Klasse, während eine Klasse eine Blaupause ist, aus der ein Objekt erstellt wird. Ein Objekt kann Zustände und Eigenschaften wie Farbe, Höhe, Gewicht, Geschwindigkeit usw. haben.

Diese Eigenschaften müssen jedoch definiert oder zumindest mit Standardwerten initialisiert werden.

22. Wie viele Bits ergeben ein Megabyte?

Es gibt 8,000,000 Bits in 1 Megabyte, weil ein Byte 8 Bits und ein Megabyte 10 sind6.

23. Definieren Sie einen Float-Datentyp

Ein Float ist ein Datentyp, der eine Zahl mit Dezimalbrüchen darstellt. Es wird in Situationen verwendet, in denen ein höheres Maß an Genauigkeit erforderlich ist, als dies mit Standard-Ganzzahlen möglich ist. Ein Beispiel für einen Schwimmer ist:

0.013 

or 

25.932

24. Wofür steht HexaDecimal 0xFF?

0xFF steht für Dezimal 255 oder Binär 11111111. 0x steht für Base16 oder Hexadezimalschreibweise, die von 1 bis 9 läuft und dann mit A bis F fortgesetzt wird, um 15 darzustellen. 0xF ist also dezimal 15, während 0xFF dezimal 255 ist.

25. Arten von Programmierfehlern benennen

Es gibt 3 Haupttypen von Fehlern in einem Computerprogramm:

  1. Syntax-Fehler
  2. Logischer Fehler
  3. Laufzeitfehler

26. Was ist ein Syntaxfehler?

Ein Syntaxfehler tritt auf, wenn von der oft strengen Syntax von Programmiersprachen abgewichen wird. Es könnte aus der einfachen Fehlplatzierung von Buchstaben zu den falschen Parametern resultieren, die an eine Funktion übergeben werden. Die meisten Compiler geben die Zeilennummer des Quellcodes an, in der der Fehler aufgetreten ist.

27. Was ist ein logischer Fehler?

Ein logischer Fehler ist ein Fehler, der sich aus der Funktionsweise eines Programms ergibt. Während das Programm also fehlerfrei ausgeführt werden kann, erfüllt es seinen Zweck nicht. Logische Fehler können auf viele Arten auftreten und viele Ursachen haben.

28. Was ist ein Laufzeitfehler?

Ein Laufzeitfehler ist ein Computerprogrammfehler, der während der Ausführung des Programms und aufgrund unvorhergesehener Umstände auftritt. Während das Programm beispielsweise einwandfrei funktioniert, können Speicher- und Netzwerkprobleme dazu führen, dass sich das Programm nicht richtig verhält.

29. Erklären Sie Starke vs. schwach typisierte Sprachen

Eine stark typisierte Sprache ist streng in Bezug auf ihre verschiedenen Datentypen und wie Sie sie konvertieren können, während eine schwach typisierte Sprache weniger Einschränkungen für Datentypen und ihre Definitionen auferlegt.

Viele schwach typisierte Sprachen konvertieren Datentypen automatisch, während stark typisierte Sprachen häufig explizite Konvertierungen erfordern.

30. Was ist MVC-Architektur?

MVC bezieht sich auf Model-View-Controller und ist ein Softwareentwicklungsmuster für Benutzeroberflächen. Es trennt die Programmlogik in 3 Teile.

Der Modell Teil behandelt die zugrunde liegende Datenlogik der betreffenden Objekte, während der view behandelt die Anzeige von Informationen für den Benutzer, und die Regler behandelt den Datenfluss zwischen den Ansichten und den Modellen. MVC-Design wird häufig mit objektorientierter Programmierung verwendet.

31. Definiere ein Algorithmus

Ein Algorithmus ist eine Abfolge von Verfahren zur Lösung eines bestimmten Problems. Diese Vorgänge werden normalerweise in kleinere Schritte unterteilt, und der Computer führt sie jedes Mal genau so aus.

Beispiele für Algorithmen sind die Gesichtserkennung, die Google-Suche, die Art und Weise, wie Sie Ihre Schuhe binden, das Kodieren oder Verschlüsseln von Daten und so weiter.

32. Was ist Maschinelles Lernen?

Maschinelles Lernen oder ML ist ein Bereich der künstlichen Intelligenz, der sich darauf konzentriert, Systemen dabei zu helfen, Muster zu erkennen und durch den Verbrauch von Daten selbstständig Entscheidungen zu treffen.

Dies verbessert dann ihre Leistung oder Effizienz. Maschinelle Lernsysteme können überwacht, unüberwacht und auf Verstärkung basieren.

33. Was sind Reguläre Ausdrücke?

Ein regulärer Ausdruck oder Regex ist eine Zeichenfolge, die verwendet wird, um Suchmuster in Textdokumenten zu definieren. Verschiedene Programmiersprachen implementieren reguläre Ausdrücke oder verwenden gängige Regex-Bibliotheken. Ein Beispiel für eine Regex zum Abgleich aller Zeichen in einem Text ist:

(. *)

während das Folgende nur zu MP3-Dateien passt:

.+\.(mp3)$

34. Was macht der Modulus (%)-Operator?

Der Modulo-Operator % nimmt zwei Operanden und dividiert den ersten Operanden durch den zweiten. Als Ergebnis gibt es dann den Rest der Operation zurück.

Es wird oft verwendet, um ungerade und gerade Zahlen zu testen, indem eine beliebige Ganzzahl durch 2 dividiert wird, wobei ein Ergebnis von 0 eine gerade Zahl und 1 eine ungerade Zahl bedeutet.

35. Erklären Sie Prozessverzweigung

Gabelung kommt von der Gabel() Funktion in Unix- und Linux-Systemen, die von einem laufenden Prozess verwendet werden kann, um eine Kopie von sich selbst zu erstellen. Process Forking ist also die Duplizierung eines Prozesses, um zwei ähnliche und gleichzeitig ausgeführte Prozesse zu erstellen.

Eine weitere Art des Forkens bezieht sich darauf, den Quellcode eines Open-Source-Projekts zu nehmen und daraus ein völlig neues Programm zu erstellen.

36. Erklären Sie Thread-Spawning

Beim Thread-Spawning wird ein neuer CPU-Thread erstellt, um einen Prozess auszuführen. Spawning wird häufig von rechenintensiven Programmen verwendet, um die Multithreading-Fähigkeiten eines Prozessors zu nutzen, und sein Erfolg hängt von der CPU ab, auf der er läuft, wie viele Kerne er hat und wie viele Threads pro Kern er bietet.

37. Was tun? Reservierte Wörter Bedeuten?

Reservierte Wörter sind Begriffe, die Sie in einer Programmiersprache nicht als Bezeichner verwenden dürfen. Dazu gehören Funktionen, Variablen und Labels. Sie sind reserviert, weil sie bereits definiert wurden und bestimmte Bedeutungen haben.

38. Listen Sie beliebte reservierte Wörter auf

Unterschiedliche Sprachen haben je nach Syntax unterschiedliche reservierte Wörter. Hier sind die beliebtesten reservierten Wörter beim Programmieren:

  1. IF
  2. TRUE
  3. FALSCH
  4. SWITCH
  5. ELSE
  6. CASE
  7. BOOLEAN
  8. RÜCKKEHR
  9. FUNKTION
  10. BREAK
  11. GOTO

39. Was ist eine Zeichenfolge?

Eine Zeichenfolge ist eine Folge von Zeichen, die häufig in einem Array gespeichert und zur Definition von Textdaten verwendet wird. Die beliebteste Zeichenfolge ist „hello world“.

40. Was ist eine Variable?

Eine Variable ist ein beliebiger Wert, der sich während der Ausführung eines Programms ändern kann. Eine Variable kann einen beliebigen Datentyp haben, einschließlich Zeichenfolgen und Ganzzahlen. Ein Programm wird beispielsweise wie folgt initialisiert:

int a = 0;

intb = 1;

dann werden während der Ausführung Änderungen vorgenommen:

b = a+b; //b hat sich verändert

41. Was ist eine Konstante?

Eine Konstante ist eine Variable, die sich während der Programmausführung voraussichtlich nicht ändert. Ein gutes Beispiel ist die Licht- oder Schallgeschwindigkeit. In verschiedenen Programmiersprachen können Sie Konstanten auf unterschiedliche Weise definieren. Zum Beispiel in C:

const float middle_c = 261.62; //mittlere Taste c auf einem Klavier ist 261.6255 Hz

42. Definieren Sie ein Array

Ein Array ist ein Variablentyp, der verwendet wird, um mehrere Werte gleichzeitig zu speichern. In vielen Sprachen können Sie nur Werte ähnlicher Datentypen speichern, während andere Sprachen Arrays mit anderen Typen verarbeiten können. Sie können auch mehrdimensionale Arrays haben, die Arrays von Arrays sind und unordentlich werden können.

Ein Array in mql4 zu definieren ist einfach mit:

Zeichenfolge TextArray[100]; //ein Array von hundert Strings

43. Was ist Funktionsüberlastung?

Das Überladen von Funktionen ist eine Methode, die es einem Entwickler ermöglicht, mehrere Funktionen zu definieren, die denselben Namen haben, aber unterschiedliche Funktionalitäten haben. Dies wird erreicht, indem die verschiedenen Funktionsversionen mit unterschiedlichen Argumenten erstellt werden. Der Compiler weiß dann anhand des Typs und der Anzahl der gelieferten Argumente, welche Funktion benötigt wird.

44. Definiere a Aufruf nach Referenz

Ein Aufruf per Referenz ist eine Methode, bei der die Speicheradresse von Argumenten an eine Funktion übergeben wird, im Gegensatz zur Standardmethode, bei der eine Kopie des Werts des Arguments übergeben wird. Das Ziel von Referenzaufrufen ist, dass das Argument direkt von der Funktion modifiziert wird.

45. Erklären Sie Rechenzeichen

Dies sind Sonderzeichen, die dazu dienen, arithmetische Operationen in einer Programmiersprache auszuführen. Zu den arithmetischen Operatoren gehören:

  1. Die Addition oder das unäre Plus (+)
  2. Subtraktion oder unäres Minus (-)
  3. Multiplikation (*)
  4. Aufteilung (/)
  5. Modul (%).

46. Erklären Sie Logische Operatoren

Logische Operatoren sind Wörter oder Symbole, die verwendet werden, um Operationen basierend auf bedingter Logik auszuführen. Die meisten Sprachen haben nur 3 logische Operatoren:

  1. UND (&& in C, C++, JavaScript)
  2. OR (|| in C, C++, JavaScript)
  3. NICHT (! in C, C++, JavaScript)

47. Logisch 1 UND 0 =?

Eine logische 1 UND 0-Operation ergibt falsch weil der zweite Operand 0 ist und Sie beide Operanden der UND-Operation 1 oder WAHR sein müssen, um eine positive Ausgabe zu erhalten.

48. Logisch NICHT 1 =?

Eine logische NICHT 1-Operation wird Ihnen geben falsch weil der NOT-Operator alles negiert, was Sie ihm geben, was bedeutet, dass er 1 in 0 und 0 in 1 verwandelt. Wenn Sie ihm also einen 1- oder TRUE-Operanden geben, ergibt sich 0 oder FALSE.

49. Logisch 1 NAND 1 =?

Eine logische 1-NAND-1-Operation wird erzeugt falsch weil beide Operanden WAHR sind und der NAND-Operator immer zwei ähnliche Eingaben negiert, um eine entgegengesetzte Ausgabe zu erzeugen.

Also, wenn die Operation war 0 NAND 0, dann wäre der Ausgang 1 oder TRUE.

50. Logisch 1 XOR 1 =?

Eine logische 1 XOR 1-Operation wird erzeugt falsch denn während eine normale ODER-Operation WAHR erzeugt, wenn einer oder beide Eingänge WAHR sind, erzeugt eine XOR-Operation (exklusives ODER) nur WAHR, wenn nur ein Eingang und nicht der andere WAHR ist.

Fazit

Wir sind am Ende dieser Liste mit den 50 wichtigsten Interviewfragen zum Programmieren und ihren Antworten angelangt. Und wie Sie sehen können, ist die Welt der Programmierung riesig, aber spannend.

Kein Vorstellungsgespräch ist wie das andere. Während diese Liste Sie also in die richtigen Themenrichtungen weist, sollten Sie auch versuchen, ein besseres Verständnis für jedes Problem zu erlangen.

Nnamdi Okeke

Nnamdi Okeke

Nnamdi Okeke ist ein Computer-Enthusiast, der es liebt, eine große Auswahl an Büchern zu lesen. Er hat eine Vorliebe für Linux gegenüber Windows/Mac und verwendet
Ubuntu seit seinen Anfängen. Sie können ihn auf Twitter über sehen Bongotrax

Artikel: 178

Erhalten Sie Technikfreaks

Tech-Trends, Startup-Trends, Rezensionen, Online-Einkommen, Web-Tools und Marketing ein- oder zweimal monatlich

Hinterlasse uns einen Kommentar

E-Mail-Adresse wird nicht veröffentlicht.