PeterLustig
Hallo Peter,
da niemand antwortet, möchte ich dir einige deiner Fragen und Zweifel beantworten.
Ich habe eine Hochschule absolviert und bin seitdem berufstätig, sowohl als Angestellter, als auch freiberuflich.
Ich habe etwa 15 Jahre Berufserfahrung, und ja, überlege ins Ausland zu ziehen (vor allem wegen Gehalt).
Ich empfehle dir, in jedem Falle als Entwickler einzusteigen, nicht direkt als Berater, da dir die ersten Jahre die Praxiserfahrung fehlt, was während Projekten alles schiefläuft, man hat sehr oft mit Legacy-Code, nicht mehr gewarteten Bibliotheken, Deadlines, hirnrissigen Wünschen und Vorgaben zu kämpfen.
Mit diesen umzugehen (klingt jetzt schlimmer als es ist =D ) und in die Beratung / Projektplanung einfließen zu lassen, lernst du mit praktischer Erfahrung.
Bezüglich Programmiersprachen:
Etwas was mit Erfahrung kommt, falls du vom Typ bist, der gern autonom arbeitet und lernt, ist, dass die Sprache an sich zweitrangig ist, im Sinne von, die Hauptaufgabe in der Softwareentwicklung ist die logische Planung des Programms, die Benutzung der Sprache nur die Implementierung dessen was du dir vorher überlegt hast.
Und weil Sprachen und vor allem Bibliotheken und Frameworks kommen und gehen, ist es empfehlenswert, in mehreren Sprachen (nie gleichzeitig, immer eine nach der Anderen) Erfahrung zu sammeln.
Php ist meines Erachtens ein guter Einstieg in die Backendentwicklung, auch wenn es schlampige Programmierung zulässt (du wirst nicht gezwungen, gewisse logische Konstrukte zu basteln, wie zb. in Java, sondern kannst irgendwo einen php-block öffnen und dort reinmatschen, was du willst, du wirst nicht wie in Python gezwungen, den Code schön zu formatieren usw), kann man damit hochskalierbare Webapplikationen schreiben, und du kannst sehr viel auf andere "C-Style" Sprachen übertragen. Es gibt kleinere und größere Unterschiede, jedoch von der Logik her kannst du viel übernehmen (Objektorientierung, Namespaces, den Großteil des Syntaxes usw). Auch kannst du in den letzten Versionen begrenzt mit statischer Typisierung arbeiten.
Der größte Unterschied zu, sagen wir, C/C++ ist natürlich die fehlende manuelle Speicherverwaltung, es gibt keine Zeiger, um Heap/Stack musst du dir keine Sorgen machen, dementsprechend auch nicht um Speicherfehler wie Dangling Pointers / Use after Free und der ganze Krempel, auch wenn ich empfehle mit C oder C++ anzufangen, um zu lernen, wie Speicher verwaltet wird und du dies manuell kontrollieren kannst, aber erste Praxiserfahrung mit Produktionscode ist empfehlenswert in anderen Sprachen, da dort weniger schieflaufen kann.
Ich hoffe, dir einige Infos geliefert zu haben.
LG und alles gute für deine berufliche Zukunft