Ich weiß, dass das ein bisschen vage klingen mag, also werde ich versuchen, es ein bisschen weiter zu erklären ...
Nachdem ich viele Jahre selbstständiger Entwickler war, bin ich jetzt auf der Suche nach einer kommerziellen Webentwickler-Rolle. Meine einzige Erfahrung mit Servern und Hosting ist das Hochladen über FTP und ein wenig Herumspielen mit CPanel / WHM. Die Rollen, die ich anstrebe, sind Webentwicklung, PHP, MySQL, HTML, CSS, aber in den letzten Interviews wurden mir Fragen zum Einrichten von Dingen auf dem Server gestellt, von denen ich keine Ahnung hatte, was gesagt wurde ... was nicht ideal war!
Ohne mehr zu wissen als ich, ist es schwer zu erklären, was genau ich lernen möchte, aber es sind im Grunde nur die Serverelemente, die ich als Webentwickler kennen sollte? Haben Sie als Webentwickler mit dem Server zu tun, abgesehen vom Hochladen von Dateien, und wenn ja, mit was? Sind Dinge wie Subversion (SVN) und Versionskontrollsysteme oft vom Webentwicklungsteam eingerichtet worden? Könnte es das sein, worüber sie gesprochen haben?
quelle
not a very valuable web developer
ist das, was ich zu überwinden versuche, also bin ich froh, es richtig zu lernen. Ich weiß einfach nicht, wie ich dieses Lernen am besten angehen soll und auf welche Bereiche ich mich zuerst konzentrieren soll.Antworten:
Dies ist eine große Reihe von Fragen, aber ich vermute, dass viele Leute sich damit auseinandersetzen müssen, vor allem, wenn sie anfangen, in einer Karriere voranzukommen, die mit einem starken Fokus auf das Front-End begann.
Sie erwähnen, dass Sie sich für eine Rolle entscheiden, die PHP- und MySQL-Entwicklung umfasst. Dies sind Dinge, die auf dem Server ausgeführt werden müssen. Um als Entwickler gute technische Entscheidungen treffen zu können, müssen Sie verstehen, wie diese Dinge auf dem Server funktionieren und wie sie mit dem Web-Front-End interagieren. Sie müssen also unbedingt ein Verständnis für den Server entwickeln.
Anstatt zu versuchen, das genaue Wissen, das Sie möglicherweise über den Server benötigen, im Voraus herauszufinden, würde ich empfehlen, selbst einzutauchen und etwas zu erstellen, einschließlich der Installation der gesamten serverseitigen Software. Eine großartige Möglichkeit, Ihre Füße nass zu machen, besteht darin, Linux auf Ihrem Computer zu installieren. Sie können so etwas wie VirtualBox verwenden, um es neben Ihrem aktuellen Betriebssystem laufen zu lassen. Installieren Sie MySQL, installieren und konfigurieren Sie den Server für PHP und versuchen Sie, alles zusammenzubringen. Das Tolle ist heutzutage, dass ein mäßig gut ausgestatteter Laptop all dies ausführen und der "Server" sein kann.dies am Anfang schwierig sein kann, insbesondere wenn Sie keine Erfahrung mit Linux und der Befehlszeile haben. Als Entwickler sollten Sie mindestens genug wissen, um diese Übung bestehen zu können, und Sie erhalten einen schnellen Einstieg, um herauszufinden, wie Sie Ihr Wissen erweitern können.
Es gibt drei Bereiche, in denen Sie wahrscheinlich auf dem Laufenden bleiben müssen:
Wenn Sie mit Ubuntu arbeiten möchten, können Sie die grundlegenden Anweisungen hier befolgen , um sich in Betrieb zu nehmen. Beachten Sie, dass Sie einige Vorbereitungen für Linux-Grundlagen treffen müssen, bevor Sie mit der Installation und dem Spielen mit den Webservern / Datenbankkomponenten beginnen.
In Bezug auf die Art und Weise, wie Entwickler mit dem Server interagieren müssen, ist dies, abgesehen vom Hochladen von Dateien, von Organisation zu Organisation sehr unterschiedlich.
Der Punkt ist, dass es keine einzige Antwort dafür gibt, wie genau Sie den Server berühren müssen, aber im Laufe Ihrer Karriere wird es sicherlich nicht nur darum gehen, Dateien über so etwas wie FTP hochzuladen. Erste Schritte mit dem Erlernen der Grundlagen werden helfen.
quelle
Mein erster Rat ist, sich nicht ausschließlich auf eine Rolle zu beschränken. Es ist großartig, ein Spezialist zu sein und ein tiefes Wissen über bestimmte Fähigkeiten zu besitzen (zum Beispiel PHP). Genauso wichtig ist es jedoch, ein breites Wissen zu haben, das sich über den Rest Ihrer Domain erstreckt.
Nach meiner Erfahrung suchen die meisten Teams nicht jemanden, der über das Wissen verfügt, die Kernfunktionalität von PHP neu zu schreiben, sondern jemanden, der mit jedem Problem fertig wird, das auf sie zukommt (obwohl dieses Wissen sicherlich nicht schaden würde). Oder zumindest jemand, der helfen kann, Probleme zu lösen, auf die das Team stößt. Stellen Sie sich zum Beispiel eine Situation vor, in der Ihre Anwendung ausfällt und Kunden betroffen sind. Sie können entweder Ihre Hände hochlegen und sagen "Ich habe keine Ahnung, was zu tun ist ..." oder Sie können SSH auf dem Server ausführen, Protokolle scannen, feststellen, dass der Speicherplatz eines bestimmten Dateisystems voll ist, und fortfahren, um es zu bereinigen. Dies ist ein kleines Beispiel, aber ich denke, der Punkt ist klar. Mit diesem Grundwissen, als Entwickler, Sie könnten ein Skript schreiben, das dieses bestimmte Dateisystem überwacht und es bereinigt, sobald es einen bestimmten Schwellenwert erreicht. Sie sind jetzt für Ihren Vorgesetzten um so wertvoller geworden.
Eine andere Sache, die ich in meiner Karriere gelernt habe, ist, dass sich die Dinge schnell entwickeln und wenn Sie nicht mithalten, werden Sie zurückgelassen. Je mehr Sie über Ihre gesamte Umgebung (einschließlich der geschäftlichen Aspekte) wissen, desto besser sind Sie. Das heißt nicht, dass Sie in allem, was Sie tun, ein Experte sein müssen, aber zumindest das Wissen haben müssen, um nicht als ahnungslos eingestuft zu werden. Je vertrauter Sie sind, desto anpassungsfähiger sind Sie und desto wertvoller sind Sie für Ihr Unternehmen.
Um Ihre Fragen gezielt zu beantworten ...
Machen Sie sich mit dem gesamten Anwendungsstapel vertraut. Wissen, welche Webserver, Datenbanken, Caching-Mechanismen usw. verwendet werden. Und welche Versionen auch. Machen Sie sich so vertraut, dass Sie die Umgebung auf Ihrem eigenen Server neu erstellen können. Was an und für sich lebenswichtig ist. Sie sollten mehr oder weniger die gleichen Umgebungen in Entwicklung und Produktion anstreben, um Überraschungen zu vermeiden ( http://12factor.net/dev-prod-parity ).
Das hängt wirklich vom Team ab. In meinem speziellen Fall spielen die Entwickler eine große Rolle bei der Inszenierung der Umgebungen. Wir sind mit der Funktionsweise der Anwendung am besten vertraut und können daher am besten ermitteln, welche Servertechnologien für die Ausführung der Anwendung vorhanden sind. Ich stelle mir vor, dass nicht alle Teams eine solche praktische Herangehensweise haben. Es ist jedoch ein großer Vorteil, über ausreichende Kenntnisse zu verfügen, um sich in die Diskussionen einbringen zu können. Insbesondere in Bezug auf die Versionskontrolle sind Sie als Entwickler stark von der Auswahl der Technologie (Git, Subversion, Mercurial usw.) betroffen und sollten sich daher bemühen, sich in den Entscheidungsprozess einzubeziehen.
Also, was jetzt?
Was meinen Vorschlag betrifft, wie ich am besten vorgehen kann, um all dies zu lernen? Bewegen Sie Ihre Füße . Machen Sie sich keine Sorgen, wenn Sie versuchen, alles zu lesen, was Sie zu diesem Thema können. Das meiste davon wird wahrscheinlich erst dann aus Ihrem Gehirn austreten, wenn Sie fertig sind. Beginnen Sie stattdessen, etwas von Grund auf neu zu entwickeln. Beginnen Sie mit Vagrant ; Auf diese Weise können Sie auf einfache Weise eine virtuelle Maschine erstellen und verwalten, die Sie als neuen Spielplatz verwenden können. Installieren Sie dann einen Webserver und eine Datenbank und beginnen Sie mit der Erstellung. Wenn Sie eine Idee für eine App haben, machen Sie es perfekt. Wenn nicht, finden Sie ein Tutorial oder versuchen Sie, eine vorhandene App neu zu erstellen. Es geht nur darum, sich mit dem gesamten Prozess vertraut zu machen. Als PHP-Entwickler sollten Sie auch unbedingt PHP: The Right Way ausprobieren... es enthält wirklich viele exzellente Infos. Und vor allem: Stress dich nicht aus. Ich stelle mir vor, Sie sind dem Weg eines Entwicklers gefolgt, weil es etwas ist, das Ihnen Spaß macht und an dem Sie leidenschaftlich sind ... verlieren Sie das nicht aus den Augen!
quelle
Konzentration auf Was müssen Sie über Server wissen, um ein Webentwickler zu sein? ...
Eigentlich überraschend wenig. Ihre Hauptkenntnisse sollten Programmierung, HTML, PHP usw. sein.
Was Sie wissen müssen, ist, wie Sie Dinge lokal ausführen und wenn Sie dies tun, verwenden Sie Ihre Box als "Server". Wenn Sie also lokal ausführen, verwenden Sie einen Webbrowser, um die Seiten anzuzeigen, genau wie bei jeder anderen Internetseite ... außer Ihrer
http://localhost
oderhttp://127.0.0.1
Was die Konfiguration von CGI, HTTP usw. angeht, muss man das wohl nicht wissen. Sie können jederzeit ein allgemeines Buch zum Einrichten eines Webservers für das Betriebssystem durcharbeiten, in dem Sie arbeiten. Dies würde ausreichen, um die allgemeinen Bedingungen zu kennen.
Für den größeren Überblick empfehle ich, sich mit Linux vertraut zu machen und zu lernen, wie Maschinen wie Webserver eingerichtet und konfiguriert werden. Aber nur, wenn Sie tatsächlich ein Interesse an dem Zeug haben. Nicht nur um in Interviews zu beeindrucken.
Abschließend würde ich empfehlen, dass Sie in Interviews Notizen zu Bereichen machen, über die Sie nicht genug wissen. Es wäre hilfreich, wenn Ihre Frage genauer wäre, welche Begriffe usw. Sie nicht kennen.
quelle
Sie müssen die folgenden Dinge wissen, um den Webentwicklungszyklus abzuschließen.
1) IDE (Netbeans und Eclipse usw.)
2) Beliebige Programmiersprache für die Codierung. (PHP, Java usw.)
3) Front-Technologie zur Seitengestaltung (HTML, CSS etc.)
4) Gesicherte Datenbank zum Speichern und Abrufen von Daten. (MySQL usw.)
3) Versionskontrollsystem zum Überprüfen und Abrufen Ihres Code-Formular-Repositorys.
4) Build-Tool zum Kompilieren von Code mit abhängigen Dateien. (Ameise, Maven)
6) Webserver zum Bereitstellen und Ausführen von Code.
7) Sie müssen den grundlegenden Bereitstellungsprozess über Server kennen, um Ihre Web- und EJB-Komponente ausführen und testen zu können. (Tomcat, Web-Logic Server)
quelle
Neben der Antwort von DemetriKots möchte ich auch Lösungen für die automatisierte Bereitstellung und die kontinuierliche Integration erläutern. Die anfängliche Einrichtung des Servers ist nur ein Schritt, und die Bereitstellung über FTP ist schmerzhaft und fehleranfällig. Es gibt keine geeignete Lösung für das Zurücksetzen fehlerhafter Bereitstellungen.
quelle