Heim >Backend-Entwicklung >PHP-Tutorial >Interviewerfahrung von Bruder Fan

Interviewerfahrung von Bruder Fan

WBOY
WBOYOriginal
2016-08-10 08:48:35995Durchsuche
Sinaphp splautoloadfile_get_contentsBeurteile zwei Arrays $a, $b Der Unterschied zwischen tp und SmartyLinux-Befehl zum Anzeigen der von Apache geöffneten PortsDer Unterschied zwischen Apache und Nginx... JingdongSchriftliche Testfrage:
  • Geben Sie die Ganzzahl n ein und finden Sie m, m> ;9, m Das Produkt jeder Ziffer = die kleinste ganze Zahl von n; wie n=36, m=49;
  • Nichtrekursive Implementierung der Vorbestellungsdurchquerung eines Binärbaums (Zusammenfassung dieses Artikels). )
  • Finden Sie die n-te Zahl. Diese Folge erfüllt (2^i)*(3^j)*(5^k) und die ersten 7 sind: 2,3,4,5,6,8 ,10...
  • Im Großen und Ganzen ist es nicht besonders schwierig, mit Ausnahme der dritten zusätzlichen Algorithmusfrage, für deren Beantwortung ich keine Zeit hatte, fühle ich mich bei den anderen beiden und mehreren ziemlich gut. Auswahlfragen
    Eine Seite:
  • Hat PHP mehrere Threads (nein, aber es kann auf andere Weise implementiert werden), wie man PHP versteht
  • Für statische Seitendateien werden sie am NGNIX-Ende oder am Serverende abgelegt (NGNIX verarbeitet die Leistung statischer Seiten mehr als dreimal schneller als Apache, also ist es wird direkt auf ngnix platziert)
  • PHP-Schreibschnittstelle, Kommunikationsmethode, Socket, HTTP-Kommunikationsimplementierung
  • Beide Wie kommunizieren zwei Computer, nachdem der Browser die URL eingegeben hat, bis die Seite gerendert wird? Welche Prozesse durchläuft der Zwischenserver?
  • Welche Aspekte sollten bei der Verwendung von PHP als Client-Schnittstelle beachtet werden (Datenverschlüsselung, JSON-Übertragung usw.)
  • Was sind die Merkmale von Daten im JSON-Format (Sicherheit kann nicht garantiert werden, es handelt sich um eine einheitliche Schlüsselwertverarbeitungsspezifikation für alle Sprachen)
  • Bestätigungscode ist sicher, Google knackt andere Websites
  • Wie wäre es mit der MD5-Inversion, dem Prinzip? der Verschlüsselung und Umkehrung anderer Verschlüsselungsmethoden
  • Das Prinzip des Verifizierungscodes. Das Implementierungsprinzip des Bestätigungscodes: Wenn der Bestätigungscode in der Serversitzung gespeichert wird, wie wird die Richtigkeit des Bestätigungscodes nach der Übermittlung beurteilt, wenn der Server die Verbindung zum Client trennt und dann erneut eine Verbindung herstellt ( im Client Die gleiche Sitzungs-ID wird in den seitlichen js wie auf der Serverseite erstellt und stimmt beim Senden mit der serverseitigen Sitzungs-ID überein)
  • Wie ist der Datenbank-Primärschlüssel zu verstehen, ist es ein Index?
  • Was ist beim Aufbau einer Datenbank zu beachten (Tabellenredundanz, Primärschlüssel, Fremdschlüssel, Indizes, Felder...)
  • Was sind Datenbanktransaktionen
  • Wenn die Reihenfolge vorliegt? platziert, ändern Sie den Status der Bankkarte des Benutzers in den Status „In Verwendung“ und führen Sie dann die nächste Zahlung durch. Was ist zu tun, wenn die Netzwerkverbindung beim Ändern des Bestellstatus plötzlich unterbrochen wird (der Interviewer erwartet die Antwort: Nicht sofort zurücksetzen, sondern Versuchen Sie es hier mehrmals erneut, und wenn es immer noch fehlschlägt, führen Sie einen Rollback durch.)
  • Wenn das Anforderungsvolumen relativ groß ist. Welche Aspekte sollten optimiert werden, um die Leistung zu verbessern (Caching, Seitenstatikisierung, SQL-Optimierung, Tabellenstruktur, horizontal). Aufteilung, vertikale Aufteilung)
  • Gemeinsame Linux-Befehle (Dateioperationsbefehle, VIM-Befehle, Systembefehle)
  • Der Unterschied zwischen Javascript und JQuery
  • Schulaktivitäten, persönliche Persönlichkeit, Arbeit Regionsanpassung, Gehalt usw Datei und wofür wird sie verwendet?
  • Antwort: Nach dem Absturz des Programms werden die letzten Stack-Informationen in der Kerndatei gespeichert, damit Programmierer die letzten Stack-Informationen verstehen können, bevor das Programm abstürzt. Folgende Frage: Wenn das Programm entkernt ist, aber keine Kernabfrage generiert wird, was ist der Grund?

    Antwort: Der Schalter für die Kerndateigenerierung ist nicht aktiviert. ulimit -c unlimit

    Nachverfolgung: Wissen Sie, ob ein Problem mit dem Programm vorliegt und ein Signal generiert wird, ohne die Kerndatei zu verwenden?

    Antwort: Ich war damals verwirrt, aber jetzt, wo ich darüber nachdenke, ist es nur der Kernel, der Signale an den Prozess sendet. Habe nicht geantwortet.

    3. Kann Shared Memory ohne Verwendung der Synchronisierung sicher gelesen und geschrieben werden?

    Antwort: Diese Frage wurde falsch beantwortet und hat irgendwie etwas mit der Abzweigung zu tun. Diese Frage sollte nicht funktionieren. Shared Memory ist ein kritischer Bereich und sollte synchronisiert werden. Andernfalls kommt es zu Problemen, wenn zwei Prozesse gleichzeitig einen Speicherbereich bedienen. Für die Synchronisation können Lese-/Schreibsperren verwendet werden.

    4. Was behält der untergeordnete Prozess vom übergeordneten Prozess?

    Antwort: Der Speicherbereich des untergeordneten Prozesses ist eine Kopie des übergeordneten Prozesses. Der Stapel usw. wird geerbt, ebenso wie offene Dateideskriptoren usw. Tatsächlich gibt es noch viele weitere, wie z. B. die tatsächliche Benutzer-ID, die effektive Benutzer-ID, das aktuelle Arbeitsverzeichnis, die Speicherzuordnung usw.

    5. Gibt es neben der Dateizuordnung noch eine andere Möglichkeit, Speicher freizugeben?

    Antwort: Shared-Memory-Objektzuordnung.

    Folgende Frage: Was ist der Unterschied zwischen den beiden?

    Antwort: Ich weiß es nicht.

    6. Wie implementiert TCP die Flusskontrolle?

    Antwort: Der Peer teilt die Fenstergröße mit. Die vom lokalen Ende übergebene Datenmenge ist kleiner als die Fenstergröße. (Eine bessere Möglichkeit besteht darin, dem Peer die Größe des lokalen Fensters mitzuteilen. Die vom Peer übertragene Datenmenge muss kleiner als das Fenster sein.)

    Folgende Frage: Wie kann ich die Fenstergröße ermitteln?

    Antwort: In der ACK-Nachricht.

    7. Programmierfrage (ich habe es nicht herausgefunden, eh~)

    Frage: Konvertieren Sie eine Dezimalzahl (größer als 2^32), die durch eine sehr lange Zeichenfolge dargestellt wird, in eine hexadezimale Zeichenfolge ?

    Zusammenfassung des Interviews mit Ganji.com

    Interviewkanal: Partner@伟Ran内投techpractice PositionZeitpunkt des Interviews: 14. August um 13:00 Uhr. 30
    Erstes Interview:
    Interviewmethode: 2 zu 1 (technischer Leiter und Front-End-Verantwortlicher)Prozesserzählung: Die gestellten Fragen sind sehr umfangreich, einschließlich PHP, Algorithmusdatenstruktur, Entwurfsmuster, Frontend, Datenbank, Linux usw. Der Inhalt kann Folgendes umfassen:
  • Wenn die Zeichenfolge null ist, der Unterschied zwischen isset und empty
  • Der Unterschied zwischen == und ===
  • Was sind die magischen PHP-Methoden und was sind ihre Funktionen
  • Welche Array-Funktionen haben Sie verwendet?
  • Was sind die gängigen Sortieralgorithmen und Suchalgorithmen? Listen, Heaps und Stacks? Haben Sie sie selbst implementiert oder einfach gelesen?
  • Lassen Sie uns über die beste und schlechteste Zeitkomplexität von Quick Sort (nlogn n quadrat) sprechen
  • Beschreiben Sie kurz das Prinzip von Quick Sortieren. Machen Sie sich am besten vor dem Interview mit der Struktur und der Zeitkomplexität vertraut.
  • Das Prinzip und die Zeitkomplexität der binären Suche (logn) Die erste Antwort war falsch
  • Welche Entwurfsmuster sind Ihnen bekannt, handschriftlich? Ein Entwurfsmuster (ich habe damals ein Singleton geschrieben)
  • Was sind die Indizes in der Datenbank, der Unterschied zwischen Datenbank-Engines (MyIsam und InnoDB)
  • Beschreiben Sie den Unterschied zwischen gemeinsamem Index und Primärschlüssel (der Primärschlüssel wird mit dem Index verwechselt, 囧..)
  • Methoden zur Optimierung von Datenbanktabellen, Vorsichtsmaßnahmen und Prinzipien für die Tabellenerstellung, allgemein Datenbankfeldtypen
  • Was sind SQL-Injections und wie kann man sie effektiv verhindern?
  • Welche Caching-Technologien wurden verwendet? zwischen Cookie und Session
  • Kann Session nach dem Deaktivieren von Cookie noch verwendet werden? >
  • Kennen Sie ngnix, das die gleiche Funktion wie Apache hat?
  • Kennen Sie gängige Apache-Konfigurationen und die Rolle von Rewrite in Apache?
  • Welche Compiler haben Sie dabei verwendet? PHP-Entwicklung (Eclipse, PHPstrom, Zend, General SublimeText)
  • Sind Sie mit Front-End-HTML, CSS, JS vertraut und wissen, welche Front-End-Frameworks Sie verwendet haben
  • Nach dem ersten Interview fragte ich, ob ich Fragen zur technischen Architektur (LNMP) hätte, die im Entwicklungsprozess des Unternehmens verwendet wird. Dann habe ich eine Weile gewartet, da ich das Gefühl hatte, dass die Antworten bis auf den Datenbankaspekt nicht flüssig waren, aber alles andere war in Ordnung. Im Konferenzraum fragte ich mich, was als nächstes passieren würde. Plötzlich kam ein mächtiger Mann mit großer Aura. Das nächste Interview ist etwas nervös...
    Zweites Interview:
    Interview-Methode: 1 zu 1Ablauf Erzählung: Die gestellten Fragen sind sehr tiefgreifend. Ich habe das Gefühl, dass die Projekte, die ich normalerweise mache, zu anwendungsorientiert sind und das zugrunde liegende Wissen relativ fehlt
    Der Inhalt ist wahrscheinlich:
  • Erklärt, warum die Universität ein Fünf-Jahres-System ist (und jedes Mal, wenn ich diese Frage beantworte, muss ich von einer sehr alten, traurigen Vergangenheit ausgehen)
  • Die Kanäle für täglich studieren (I Er sagte, er habe am Anfang die Grundlagen aus Büchern gelernt, und dann sei alles projektorientiert gewesen, und dann hätten die Leute direkt über die Nachteile von projektorientiert gesprochen ...)
  • Das Präfix ganz links Prinzip des Index (ein bisschen vertraut, ich glaube, ich habe es irgendwo gesehen, aber ich kann mich wirklich nicht erinnern)
  • Warum ThinkPHP verwenden und welche Vor- und Nachteile gibt es im Vergleich zum direkten Schreiben von PHP?
  • Haben Sie den TP-Quellcode gelesen?
  • Jetzt, wo Sie thinkphp lernen, erklären Sie bitte den Hook-Mechanismus in TP (ich habe ihn erst gesehen, als die neue Version aktualisiert wurde, daher bin ich nicht vertraut damit bin ich nervös...)
  • Was wird zurückgesetzt? ist CGI und der Unterschied zwischen CGI und FastCGI (ich bin damit leider nicht vertraut, lasst uns in den sauren Apfel beißen)
  • Ich habe dich gerade beim ersten Designmuster gefragt, was ein gemeinsames Muster ist (oh, es gibt so viele). Designmuster, ich bin so nervös, ich kann mich nicht an alle erinnern)
  • Erklären Sie den Namensraum von PHP
  • Welche PHP-Version verwenden Sie normalerweise für die Entwicklung? Was (mir ging es so sofort entspannt, 5,5)
  • Du warst schon einmal Produktmanager, wie verstehst du Produkte und Technologie, willst du Technologie oder Produkt machen (ah, das ist besser, Aufsatzfrage, schau dir meine an)
  • Können Sie der relativ hohen Arbeitsintensität unter der Woche standhalten (natürlich haben wir normale Wochenenden)?
  • Wir haben über einige leichtere Themen gesprochen, aber später wurde mir klar, dass diese Seite absichtlich so war Schwierig, ein Test. Ich schäme mich wirklich dafür, wie tief die Technologie ist. Ich habe plötzlich das Gefühl, dass ich nur sehr wenige Dinge weiß. Tatsächlich waren die Überprüfungsmethoden und Zeitvereinbarungen in letzter Zeit etwas chaotisch Der ganze Staat ist ungestümer und nervöser. Abschließend erwähnte ich kurz, dass das Praktikumsgehalt XXXX war, was relativ niedrig war. Ich sagte, dass es mir nichts ausmache, und sagte dann, wenn bei mir alles in Ordnung sei, würde ich zurückgehen und auf einen Anruf von der Personalabteilung warten.

  • Der Interviewprozess dauerte insgesamt fast zwei Stunden und ich unterhielt mich nach dem Ende noch eine Weile mit meinen Freunden. Ich kam gegen 16 Uhr nach Hause. Ich hatte nicht erwartet, dass der Gang zum Markt sehr effizient war. Kurz nachdem ich nach Hause kam, rief mich eine nette Stimme an sagte, dass ich das Vorstellungsgespräch bestanden und gefragt habe, wann ich mitmachen solle. Eigentlich hatte ich nicht vor, nach dem Vorstellungsgespräch zu arbeiten, um meine Vorstellungsgesprächsfähigkeiten zu verbessern. Ich sagte nur, dass ich erst am nächsten Montag und Mittwoch mit der Arbeit beginnen könnte, damit ich mich ein paar Tage ausruhen kann. Als nächstes reagierte ich auf das Angebot und war mir nicht sicher, ob ich gehen sollte oder nicht. Ich dachte, ich hätte jetzt nichts zu tun, sondern würde einfach zuerst mein Praktikum machen und mich dann weiter auf die Einstellung an einer Schule vorbereiten. Bereiten Sie Onboarding-Materialien vor.
    BaiduSchriftlicher Testfragetyp

    Die schriftlichen Testfragen für technische Positionen bei Baidu werden von jeder Hauptabteilung festgelegt. Daher werden jedes Jahr nach dem schriftlichen Test mehrere Sätze schriftlicher Testfragen im Internet verbreitet.


    Die Inspektionsbereiche umfassen hauptsächlich: 1. Grundanforderungen
    Sprache (hauptsächlich C/C++), Planungsprinzipien, Betriebssystemprinzipien und Computernetzwerke. Wie Zeigerarithmetik, Byteausrichtung, Rahmenstruktur des Funktionsaufrufstapels, Speicherverwaltung, Prozessplanung, siebenschichtiges Netzwerkprotokollmodell usw. Normalerweise in Form von Quizfragen.
    2. Datenstrukturen und Algorithmen
    Suche (typischerweise wie die binäre Suche), Sortierung (typischerweise wie die schnelle Sortierung, äußere Sortierung), Bäume (typischerweise wie die Durchquerung binärer Bäume vor/mittlerer/nach der Ordnung), Trie-Bäume). Wenn Sie ein guter Mensch sind, sagt Ihnen die Frage eindeutig: „Bitte schreiben Sie den Algorithmus-Pseudocode für das Durchlaufen eines Binärbaums in der richtigen Reihenfolge und analysieren Sie die Komplexität.“ Diese Art von Frage ist relativ einfach. Wenn Sie Pech haben, ist das Thema relativ abstrakt, z. B. „Entwerfen Sie bei einer Datei, die Hunderte Millionen Ganzzahlwerte speichert, einen Algorithmus zur Verarbeitung dieser Ganzzahlen unter der Voraussetzung, dass diese Art von Problem xx Raumkomplexität oder xx Zeitkomplexität erfüllt.“ ist relativ schwer zu bewältigen. Daher muss jeder mental vorbereitet sein. In diesem Teil geht es normalerweise um das Schreiben von Algorithmus-Pseudocode.
    3. Frage zum Systemdesign
    Der Text beschreibt ein tatsächliches Geschäftsszenario und erfordert den Entwurf eines Systems, das die xxx-Funktion so schnell und kostengünstig wie möglich realisieren kann.
    Diese Art von Frage ist relativ unterschiedlich. Normalerweise haben die meisten von der Schule rekrutierten Schüler keine Erfahrung mit dieser Art von Designfragen. Grundsätzlich müssen Sie sich auf Ihr eigenes Verständnis des Systems, insbesondere der Prinzipien des Computeraufbaus oder des Betriebssystems, verlassen, um Analogien zu ziehen, sich frei auszudrücken und fundiert und logisch streng zu sein. Der Testpunkt dieser Art von Frage ist normalerweise nicht eine Standardantwort, sondern Ihre Fähigkeit, tatsächliche Probleme zu analysieren.

    So bereiten Sie sich auf die schriftliche Prüfung vor


    Obwohl der Inhalt des schriftlichen Tests normalerweise das im täglichen Leben gesammelte Wissen ist, kann die Bedeutung der „Überraschung vor der Prüfung“ nicht ignoriert werden
    1. C/C++
    Empfohlenes Lehrbuch: C-Programmierung Sprache (erstellt von C-Sprache) Die von Onkel Tan Haoqiang geschriebenen Lehrbücher sind Dutzende von kurzen und prägnanten, C++-Grundlagen und effektivem C++-Computersystem
    Ich weiß nicht, welches Lehrbuch von der Jiaotong-Universität stammt. Das Lehrbuch, das Onkel .Datenstruktur und Algorithmen
    Das in diesem Jahr von der Jiaotong-Universität verwendete Lehrbuch war Professor Yan Weimin von der Tsinghua-Universität „Datenstruktur“ C-Sprachversion
    Bevor er nach einem Job suchte, nutzte mein Onkel dieses Buch auch zur Durchsicht
    Wenn es talentierte Leute gibt, die MITs „Introduction to Algorithms“ oder „Computer Programming“ von Donald E. Knuth „Design Art“ lesen, sollte der Wissenspunkt über Algorithmen natürlich kein großes Problem darstellen
    4. Improvisierte Interviewfragen
    Die Verarbeitung der in den ersten drei Punkten aufgeführten Informationen wird eine gewisse Zeit in Anspruch nehmen. Wenn wir jetzt bei Null anfangen, reicht die Zeit offensichtlich nicht aus. Daher gibt Onkel Xue hier einige Informationen, die als Ausgangspunkt dienen sollen.
    1) „The Beauty of Programming“ Microsoft Technical Interview Experience
    Dieses Buch fasst Dutzende typischer Algorithmusfragen zusammen, die häufig von Internetunternehmen verwendet werden. Im Gegensatz dazu lohnt es sich, den Leitfaden für Programmiererinterviews und ähnliches zu studieren ist einfach ein Durcheinander. . .
    2) csdn blog - Die Methode der Struktur, die Methode des Algorithmus
    Suchen Sie bei Google oder Baidu nach „Methode der Struktur“. Der Blogger dieses Blogs ist ein Meister der Algorithmen. Interessierten Studierenden wird empfohlen, einen Blick auf die Fragen zum Interviewalgorithmus zu werfen.

    Außerdem ist der Sina Weibo-Account dieses Algorithmus-Experten Forscher Juli Er hält derzeit einen Vortrag über Fragen zum Interviewalgorithmus, damit Sie ihm Aufmerksamkeit schenken können.

    Vorbereitung für die Schulrekrutierung
    Schriftlicher Ali-Test: 25. August Schriftlicher Baidu-Test: 27. September oder 12. OktoberTencent-schriftlicher Test: xxx

    "Sword Pointer Offer"

    "Programmer Interview Guide"

    „Big Talk Design Patterns“

    Die ersten fünf Kapitel von „Learning Algorithms from Zero Basics“

    „The Beauty of Programming“

    csdn Blog – The Law of Structure und der Weg der Algorithmen

    "PHP Job Search Guide"

    "C and Pointers"

    "Redis Getting Started Guide"


    Urheberrechtserklärung: Dieser Artikel ist ein Originalartikel des Bloggers und darf nicht ohne die Erlaubnis des Bloggers reproduziert werden.
    Das Obige ist eine Einführung in die Interviewerfahrung von Brother Fan, einschließlich verschiedener Aspekte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

    Stellungnahme:
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn