Wie weiterentwickeln in der Softwareentwicklung?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Ja, willkommen in der Realität ;)

Nicht böse gemeint, ist aber einfach so: Im "reinen" Studium lernst Du das nicht.
Wenn Du Programmierung und später Softwareentwicklung lernen willst, musst Du das selber lernen, auf eigene Kosten in deiner Freizeit. Oder Du suchst dir andere Wege, ggf. mit anderen Studenten zusammen ein gemeinsames Projekt.

Das mit Abstand wichtigste ist Erfahrung, Erfahrung, Erfahrung und Erfahrung.
Also eigene Projekte entwickeln, eigene Ideen, Fehler, etc. machen und daraus lernen.
Das kann dir aber kein Studium beibringen und sowas wie Framework-Kenntnisse auch nicht, da das alles meistens ziemlich schnell im Fluss ist und sich ständig ändert.

Das ist aber auch nicht schlimm, denn der Job ist genau so: Ständig musst Du was neues lernen, tust Du das nicht, bleibst Du auf der Strecke. Wenn Du Glück hast, arbeitest Du in einer Firma an einem Projekt, wo Du dich in eine spannende Technologie während der Arbeitszeit einarbeiten kannst, oder die Firma bietet dafür explizit "Frei"zeit an - Letzteres habe ich aber noch nie gesehen. Viel wahrscheinlicher ist, dass die Firmen auf irgendeinem älteren Stand hängen (paar Monate bis Jahrzehnte) und wenn Du aktuelle Technologien lernen willst, in deiner Freizeit lernen oder den Arbeitgeber wechseln musst. Das heißt, insofern lernst Du jetzt eine sehr wichtige Lektion: Ständiges Lernen nebenbei ist essenziell, um gut zu werden und zu bleiben.

Wie Du das jetzt am besten machst ... gute Frage. Du wirst wohl deine Freizeit opfern, oder Du gehst auf eine Firma explizit zu und verkaufst nicht dein Studium (das interessiert die nur peripher), sondern dein Interesse an der Thematik, deine Lernbereitschaft und dein Potential (und warum). Viele Firmen schauen zwar auf die blanken Qualifikationen, sie schauen aber auch, ob es da ggf. verstecktes Potential zu finden ist. Es gibt nur wenige gute Entwickler, wenn sie also glauben, dass Du den initialen Aufwand wert bist und mit ihrer Anleitung genau das werden kannst, was sie suchen, dann hast Du deutlich bessere Chancen. Natürlich darfst Du keine riesigen Gehälter erwarten, stapel also lieber zu tief, als zu hoch.

Ansonsten kannst Du auch zusätzlich noch eine Ausbildung hinter schieben, das wäre dann das Optimum: Theorie aus dem Stuidium + Praxis aus der Ausbildung. In der Ausbildung lernst Du auch kein Programmieren, aber Du lernst wie der Beruf funktioniert, Du hast mehr Zeit für eigene Projekte (z.B. in der Berufsschule - die ist Pillepalle) und Du hast Kollegen mit jahrelanger Praxis, die dir Tipps geben und deutlich mehr relevantes KnowHow haben, als Du im Studium je zu Gesicht bekommen wirst.
Ich würde zwar sagen, dass erst Ausbildung und dann Studium besser wäre, aber hinterher wird das vermutlich eher zweitrangig sind, womit Du begonnen hast.

Das sage by the way nicht nur ich, die Aussage, dass Ausbildung+Studium das Optimum eines Berufseinsteigers ist, habe ich von Personalverantwortlichen, Firmen und Beratern gehört. Das tiefe theoretische Wissen aus dem Studium + die praktische Erfahrung aus der Ausbildung.

Du darfst danach dann nur nicht mit der Einstellung "ich kann jetzt alles" in den ersten Job gehen, denn nein: Kannst Du nicht ;) Nach der Ausbildung kannst Du gerademal so viel, dass Du zumindest handlungsfähig bist.

Aber das ist alles normal, der Job ist kompliziert und schwer und das wissen die Firmen auch. Wichtig ist, dass Du dein Geld wert bist oder zeitnah wert sein wirst und dass Du kontinuierlich besser wirst und dich permanent weiterentwickelst.

denn ich hasse es, stumpf und chronologisch Theorie zu lernen

Ich glaube, ich habe in meiner ganzen Laufbahn noch nie stumpf chronologische Theorie gelernt :D Und mir geht's da wie dir: Ich hasse es.

Ich lerne meistens, indem ich fremden Code lese und hinterfrage, in Foren mit lese und ggf. helfe, Blog-Artikel lese und - ganz wichtig - eigene Ideen ausprobiere und technisch experimentiere.

Die Basics von Java habe ich ja mittlerweile drauf. Ein bisschen Python kann ich auch.

Vorsicht: Niemand interessiert sich für Java *und* Python. Die meisten Firmen/Projekte vordern eines von beiden, ggf. noch ein Web-Frontend und SQL, aber selten Java *und* Python.

Es bringt dich also nicht weiter, beides ein bisschen zu lernen, stattdessen solltest Du dir eine Sprache suchen und damit richtig gut werden. Es kann natürlich trotzdem helfen, andere Sprachen zu lernen, aber glaube nicht, dass dir das beruflich irgendetwas bringt, außer dass Du etwas über den Tellerrand hinaus schauen kannst.

Die Firmen haben in der Regel genug Leute, die die Basics kennen, aber die Leute, die wirklich ins Detail gehen können und dann in aller Regel den weniger stark aufgestellten Kollegen quasi als "Backup" dienen und "den Karren aus dem Dreck ziehen" können, die sind selten. Das heißt natürlich nicht, dass Du jetzt alles andere weg werfen sollst, stattdessen solltest Du dich aber auf eine Richtung fokussieren und der Rest läuft wie so eine Art Allgemeinwissen nebenbei mit, damit Du es mal gesehen/gehört und ggf. andere Lösungswege gelernt hast.

Woher ich das weiß:Berufserfahrung – C#.NET Senior Softwareentwickler
verreisterNutzer  22.02.2024, 01:34

Danke für deine ausführliche Antwort. Das hilft mir echt weiter. Manchmal denke ich mir, ich hätte vielleicht doch (erst) die Ausbildung zum AW machen sollen und dann eventuell das Studium.

0
Lamanini  22.02.2024, 14:08
@verreisterNutzer

Es gibt auch das duale Studium und als Werkstudent lernt man auch einen Haufen auf der Arbeit.

1
Lamanini  22.02.2024, 14:26
@verreisterNutzer

Viele nehmen einen erst ab so dem 3. Semester. Das ist auch der Weg, den ganz viele andere Studenten genommen haben, und aus denen gute Softwareentwickler wurden. Und das hat bei denen auch geklappt. Da würd ich mich nicht entmutigen lassen.

1
verreisterNutzer  22.02.2024, 14:48
@Lamanini

Ich werde jetzt erstmal privat weiterlernen und später dann in so einen Werkstudentenjob gehen.

0
verreisterNutzer  22.02.2024, 01:38

Das Problem bei mir ist irgendwie, dass ich Probleme habe, ein Projekt anzufangen. Sprich, ich sitze vor dem Laptop und denke mir ,,okay, bitte wie soll ich jetzt überhaupt anfangen?"

0
Palladin007  22.02.2024, 02:53
@verreisterNutzer

Dann fang nicht mitten drin an - ist ein beliebter Fehler unter Anfängern.
Du kannst seit gefühlt 10 Minuten programmieren und willst direkt ein monatelanges Projekt auf die Beine stellen? Schlechte Idee ;)

Soll heißen:

Überleg dir ein Projekt (Taschenrechner, Adressbuch, etc, da gibt's Listen für gute Lern-Projekte) und baue dieses Projekt mit einem möglichst kleinen Funktionsumfang auf, den Du dann Stück für Stück immer weiter ausbauen kannst.

Und das heißt z.B. bei einem Taschenrechner: Das Ding funktioniert nur in der Konsole und kann nur Addition und Subtraktion - aber nicht indem Du die Formel eingibst (Formeln parsen ist eklig), sondern indem Du z.B. Menü-Punkt Addition auswählst, dann nacheinander zwei Zahlen eingibst und zum Schluss das Ergebnis angezeigt bekommst.

Diese Funktionen sammelst Du und überlegst dann Schritt für Schritt, was Du als erstes brauchst. In der Konsole ist das üblicherweise sowas wie: Wie kann ich mein Menü anzeigen? Wie kann der Benutzer ein Menü auswählen? Wie kann der Benutzer eine Zahl eingeben, sodass sie im Code auch als Zahl erkannt wird? Wie berechne ich das Ergebnis? Und so weiter.

Jeden dieser Schritte setzt Du dann einzeln um und überlegst dir danach, wie Du zum nächsten Schritt kommst, ggf. mit einem Neuanfang vom Projekt oder Du passt es an. So entsteht dann Schritt für Schritt ein einfaches Konsolenprojekt, was Du dann immer weiter ausbauen (z.B. Multiplikation) kannst.

Das sollte dann aber auch alles ziemlich gut sitzen, sobald Du dich an einer Benutzeroberfläche versuchst, da diese Frameworks häufig einiges an KnowHow voraussetzen, was dir sonst einfach fehlt. Sie verbergen dir das meistens, sodass Du es anfangs nicht oder kaum merkst, aber mit der Zeit kann das für sehr viel Frust sorgen, weil Du in Probleme läufst, die Du mit deinem Wissensstand einfach nicht verstehen kannst. Gleiches gilt für Mobile-Entwicklungen, Web-Entwicklung und Spiele-Entwicklung, alles viel zu hoch für einen Anfänger.

Das, was dabei vermutlich die größte Herausforderung darstellt, ist das analytische und abstrakte Denken, das braucht man bei dieser Arbeit sehr viel und viele Menschen haben damit große Probleme. Das kann man aber lernen und es hilft auch in vielen anderen Lebenslagen (z.B. genereller Umgang mit Problemen), aber es braucht halt Zeit und Praxis und Durchhaltevermögen.

Aber klar, Du kannst dir natürlich auch ein Tutorial nehmen und direkt mitten drin anfangen, gibt genug Tutorials da draußen, die das machen. Im kleinen Rahmen funktionieren die vermutlich auch ganz gut, aber sobald es dann über diese kleinen Mini-Grüne-Wiese-Beispiele hinaus gehen, lassen sie dich alleine. Du hast zwar die Schritt-für-Schritt-Abfolge, um das Ziel aus dem Tutorial zu verstehen, aber was das ist, warum das so ist, wie man es richtig benutzt, wie man es einsetzt und was es für Fallstricke gibt, das fehlt häufig oder wird nur angeschnitten.

Es kann aber trotzdem besser sein, in der Mitte zu starten, wenn Du diese Risiken für schneller "bunte" Erfolge in Kauf nehmen willst. Für mich ist aber auch ein gut funktionierendes "hässliches" Konsolenprogramm ein Erfolg, wenn es z.B. nur ein Test-Projekt für ein bestimmtes Experiment ist, von dem ich wissen wollte, ob es funktionieren kann.

1
Rotfuchs716  20.04.2024, 16:55

Nicht richtig. Im Informatikstudium gibt es immer Programmierprojekte!

0

Hey,

um dich in der Softwareentwicklung weiterzuentwickeln, ist praktische Erfahrung neben der Theorie unerlässlich. Da du gerade Zeit in dein Studium investieren musst, versuche, die Programmierung mit deinem Studium zu verbinden, indem du zum Beispiel mathematische Probleme mit Java löst. Das hilft dir, deine Programmierfähigkeiten zu verbessern und gleichzeitig für deine Prüfungen zu lernen.

Sobald du etwas mehr Zeit hast, starte kleine Projekte oder trage zu Open-Source-Projekten bei. Das ist eine hervorragende Möglichkeit, praktische Erfahrungen zu sammeln und gleichzeitig dein Portfolio für zukünftige Bewerbungen aufzubauen. Um Framework-Kenntnisse zu erwerben, wähle ein populäres Java-Framework wie Spring und beginne, Tutorials und Dokumentationen dazu durchzuarbeiten. Online-Kurse können auch sehr hilfreich sein, um neue Technologien zu lernen.

Vernetze dich in der Community, zum Beispiel durch Teilnahme an Meetups oder Online-Foren. Hier kannst du wertvolle Tipps erhalten und vielleicht sogar Kontakte knüpfen, die zu einem Werkstudentenjob führen können.

Liebe Grüße,
Marcel

Woher ich das weiß:Studium / Ausbildung

Du wirst selbst Projekte machen müssen. Nur so lernst du es. Das Problem ist, wenn du keine Zeit dafür hast, weil du viel lernen musst, dann wird das nichts. Früher oder später wirst du es aber tun müssen. Dir bringt studieren gar nichts, wenn du am Ende doch nichts kannst. Viele Jobs setzen Kenntnisse voraus. Schulische Abschlüsse sind nur ein Teil der Bewertung.

verreisterNutzer  21.02.2024, 22:38

Ich merke selbst, wie diese trockene Theorie im Studium überhaupt gar nichts bringt, vor allem, weil man vieles durch fehlenden Bezug zur Praxis vergisst.

1
FaTech  21.02.2024, 22:46
@verreisterNutzer

Ja und das ist normal. Ich kann dir sehr raten, dir Zeit zu nehmen und selbst Projekte zu starten. Aber pass auf, dass du dein Lernen fürs Studium nicht vernachlässigst

1
verreisterNutzer  21.02.2024, 22:49
@FaTech

Was für Projekte kannst du denn so empfehlen?

Ich würd's jetzt einfach so machen, dass ich irgendwelche Projekte starte und die Theorie gar nicht lerne, sondern dass ich eher an Punkten, wo ich nicht weiterkomme dann ChatGPT frage. Dann manifestiert sich alles besser, denn ich hasse es, stumpf und chronologisch Theorie zu lernen. Die Basics von Java habe ich ja mittlerweile drauf. Ein bisschen Python kann ich auch.

0
FaTech  21.02.2024, 23:27
@verreisterNutzer

Also vor ChatGPT muss ich dich warnen. Zum Lernen kann der sehr hilfreich sein. Wenn du aber keine Erfahrung hast, kann der dir auch Dinge vom Pferd erzählen oder dir Dinge erzählen, die outdated und unsicher sind. Sowas zu lernen, wäre dann natürlich falsch. Wenn du dich für die Variante mit ChatGPT entscheidest, dann führe immer zusätzliche Recherchen durch. Basics ist schon mal gut. Aber es geht noch mehr. Ist auch die Frage, ob du auf Dauer bei Java bleiben willst. Ansonsten wäre C# eine super alternative als Zwischensprache zwischen Java und C++, wenn du mehr lernen willst, da C# und Java ähnlich sind, aber C# auch bereits auf sicherer Art und Weise viele C++ Konzepte aufweist, die man dann gut lernen kann. Projekte können sein: Einfacher Taschenrechner, Webserver, WebSockets, Gui Anwendung, ... Einfach mal ein wenig herumprobieren. Mach, was dir gefällt, damit auf jeden Fall genug Motivation dabei ist. Achte drauf, auch bekannte Frameworks zu testen, denn wie du erkannt hast, sind diese in Jobs wichtig. Was auch hilfreich sein kann, ist HTTP selbst zu machen. Also einen kleinen Server. Das geht super einfach mit TCP ..., hier würde ich das Projekt dann aber nur für Übungen nutzen, da man bei HTTP vieles beachten muss und man sowas selten alles beachtet. Zum Verstehen, wie HTTP funktioniert, kann das aber extrem helfen.

2
verreisterNutzer  21.02.2024, 23:41
@FaTech

Danke für die Tipps. Ich mache denke ich vorerst weiter mit Java, da ich Java schon ganz gut kenne und auch im zweiten Sem. damit weiter arbeiten muss.

0