"Quereinstieg" in die Programmierung? Welche Programmiersprache?

Zackorz

Cadet 3rd Year
Registriert
Okt. 2008
Beiträge
33
Hallo zusammen,

ich bin 33 Jahre Alt und momentan Selbstständig in einem Gesundheitsberuf. Ich habe mir aber nun ein zeitliches Limit gesetzt, bis wann dieser Job "laufen" muss, ansonsten werde ich mir etwas Anderes suchen.

Daher möchte ich mich über die Möglichkeiten eines Quereinstiegs in der Programmierung/Softwareprogrammierung informieren. (Festanstellung bei einer Firma)

Programmieren wäre keinesfalls nur eine Notlösung für mich, ich habe auf jeden Fall Interesse an dieser Tätigkeit.

Ich habe ein 2012 abgeschlossenes Bachelor Studium im Bereich "PC-Spieleherstellung".
Die Spiele-Branche reizt mich allerdings nicht wirklich.

Ich habe mich während des Studiums unter anderem mit Spieleprogrammierung beschäftigt. Hierbei habe ich C++ und Java Oberflächlich behandelt und etwas ausführlicher Javascript programmiert.

Seitdem habe ich einige kleine Projekte, wie ein Online-Spiel und eine Webseite realisiert.

Ich kann Programmieren, bin aber auf jeden Fall noch zu unorganisert und unerfahren in meiner Arbeit.

Ich möchte nun, immer wenn ich zeitliche Kapazitäten habe etwas ausführlicher Programmieren lernen.

Nun stellen sich mir dir Fragen:

Ist ein "Quereinstieg" in der Programmierbranche möglich und realistisch, wenn ich mir ab jetzt 1 Jahr Zeit gebe. (Wie gesagt ich kann Programmieren, aber hätte doch einiges aufzuholen).
Welche Programmiersprache/n sind realistisch und in Bezug auf Gehalt und Zukunftssicherheit zu empfehlen?
Ich habe da vor allem "Java", "Javascript" und "PHP" im Blick. Eine Spezialisierung wäre aber natürlich Notwendig.
 
Das kann man so nicht pauschal beantworten, da so ziemlich jede Sprache seine Vor- und Nachteile hat.
Wenn du Spaß an Webentwicklung hast, dann eher Javascript, php, ruby, node.js, etc.
Wieder andere haben kein Interesse an Frontend und machen lieber backend, dass kann in C#, C, Java, o.ä. sein.
Ansonsten ist auch GO einen Blick wert.

Ob man jetzt Sprache A oder B lernt ist aber auch nebensächlich. Letztendlich sind dies nur unterschiedliche Syntax und "Grammatik". Viel wichtiger sind die korrekte Bedienung der nötigen Tools und Werkzeuge drum herum und dass man das "Prinzip" verstanden hat. Du solltest also mit git o.ä. umgehen können und wissen was prozedurale und objektorientierte Programmierung ist. Ebenso debugging, testing, automatische Builds, error handling und Absicherung etc.
Gibt nichts peinlicheres und unfähigeres als "Entwickler" die Fehlerfälle nicht abfangen, deren Code SQL-Injections o.ä. ausführen, etc.

Gerade bei Entwicklern hilft es beim Berufseinstieg wenn man Projekte/Erfahrung vorweisen kann. Engagiere dich bei Open Source Projekten, erstelle ein eigenes Github/-lab Profil und veröffentliche deine Programme und Code Schnipsel und sammle Erfahrung.
Daraus ergeben sich früher oder später die bevorzugten Sprachen und bevor man sich spezialisiert sollte man die Basics kennen ;)
 
Webentwickler sind ziemlich gefragt. Schau dir mal MEAN an, das liegt ziemlich im Trend :)

http://mean.io/
 
Also in Richtung Fullstack Developer? Oder mehr Backend? Frontend?

Im Webbereich "programmierst" du ja quasi überall, weshalb grundsätzlich noch unterschieden wird zwischen den Bereichen...

Ich kann nur empfehlen:
https://de.udacity.com/courses/all


Kannst links "Kostenlose Kurse" auswählen und dann mal anfangen, z.B. mit
"Intro to JavaScript"
"Frontend Frameworks"
"Fullstack Grundlagen"
...

Ein Quereinstieg ist gut möglich, nur brauchst du (mmn) auf jeden Fall persönliches Interesse (was du ja offenbar hast ;)), da du echt viel Zeit investieren musst, um gut zu werden.

Abseits von der praktischen Übung, solltest du auf jeden Fall auch die Grundlagen beherrschen, weil diese das Verständnis von Programmiersprachen krass vereinfacht. Hast du die? (Grobe Funktionsweise eines PCs, Netzwerke, ...) Mir hat es auf jeden Fall geholfen (ich bin zwar kein Quereinsteiger, aber hab mir Java, Javascript, PHP auch größtenteils selbstständig beigebracht.

Also ich würde dir auf jeden Fall raten, zuerst mit dem Frontend anzufangen, sich da ein bisschen Überblick zu verschaffen
HTML:
1. korrekter HTML Syntax
2. HTML5-Neuerungen
CSS:
Einfaches Styling, ist eigtl. schnell getan, die ganzen Tricks lernt man mit der Zeit :D
JavaScript:
1. Einfache Skripts schreiben können (EventHandler z.B.)
2. Objekte schreiben können (+ "this" verstehen)
3. ECMA2016
4. Theorie verstehen, z.B.: https://medium.com/javascript-scene/the-two-pillars-of-javascript-ee6f3281e7f3

Viel wichtiger ist aber: Üben, üben, üben :D

Im Serverbereich dann zwar auch PHP, aber sehr wichtig sind heute auch Microservices und z.B. Node.js (Javascript für Server).

Content-Managment-Systemen solltest du vielleicht auch mal gehört haben...
 
Bevor man sich für eine konkrete Programmiersprache entscheidet, solltest du erst einmal das Programmieren an sich lernen. Wenn du viel Zeit mitbringst und es auch trocken abkannst, versuche dich an der Programmiersprache C. Parallel dazu solltest du dir grundlegendes Wissen über die Funktionsweise eines Computers und eines Betriebssystems aneignen. Wenn du diese drei Dinge einigermaßen beherrscht, bist du Gold wert und kannst jede andere Sprache "on the fly" lernen. Vergiß nicht, dich später auch mit der objektorientierten Programmierung vertraut zu machen. Das verlangen die Firmen.

Wenn du schnelle Erfolge haben möchtest, und nicht so tief einsteigen möchtest empfiehlt sich Python. Hier wirst du schnell kleine und etwas später auch grafische Anwendungen programmieren können.

Für einen Einstieg in C empfiehlt sich:
https://www.amazon.de/C-Programmieren-Anfang-Helmut-Erlenkötter/dp/3499600749

Für Python würde ich dir auch ein gutes Buch empfehlen:
https://www.amazon.de/Python-Sprach...e=UTF8&qid=1519725296&sr=8-47&keywords=Python

Für Grundlagen über Computer im Allgemeinen kann man unter anderem dieses Werk heranziehen. Hier erlernst du auch Grundlagen der Programmierung und der Webprogrammierung. Querlesen ist in diesem Klopper gut möglich, du brauchst also nicht chronologisch lesen, was ich allerdings empfehlen würde, um alles mitzunehmen:
http://openbook.rheinwerk-verlag.de/it_handbuch/

Ich würde nicht unbedingt empfehlen direkt mit Webentwicklung anzufangen. Ich würde vorher wenigstens ein wenig Python lernen, und danach dann in HTML/Javascript/CSS einsteigen, um erstmal ein Gefühl für das Programmieren an sich zu bekommen.
 
Zuletzt bearbeitet von einem Moderator:
Dann solltest du ja schon etwas Erfahrung haben - auch wenn die Erinnerung inzwischen wohl etwas verblasst ist ;)

In einem Jahr kann man auf jeden Fall viel erreichen. Aber dabei solltest du dich dann wohl auf eine (höchstens 2) Sprache / Framework festlegen, damit du am Ende halt weißt, dass du dich damit wirklich gut auskennst.

Der Stellenmarkt in Deutschland ist aktuell ziemlich groß und man findet in jedem Bereich etwas.

Wenn du es dir einfach machen willst, dann wären die Dauerbrenner Java und JavaScript (bzw. meiner Meinung nach lieber TypeScript) zu empfehlen in Kombination mit Spring Boot, NodeJS, Angular, ReactJS. Da spart man sich viel Einarbeitungszeit im Vergleich zu C / C++. Aber auch C# / .NET sind gern gesehen und weit verbreitet.
PHP wird natürlich auch noch großflächig eingesetzt, aber ... es ist und bleibt halt PHP :D Auch wenn sich da in den letzten Jahren viel gebessert hat.

Zukunftssicherheit gibt es in der Softwareentwicklung nicht. Bisher gab's alle 1-2 Jahre den "neuen heißen Scheiß". Z.B. damals Ruby on Rails. Alle haben mitgemacht und heute ist es sehr still geworden. Vor 2 Jahren hat dann TypeScript die Trends gestürmt, aber hier bin ich der festen Überzeugung, dass es nicht wieder verschwinden wird. Bzw. erst wieder verschwinden wird, wenn der ECMAScript Standard sich weiter an TypeScript angenähert hat.
Dann kamen vor ein paar Jahren IoT, Microservices, letztes Jahr kam Serverless, etc. pp.

Gerade bei den Webtechnologien und Client-Server Geschichten sollte man am Ball bleiben. Oder man entscheidet sich dazu Legacy Software zu pflegen. Da verdient man auch sehr ordentlich. Meinen Geschmack trifft es halt nicht.

Wichtig ist vor allem, dass du mit anderen Leuten im Team arbeitest. In der Programmierung kann man jedes Problem mit 400000 Werkzeugen lösen. Wichtig ist halt, dass du die wichtigsten / effektivsten davon kennst. Und gerade die Arbeit im Team bringt da oft neue Ideen und Ansätze. Und plötzlich merkt man, dass man jahrelang Algorithmus X von Hand geschrieben hat, ob wohl das viel einfacher und wartbarer geht.

Und bei Problemen: Google! In 95% der Fälle landest du dann bei StackOverflow und findest zu (fast) jedem erdenklichen Problem eine Lösung. Und zur Not erstellst du dort halt deine eigene Frage.

Am Anfang ist es sicherlich wichtig, dass man sich ausprobiert und herausfindet, was möglich ist. Später (vor allem im Beruf) müssen die Probleme schnell, sicher und effizient gelöst werden. Heißt: Google! Passende Library finden, einbinden, benutzen. Fertig. Ich hatte schon ein paar Kollegen, die alles mögliche selbst programmiert haben. Dauer: 2 Wochen. Funktionsumfang: Stark beschränkt. Erweiterbarkeit: Beschränkt. Der gesamte Code wurde nach ein paar Monaten weggeschmissen und dafür dann eine Library verwendet. Dauer: 2 Stunden. Funktionsumfang: Riesig. Gut dokumentiert, einfach zu verwenden.
 
Zuletzt bearbeitet:
Dexter1997 schrieb:
Bevor man sich für eine konkrete Programmiersprache entscheidet, solltest du erst einmal das Programmieren an sich lernen. Wenn du viel Zeit mitbringst und es auch trocken abkannst, versuche dich an der Programmiersprache C. Parallel dazu solltest du dir grundlegendes Wissen über die Funktionsweise eines Computers und eines Betriebssystems aneignen. Wenn du diese drei Dinge einigermaßen beherrscht, bist du Gold wert und kannst jede andere Sprache "on the fly" lernen. Vergiß nicht, dich später auch mit der objektorientierten Programmierung vertraut zu machen. Das verlangen die Firmen.

Wenn du schnelle Erfolge haben möchtest, und nicht so tief einsteigen möchtest empfiehlt sich Python. Hier wirst du schnell kleine und etwas später auch grafische Anwendungen programmieren können.

Für einen Einstieg in C empfiehlt sich:
https://www.amazon.de/C-Programmieren-Anfang-Helmut-Erlenkötter/dp/3499600749

Für Python würde ich dir auch ein gutes Buch empfehlen:
https://www.amazon.de/Python-Sprach...e=UTF8&qid=1519725296&sr=8-47&keywords=Python

Für Grundlagen über Computer im Allgemeinen kann man unter anderem dieses Werk heranziehen. Hier erlernst du auch Grundlagen der Programmierung und der Webprogrammierung. Querlesen ist in diesem Klopper gut möglich, du brauchst also nicht chronologisch lesen, was ich allerdings empfehlen würde, um alles mitzunehmen:
http://openbook.rheinwerk-verlag.de/it_handbuch/

Ich würde nicht unbedingt empfehlen direkt mit Webentwicklung anzufangen. Ich würde vorher wenigstens ein wenig Python lernen, und danach dann in HTML/Javascript/CSS einsteigen, um erstmal ein Gefühl für das Programmieren an sich zu bekommen.

Einem Einsteiger C vorschlagen? Willst du die Leute verjagen? :D
 
Toms schrieb:
Einem Einsteiger C vorschlagen? Willst du die Leute verjagen? :D

Das ist natürlich ein schwerer, harter und steiniger Weg, zumindest wenn man C richtig und tiefgehend lernt. Aber was dich nicht tötet, macht dich härter. Und wenn du vernünftiges Wissen über C hast und mit der Sprache sowie mit Zeigerarithmetik einigermaßen umgehen kannst, bist du ein wirklich guter Programmierer
 
Zuletzt bearbeitet von einem Moderator:
Mach es so, wie FranzvonAssisi in #4 vorgeschlagen hat. Das ist ideal. Alles andere wird Dich schnell überfordern und auch zu Frustration und Aufgabe führen.

Die vergleichsweise einfache Mischung aus HTML5, CSS und JavaScript bringt schnellen Lernerfolg.
 
Ich kann dir nur den Tipp geben, dass die Sprache selber erstmal relativ egal ist.

Wichtig ist, dass du mit erfahrenen Programmierern zusammen arbeitest, dabei lernst du die in der Praxis (und auch in der Theorie) wichigen Dinge und Abläufe.

Engagier dich in Open Source Projekten o.ä.
Vielleicht ist ein örtlicher CCC-Ableger ein guter Ansprechpartner für dich. Da kannst du viel lernen und hilfst evt. der allgemeinheit noch etwas ;)
 
Was aus meiner Sicht für das Programmieren bzw. jedes Handwerk was man sich selbst beibringen will wichtig ist, ist ein Projekt.
Du brauchst eine Idee ein Ziel an dem du es lernen kannst. In gewisser Weise ergibt sich dadurch auch etwas die Programmiersprache oder allgemein das benötigte Werkzeug.
Du willst natürlich dann das nehmen womit du das beste Ergebnis (hohe Qualität, geringer Aufwand).

Die genannten Sprachen sind auf jeden Fall sichere Pferde:
WebFrontend:
Html5 (keine Programmiersprache)
Javascript

Backend:
Java (Nummer eins in der Geschäftswelt)
Php
Javascript (node.js)
C#

Desktopanwendung
C#
C++
Java

systemnah / embedded:
C (++)
C#
cool und modern:
Rust
Go


Desktopanwendungen sind leider in den meisten Bereichen tot bzw werden immer weiter durch Webanwendungen zurückgedrängt.



Für den Quereinstieg: ICh habe mal gehört das im öffentlichen Dienst händeringend nach IT-Leuten gesucht wird. Insbesondere Quereinsteiger, weil andere im öffentlichen Dienst nicht zu bekommen sind.
 
Zuletzt bearbeitet:
benneque schrieb:
Am Anfang ist es sicherlich wichtig, dass man sich ausprobiert und herausfindet, was möglich ist. Später (vor allem im Beruf) müssen die Probleme schnell, sicher und effizient gelöst werden. Heißt: Google! Passende Library finden, einbinden, benutzen. Fertig. Ich hatte schon ein paar Kollegen, die alles mögliche selbst programmiert haben. Dauer: 2 Wochen. Funktionsumfang: Stark beschränkt. Erweiterbarkeit: Beschränkt. Der gesamte Code wurde nach ein paar Monaten weggeschmissen und dafür dann eine Library verwendet. Dauer: 2 Stunden. Funktionsumfang: Riesig. Gut dokumentiert, einfach zu verwenden.

Das stimmt natürlich einhundertprozentig.

Aber gerade wenn es ums Lernen und Ausprobieren geht, ist es imho extrem wichtig, privat bestimmte Standardanwendungen oder -fälle in einem Mini-Format auch mal selbst geschrieben zu haben, um ein Gefühl für deren inneren Aufbau etc. zu bekommen.

Verwaltungstool, CMS, DMS, Rest-API, eine komplexere Responsive Oberfläche, evtl. mal mit und mal ohne Framework, etc.
 
dermoritz schrieb:
Für den Quereinstieg: ICh habe mal gehört das im öffentlichen Dienst händeringend nach IT-Leuten gesucht wird. Insbesondere Quereinsteiger, weil andere im öffentlichen Dienst nicht zu bekommen sind.
Leider klappt dies nur sehr sehr selten, da die erste Filterung oft schon passiert, wenn man nicht die starren Kriterien erfüllt. Wenn z.B. für die Stelle ein Dev gesucht wird und Voraussetzung ein Master ist, dann fliegen alle Bewerber raus, die z.B. nur einen Fachinformatiker haben und/oder einen Bachelor. Selbst wenn der Bewerber sehr gute Referenzen und 10 Jahre Berufserfahrung in genau den geforderten Bereichen hat. Entweder kann der öD dann nur nach "Qualifikation", sprich höchstem Bildungsabschluss zahlen (dann geht der Bewerber direkt wieder) oder man muss jemanden in der Abteilung kennen und über Beziehungen rein kommen.
 
Dexter1997 schrieb:
Und wenn du vernünftiges Wissen über C hast und mit der Sprache sowie mit Zeigerarithmetik einigermaßen umgehen kannst, bist du ein wirklich guter Programmierer
Ich arbeite seit vielen Jahren als Entwickler und habe kein tiefgehendes Wissen über Zeigerarithmetik. Meine Arbeitgeber und die unserer Kunden sind mit der Software zufrieden. Und jetzt, bin ich ein schlechter Entwickler? :p Solche Sachen sollte man kennen und grundlegend verstehen. Dennoch sehe ich das eher als Spezialwissen. Man könnte auch im Detail lernen wie einzelne Garbage Collector funktionieren o.ä. Ob mans in der Praxis braucht ist eine andere Frage.

Ansonsten gab es wie ich finde viele gute Tipps für den TE.
 
Zuletzt bearbeitet:
dermoritz schrieb:
Desktopanwendungen sind leider in den meisten Bereichen tot bzw werden immer weiter durch Webanwendungen zurückgedrängt.

Das kann ich soweit bestätigen.
 
Zuletzt bearbeitet von einem Moderator:
Vielen Dank für eure hilfreichen Tips, damit habe ich schon mal eine gute Orientierung.

Jetzt muss ich mir nur noch Gedanken machen, ob der Frontend- oder der Backend-Bereich eher etwas für mich ist.

Javascript habe ich ja schon ein bisschen Erfahrung, aber Java reizt mich irgendwie mehr..
 
Dann könntest du dir auch TypeScript ansehen. Vielleicht direkt in Kombination mit Angular 5.

Ich bin eigentlich auch Backend Entwickler - vorzugsweise mit Java -, aber dank TypeScript und Angular fühle ich mich nun auch im Frontend sehr wohl. Natürlich hab ich immer noch keine große Ahnung von CSS und Styling, aber mit Komponenten, Services, Logik und co. komme ich ausgezeichnet zurecht.

Speziell wenn man aus der Java EE und Spring Welt kommt, ist Angular ein Traum. Die Konzepte (wie z.B. Annotations und Dependency Injection) lassen sich fast 1:1 übernehmen und dank TypeScript ist die Syntax sehr ähnlich zu Java und C#.

TypeScript (und natürlich auch JavaScript) lässt sich aber auch prima im Backend mit Node.js einsetzen. Da hat man eine Sprache, mit der man alles machen kann. Sogar native Mobile-Anwendungen lassen sich (mit etwas Arbeit und Umgewöhnung) relativ einfach damit schreiben, dank NativeScript, Preact und wie die Frameworks alle heißen.

Insgesamt fühle ich mich in der Java Welt aber doch noch etwas wohler. Das JDK und Spring / Java EE bieten halt extrem viele Werkzeuge für alle erdenklichen Fälle. Aber hin und wieder stoße ich auch auf die sprachlichen Grenzen von Java, wo ganz schnell deutlich wird, dass TypeScript zeigt, dass es auch deutlich einfacher / besser geht.
Bei Java kann es Jahre dauern bis ein neues Sprachfeature eingebaut wird. Da stecken viele große Firmen dahinter, die sich einigen müssen. Und dabei wird die Abwärtskompatibilität immer GROSS geschrieben.
TypeScript kann man dagegen eher als (sehr ausgereifte) Spielwiese bezeichnen. Hier wird ausprobiert was möglich ist. Und viele Features, die es erst in 1-2 Jahren in JavaScript geben wird, gibt es dort schon heute. Dafür kann es halt auch passieren, dass man mit dem nächsten Update seinen Code anpassen muss.
 
Zuletzt bearbeitet:
Ich selbst bin .NET - Entwickler vorwiegend mit C# + MS SQL - Server.
Was mir hier gut gefällt ist, dass es weit verbreitet ist und man zu allen möglichen Problemen Hilfe im Internet findet.
Java kann hier sicherlich ein ähnlich großes Spektrum bieten.

Die Syntax zwischen C# & Java ist auch sehr ähnlich, insofern wäre ein Umstieg relativ schnell machbar.

Ich kann nur aus meiner Erfahrung sprechen, dass du mit .NET (C# & Co.) nichts verkehrt machen würdest.
Hier kannst du Frontend, Backend, Services usw. alles mögliche programmieren.
Noch dazu ist die Programmierumgebung (Visual Studio) sehr komfortabel und man findet sich als geübter Windows-Nutzer schnell zurecht.

Es ist auch seit einiger Zeit möglich plattformunabhängig (Windows, Linux, MacOS) oder Apps (Android, iOS, Windows) zu programmieren.

Insofern wärst du für alles gerüstet und kannst dir aussuchen was du machen willst.

Aber neben der Programmiersprache würde ich dir wärmstens ans Herz legen dich auch mit SQL auseinanderzusetzen.
Dabei ist es relativ egal ob MySQL oder MS SQL Server oder was es sonst noch so gibt. Das wirst du aber in den meisten Stellenausschreibungen von Firmen finden.

Hier noch ein hilfreicher Link für kostenlose E-Books:
https://www.rheinwerk-verlag.de/openbook/

Viel Erfolg.
 
Bisher habe ich eher im "Frontend" Bereich Programmiert (javascript, HTML, CSS).

Mich würde aber doch eher etwas Neues reizen und ich möchte mich gerne im "Backend Bereich" versuchen.

Außerdem denke ich, hier gibt es weniger "Experten", da dieser Bereich etwas komplexer ist und die Bezahlung dürfte geringfügig besser sein, wenn ich mich nicht irre?

Allerdings ist auch die Frage, in welchem der beiden Bereiche eurer Erfahrung nach eher/überhaupt einen Quereinsteiger ohne wirkliche Berufserfahrung akzeptiert würde?

Noch eine abschliessende Frage:

Ich lerne gerade "Java", welche andere Programmiersprache sollte ich als Ergänzung für das "Backend" lernen? PHP? Ich möchte mich auf 2 neue Sprachen begrenzen, aber natürlich den üblichen Jobanforderungen genügen.
 
Mit Java machst du nichts falsch. Ansonsten eben C#.

Wenn du schon Erfahrung mit JavaScript hast könnte aber auch sowas wie node.js interessant sein, womit du das Backend in JavaScript umsetzen könntest.
 
Zurück
Oben