Hallo,
- Welche abschlüsse sollte man mitbringen?
Also: In der Programmierung gibt es viele gute Quereinsteiger, ein Abschluss ist also nicht zwingend notwendig, sofern man sich das nötige Wissen selber angeeignet hat.
Ansonsten: Berufsausbildung zum Anwendungsentwickler sofern man später Programmierer werden möchte oder ein Informatik-Studium (egal ob Uni, FH, BA) sofern man Software-Entwickler werden möchte. Es gibt auch viele Software-Entwickler die vorher z.B. Mathematik studiert haben.
Bevor die Frage zu Programmierer/Software-Entwickler auftaucht:
In den vergangenen Zeilen meine ich mit 'Programmierer' entsprechend programmieren nach Vorgaben. Jemand anderes, die Software-Entwickler, entwerfen und planen die Software entsprechend, der Programmierer schreibt dieses in Code, macht Tests, Dokumentation, Pflege etc.
Natürlich kann man mit einem Studium auch Programmierer werden, mit einer Berufsausbildung aber Software-Entwickler/Software-Architekt zu werden ist schwerer.
Bei kleineren Teams bzw. in kleinen Unternehmen gibts eigentlich keine (personelle) Trennung zwischen Entwicklung und Programmierer, da macht dann jeder beides. Dort kann man auch gut mit einer Berufsausbildung hin.
[*] welche Programmiersprachen sind heute wichtig?
Naja praktisch gibt es für jede Programmiersprachen auch noch irgendwelche Firmen die die einsetzen. Selbst sehr alte Sprachen finden heute noch Anwendung, aber meistens primär um alte Applikationen zu pfelgen, deswegen nicht besonders zukunftsrtächtig (wobei manch exotischer Programmierer sehr hohe Gehälter verbuchen kann, da es kaum noch Programmierer für die Sprache gibt aber die Nachfrage nach diesen besteht).
Ansonsten sind die üblich Programmiersprachen heute (nicht unbedingt vollständig):
- Java, insbesondere bei großen Business Applikationen / Enterprise Software, also Software die für größere Unternehmen (>50 Mitarbeiter) gedacht sind und intern genutzt wird. Mit JSF auch Web-Applikationen
- C#/.Net, zunehmend bei Middle Ware Applikationen (ähnlich wie Java), WebServices und normale Windows Clients in Unternehmen, sonst auch auch zunehmend für normale Windows Apps.
- C++, Programme für den Massenmarkt, d.h. Word, Photoshop etc., Server Software, Betriebssysteme & Treiber, sehr hardwarenahe Sachen (Eingebettete Systeme, Router, Switch), oder Programme die eine sehr gute Performance brauchen, z.B. Simulations- & Rechenprogramme, 3D-Animation, Filmbearbeitung etc.
- PHP, Web-Applikationen
- Ruby/Ruby on Rails, Web-Applikationen
[*]welche software sollte man kennen
Für die Software die man sich entschieden hat die jeweilige IDE, für z.B. C# eben Visual Studio, für Java z.B. Eclipse, Netbeans oder IDEA.
Ansonsten ist es für die Programmierung nicht so relevant, welche Software man genau kennen muss. Jedes Unternehmen verwendet eine andere Kombination aus IDE, Qualitäts- & Versionsmanagment, Code Testing etc.
Besser die gänigen Frameworks (sofern vorhanden) für die ausgesuchte Sprache kennen.
Je nachdem in welchen Bereich man möchte. Als Treiber-Entwickler sollte man schon gute Hardwarekenntnisse mitbringen, für normale Software ist es aber nicht wichtig. Gut, die Grundlagen sollte man beherschen, man muss aber nun nicht selber eine ALU entwerfen können.
Wie gesagt, bei der Programmierung ist es oft nicht relevant, welche Sprache man nun wie gut bzw. schlecht kennt, viel wichtiger ist, dass man die Programmierung an sich verstanden hat, also z.B. auch objektorientes Programmieren verstanden hat (dazu reicht es
nicht aus die Schlüsselwörter zu kennen).
Ansonsten gibt es für fast jede Sprache noch Personen die dafür bezahlt werden, der Markt dürfte aber für Java, C#, C++, PHP, Ruby on Rails Programmierer vermutlich deutlich größer sein so dass man dort bessere Wahlmöglichkeiten hat.
Man muss sich eben eine Sprache aussuchen, deren Anwendungsgebiet einem zusagt. Würde man gerne Server (d.h. Datenbankserver, Webserver etc.) oder irgendwelche 3D Animationen (z.B. Spiele) programmieren, fährt man mit C++ bestimmt ganz gut. Ist man eher auf Web-Apps. ambitioniert, ist bestimmt PHP und Ruby on R. keine schlechte Kombination.
Achja, man muss nicht unbedingt der super Experte in einer Sprache sein, je nachdem welchen Job man später bekommen möchte.
Nach einem durchschnittlichen Informatik Studium hat man eigentlich relativ wenig Kenntnisse in Java (verwenden viele im Studium) und noch weniger Kenntnisse (normalerweise gar keine) in den Aspekten von Java die oft nachgefragt werden, nämlich JavaEE (wird eigentlich nur für Enterprise Software benötigt).
Dennoch sind Informatik-Absolventen sehr begehrt und viele machen dann im späteren Job etwas, was sie im Studium nie hatten (z.B. Java EE). Dort wird dann eben erwartet, dass man sich auch schnell in neue Themengebiete einarbeiten kann.
Die IT-Branche, insb. die Softwarebranche, ändert sich so schnell, dass eh vieles in z.B. 5 Jahren wieder veraltet ist und dann ganz anders gemacht wird.
Deswegen sind vorallem diese sonstigen Kompetenzen wichtig (Soft-Skills?), also dass man logisch & abstrakt denken kann, wirklich programmieren kann (also nicht nur Programme schreiben kann) also vernünftige Software, recht unabhänig von der Sprache, entwerfen kann etc.
Deswegen sind auch gerade Mathematiker oft in der Software Branche anzutreffen, da diese durch das Studium gute analytische Fähigkeiten, eine strukturierte Arbeitsweise, logisches und abstraktes Denken erlenen sowie oft die Fähigkeit besitzen komplexe Aufgaben auf einfachere Modell zu reduzieren.
Soetwas zu erlernen ist meines Erachtens deutlich wichtiger als jeden Winkel der API von irgendeiner Sprache zu kennen. Hat man diese Fähigkeit, wird man keine Jobprobleme haben.