Was muss ein (Web-) Programmierer wirklich alles können? Er wird ja sicher nicht irgendwie seine HTML, CSS und JS schreiben und dann auf einen Webserver ziehen, sondern macht das doch viel professioneller. Was macht man alles genau?
Das kommt sehr auf das Unternehmen an. Im Bereich "Web Developer" gibt es verschiedene Berufsgruppen. Grob unterteilen kann man sie in Frontend Developer, Backend Developer, Full Stack Developer und ggf. DevOps.
Bevor es mit Web Developer spezifischen Fähigkeiten losgeht, solltest du für die professionelle Entwicklung Ahnung von Versionskontrolle haben, in der Regel von git. Als Junior Developer ist das nicht überall zwingend erforderlich, aber in den meisten Firmen wird eben mit git gearbeitet, sodass es durchaus Sinn ergibt,es zu können. Hilfreich ist auch ein Verständnis für git flow, wobei das nicht überall genutzt wird.
Backend Developer entwickeln für Systeme wie Wordpress, TYPO3, Django, Laravel, Node.js oder Drupal Erweiterungen, Inhaltselemente und anderen Programmcode, um (vereinfacht gesagt) die Daten aus verschiedenen Quellen wie einer Datenbank oder einer API-Schnittstelle auszulesen und für die Webseite bereit zu stellen. Bei reinen Backend Developern geht es also nur darum, Daten zur Verfügung zu stellen, die von anderen (nämlich Frontend Developern) weiterverarbeitet werden. Im Idealfall werden diese Daten natürlich so vereinfacht, dass man den Kollegen arbeit erspart - also wird z.B. nur das nötigste bereitgestellt.
Backend Developer nutzen dazu eine Reihe von Programmiersprachen: Je nach verwendetem System nutzen Sie Serverbasierte Programmiersprachen wie PHP (TYPO3, Wordpress, Laravel, Shopware, Magento), Python (Django), Javascript/Typescript (Node.js) oder C# und .NET, manchmal sicher auch Java. Die Programmiersprache allein hilft dir aber nur wenig - wichtig sind die dazugehörigen Frameworks wie z.B. ExtBase (TYPO3), Laravel, Django, Node.js oder ASP.NET (für C#), JSP (für Java).
Grundlagen von Package-Manager Systemen wie composer für PHP oder pip für Python sind i.d.R. auch erwünscht und von Vorteil.
Nur der Vollständigkeit halber: Kein Backend Developer kann ALLES davon. Man spezialisiert sich i.d.R. z.B. auf ein oder wenige Systeme, z.B. TYPO3 oder Laravel und lernt dort die Technologien, die man mit dem System gut nutzen kann.
Backend Developer sollten neben der Programmierung auch Datenbanken beherrschen. In der Regel gibt man relativ wenige SQL Befehle direkt ein und nutzt stattdessen ein Framework oder eine programmiersprache, aber es hilft, zumindest die Grundlagen zu kennen. Dazu zählt i.d.R MySQL/MariaDB oder etwas wie MongoDB.
Frontend Developer sind HTML, CSS und Javascript nur die absoluten Grundlagen. Hier hängt es wieder vom verwendeten System in der Firma ab - Kenntnisse von Template Engines ist hier je nach Firma von Vorteil, im TYPO3 Umfeld wird z.B. die Fluid Engine genutzt, anderswo vllt. Blade, Nunjucks, Jinja u.v.m. Allgemein machst du aber mit Frameworks für Frontend, CSS und Javascript nichts falsch. Dazu zählen Bootstrap und Foundation ebenso wie BEM (kein Framework, wird aber trotzdem benutzt), Tailwind etc. als auch React.js (+Redux), Vue.js (vor allem im Laravel Umfeld) und/oder Angular. Manchmal auch immernoch jQuery. Du solltest als Frontend Entwickler auch Sass und/oder Less können.
Um den Build Prozess zu optimieren, hilft es, wenn du als Frontend Entwickler auch so etwas wie gulp, webpack o.ä. kannst. Das gehört zur professionellen Entwicklung i.d.R. dazu.
Von Full Stack Entwickler erwartet man, dass sie die Eierlegende Wollmilchsau oder die Einhörner der Developer sind, weil sie im Prinzip alle oben genannten Technologien beherrschen sollen. Deshalb hier mal die Eingrenzung: Man muss nicht in jedem Job alles können, sondern eben aus den genannten Technologien die Dinge, die in der Firma gebraucht und eingesetzt werden. Du kannst React, aber kein Vue? Super. Du kannst PHP, aber kein Python? Kein Problem! Als Full Stack brauchst du außerdem i.d.R. nicht so gut in allem zu sein, wie man es von spezialisierten Developern erwartet. Du kannst HTML, CSS, Javascript, PHP und TYPO3, hast aber von React und Laravel nur mal am Rande gehört? Prima, als FullStack ist das erst mal ok. Du kannst dich ja immernoch weiter entwickeln.
Zu guter Letzt gibt es noch die, die streng genommen nicht als Web Developer zählen: Die DevOps. In kleinen und mittleren Agenturen sind sie i.d.R. unterrepräsentiert oder gar nicht vorhanden, daher müssen dort die Entwickler deren Aufgaben leider miterledigen. Dazu zählt Serverkonfiguration, aber noch viel wichtiger: CI/CD (Continuous Integration und Continuous Deployment). In Sachen Server reicht es, wenn du als Entwickler mit Linux umgehen kannst (Terminal/Bash, in kleinen Firmen oft Ubuntu oder Debian, bei größeren Firmen eher RHEL oder ähnliches) und dich in Apache- oder Nginx-Konfigurationen zurechtfindest. Bzgl. CI/CD zählt Docker und/oder vagrant hier noch zu den Grundlagen, die jeder beherrschen sollte. Manche Firmen machen kaum CI/CD, andere haben komplexe Systeme. Am häufigsten wirst du vermutlich auf Systeme wie Kubernetes treffen, AWS, GCP, Ansible, Terraform. Das sind dann aber hoffentlich Systeme, mit denen du als Web Entwickler nicht mehr viel zu tun hast und dich nur bei Interesse einarbeiten kannst, aber nicht musst. Als Junior ist es hier schon viel, wenn du überhaupt die Namen kennst.
Neben den Fähigkeiten für deine Arbeit gibt es noch ein paar Dinge am Rande, die dir im Beruf sehr weiterhelfen werden - hauptsächlich sind das organisatorische Skills:
Scrum und/oder Kanban
Kenntnisse der Software "Jira" und "Confluence" o.ä.
PHPStorm, VSCode etc.
Grundlagen des Datenschutzrechts (DSGVO)
Gitlab
Wenn du fortgeschritten bist, kennst du aufbauend auf all diesen Skills dann zahlreiche weitere Systeme, die du betreuen oder weiterentwickeln kannst:
Matomo
Redis
Elastic Search und/oder SOLR
…. u.v.m.