Programmieren anfangen. (wie?, was?)

MasterMaso

Lt. Commander
Registriert
Apr. 2018
Beiträge
1.833
Hallo,

derzeit mache ich eine Ausbildung zum Fachinformatiker FR Systemintegration. Früher hat mich Programmierung nie interessiert, da ich es einfach nicht verstanden habe. Bisher habe ich Erfahrung mit Java, VBA, HTML und CSS gemacht und derzeit schreibe ich in der Firma mit C# ein kleines Programm. Dazu benutze ich VS Studio Community. Mit Java haben wir den Java Editor benutzt.
Aber irgendwie blicke ich bei C# nicht durch und VBA finde ich ganz grauenhaft, VS Studio ist mir aber auch irgendwie unübersichtlich. Nun haben mit Leute aber gesagt, dass Java ausstirbt und irgendwie blicke ich bei den JDKs nicht durch.
Was ich später mal können möchte sind Websiten zu erstellen. Am liebsten möchte ich ein Forum machen.
Die Frage ist was brauche dazu ? Also welche Sprachen und Kenntnisse ? Außerdem würde ich gerne wissen, welchen Code Editor ihr mir empfehlen könnt. Ich stehe irgendwie zwischen VS Code, Notepad++(haben wir in der Schule benutzt) und Atom (sieht schick aus).
Neben den Websiten möchte ich auch noch gerne kleine Programme/Spiele machen. Ist Java dazu geeignet und was brauche ich dazu ?
Also welche IDE und JDK ? Ich habe gelesen, dass Oracle was verändert hat.
Das ganze würde ich erstmal als Hobby machen und mich später vielleicht darauf weiterbilden (bin mit der Ausbildung bald durch) und Vorkenntnisse sind nie schlecht.
 
Alles persönliche Vorzüge. Ich mag MVS überhaupt nicht. Hauptsächlich wegen der komplizierten Kompilierungsmethode. Notepad++ ist der Dauerbrenner, hat aber leider nur begrenzten Funktionsumfang. Seit Minecraft fahre ich mit Eclipse am besten. Ich wüsst z.Z. keine Programmiersprache die nicht mit Eclipse kompatibel ist.

Für Webseiten brauchst du im Prinzip nur Notepad++, da .html, .css und .java script code "relativ" einfach ist. Noch einfacher wird die Sache durch die auf Github haufenweise vorhandenen Plugins. Tricky ist bei Webseiten eigtl. nur, sie kompatibel mit allen Browsertypen zu machen. Hab aber gehört demnächst musst du dir um einen weniger Sorgen machen...:)
 
Zuletzt bearbeitet:
Oha.... gaaanz viele Fragen :D Vorab: Es gibt nicht den einen Königsweg, daher kann ich dir mit meinen Antworten wenn überhaupt nur grob Hilfestellung geben, aber ich werde es versuchen.

1.: Als Fachinformatiker FR Systemintegration wirst du es vermehrt mit Skriptsprachen zu tun bekommen. Es wäre also grundsätzlich sinnvoll, sich damit zu beschäftigen, weil es dir sowieso immer ein gutes Werkzeug sein wird. Wenn du in Windows unterwegs bist, dann sind Batch und Powershell nützlich, unter Linux in der Regel Bash. Systemübergreifend ist Python auch noch sehr gerne genommen und in jedem Fall einen Blick wert. Es gibt allerdings weit mehr als ich hier nenne.

2.: "Irgendwie blicke ich bei <Hier Programmiersprache einsetzen> nicht durch" ist keine Ausrede! :D Ja, Pech gehabt. So kommst du aus der Nummer nicht raus. Programmieren erfordert leider, dass man sich mit Problemen auseinandersetzt und die Konzepte, die eine Programmiersprache bietet, versteht. Es gibt viele unterschiedliche Ansätze, und Programmiersprachen haben ihre Stärken und Schwächen. Aber ausnahmslos alle erfordern ein gewisses Maß an Durchbeißen. Wenn du die Möglichkeit hast, kannst du ja die Sprache wechseln. Wenn nicht, dann wieder ran an den Feind, anders geht's nicht.

3.: Java und aussterben ist eine sportlich verfrühte Aussage für die am meisten verbreitetste Sprache aktuell :D Daher würde ich das erstmal als "Meinung" deines Kollegen ansehen. Ich weiß zwar nicht, was es bei den JDKs jetzt groß zu durchblicken gibt, aber auch hier gilt: Das ist Grundwissen. Du solltest dein Werkzeug schon kennen, wenn du damit hantierst. Sprich: Möchtest du Java lernen, musst du dich auch damit auseinandersetzen, anders geht's nicht.

4.: Webseiten: Also als erstes wäre hier HTML wichtig :D Von dort aus gibt es weitere Möglichkeiten, die Seiten noch funktionaler zu machen. Zu erwähnen wären hier aktuell Javascript und PHP. Wenn du mit beiden hantierst, wären dann irgendwann auch Kenntnisse in SQL nützlich. Hier angelangt tun sich dir weitere Frameworks und Sprachen auf, das kommt dann mit der Zeit. Auch Java lässt sich hier weiterhin verwenden, Python ebenfalls. Natürlich gibt es weit mehr.

5.: Code Editor: Also am besten ist natürlich der, mit dem DU am besten zurecht kommst. :D Da du aber jetzt den Vergleich nicht hast, wäre es sinnvoll, mit einem anzufangen, der weit verbreitet ist. Denn dann gibt's im Internet auch am meisten Hilfe und Informationen dafür. VS Code ist z.B. aktuell recht verbreitet, aber das ist irgendwo auch ein Glaubenskrieg (den ich hier jetzt nicht anfachen möchte!!!). Für Java wären z.B. das Eclipse und Intellij. Alles andere mal ergooglen und gucken, mit was sich die Leute so am meisten beschäftigen.

Notepad++ ist eigentlich so das Multitool für alles, aber komplett darin entwickeln würde ich persönlich nicht, aber ich arbeite mit dem QtCreator, und dessen Funktionalität bietet nunmal Notepad++ nicht.

6.: Java ist zum kleine Spiele programmieren geeignet. Grundsätzlich auch für Große, siehe Minecraft oder "Edna bricht aus". Zum lernen einfach das neuste JDK nehmen würde ich jetzt sagen. Dann lernst du gleich die neuen Sachen mit.
 
Zuletzt bearbeitet:
MasterMaso schrieb:
Was ich später mal können möchte sind Websiten zu erstellen.
Sinnvoll ist dann HTML, CSS und JS. Zusaetzlich kann PHP, Java, Python, C# und viele mehr genutzt werden.

MasterMaso schrieb:
Am liebsten möchte ich ein Forum machen.
Eventuell ist es besser, eine fertige Software zu nutzen und diese Anzupassen. Dann haengt es aber daovn ab, welche Software du nutzt.
Warum ist es besser auf was bestehendes zurueck zu greifen? Ein Forum ist ein komplexes und anfaelliges System, das nicht zu unterschaetzen ist.

MasterMaso schrieb:
Nun haben mit Leute aber gesagt, dass Java ausstirbt
Da hat man ueber Flash auch gesagt... Manche sachen kriegt man nicht tot ;).
Aber davon ab.. Ich wuerde nicht behaupten, dass Java ausstirbt.

MasterMaso schrieb:
welchen Code Editor ihr mir empfehlen könnt.
VS Code ist nicht schlecht, da er sehr gut individualisierbar ist.
Beruflich bevorzuge ich die IDEs von JetBrains. Privat wechsel ich oft. nutze oft vim (Texteditor) oder VSCode. Teste aber auch oft die neuen Versionen der Produkte aus dem Hause JetBrains.

MasterMaso schrieb:
irgendwie blicke ich bei den JDKs nicht durch.
Erstmal erklaert was die Unterschiede zwischen JKD, JRE und JVM ist: https://www.geeksforgeeks.org/differences-jdk-jre-jvm/
Und der Unterschied zwischen OpenJDK und Oracle JDK ist hier recht schoen erklaert: https://stackoverflow.com/questions/22358071/differences-between-oracle-jdk-and-openjdk
(Wobei dort das neue Lizenzmodel noch nicht erwaehnt wird, aber das sollte dich erstmal nicht stoeren)
 
  • Gefällt mir
Reaktionen: Joshinator
Guck dir mal MEAN / MERN an :) hab ich mal mit angefangen und bin voll drauf hängengeblieben x)
 
@Grimba
1. Ja mit Powershell habe ich schon was gemacht, aber da ist ja von Prinzip her für fast alles eine Lösung im Internet, wo man dann seine Sachen einsetzt und deshalb fand ich das bisher immer recht langweilig und die Syntax fand ich jetzt nicht unbedingt ansprechend.
2. Ich mache mein Programm derzeit nur mit C#, da mein Ausbilder damit Erfahrung hat und mir somit helfen kann(er ist kein Programmierer, macht aber ein paar Sachen). Er hatte es mir freigestellt was ich nutze.
Java kannte ich von der Schule und habe ich auch direkt mir dem Java Editor verstanden.
3.Ich wollte mir JDK 11 runterladen und irgendwie hat Oracle ja das License Agreement verändert und deshalb was ich mir nicht mehr sicher.
4. MySQL lerne ich gerade in der Schule und das gefällt mir wohl. Dann müsste ich nur später wissen womit man eine Datenbank erstellt und wie man die einbindet.
5. Ich teste dann soweit mal VS Code und gucke mal ob mir das besser als Atom gefällt.
Und mit Eclipse werde ich soweit zurecht kommen als Nutzer von Java Editor ? Eclipse ist ja schon komplexer oder ?
6. Das hört sich ja gut an :D
 
Als Webentwickler kann ich nur den vorherigen Kommentaren zustimmen.
Fang mit den HTML, CSS und JavaScript-Basics an. Und mit JavaScript meine ich pures JavaScript, nicht sowas wie jQuery oder direkt Frameworks ala Vue, React und Co.

Sachen wie (My)SQL und eine Backendsprache wären dann der nächste Schritt. Das Backend kannst du mit PHP über Ruby bis hin zu JavaScript/Node bauen. Würde dir eher PHP oder JS da ans Herz legen, wenn du mit C# oder VBA nicht wirklich klar kommt denke ich mal das du mit objektorientiertem Programmieren nicht so klar kommst. PHP kann zwar OOB, muss man aber nicht. Und JavaScript ist wie im Frontend auch nicht OOB.

Wenn du dich mit den Sachen dann einigermaßen wohlfühlst kannst du mal einen Blick auf das ganze Node-Ecosystem werfen und an Webframeworks wie Vue, React oder Angular wagen. Wobei die lange nicht nötig sind, grade bei kleinen Websites ist sowas nicht nötig. Bei komplexeren Sachen aber durchaus angenehmer.

VSCode bekommt von mir auch ein +1, hat einige Erweiterungen die das leben einfacher machen und ein GitHub-Interface ist auch mit integriert für die die die CLI nicht mögen :D
Auch die Emmet-Snippets sind nett, quasi eigene Befehle mit denen man hinterlegen Code einfügen kann.


gerne kleine Programme/Spiele machen
Lässt sich auch weit auslegen, man kann auch Websites in "Programme" verwandeln über Ungetüme wie Electron, hängt ganz davon ab was das Programm tun muss. Spiele genauso, kleine 2D-Spiele gehen wunderbar, kleinere 3-Games lassen sich auch mit modernen Webtechnologien realisieren.
 
  • Gefällt mir
Reaktionen: Crast und psYcho-edgE
Nur nebenbei:
Dass etwas langweilig ist, oder eine Syntax mal nicht gerade ansprechend, das wird dir in dem Berufsfeld immer wieder begegnen. Vieles ist einfach nunmal recht trocken. Manches kompliziert, vielleicht unnötig kompliziert, aber manchmal fehlen in so einem Fall die Alternativen. Da musst du dich einfach durchbeißen.

Daher ist es umso wichtiger, dass du die Theorie hinter den Dingen verstehst, denn dann kannst du auch Codeschnipsel aus dem Internet jederzeit anpassen. Dann kannst du Probleme von einer Programmiersprache auf die andere ummünzen.
Die Programmiersprache solltest du immer nur als Werkzeug sehen. Der erste Schritt ist immer ein Problem zu verstehen und die entsprechenden Methoden, ein Problem zu lösen. Das Werkzeug kommt immer erst bei der Umsetzung. Und welches du wählst hängt auch immer sehr von dem Problemumfeld ab. Es ist z.B. nicht unbedingt sinnvoll, in ein vorhandenes, gut dokumentiertes Skriptgerüst eines späteren möglichen Arbeitgebers mit Skripten einer ganz anderen Skriptsprache zu erweitern. Spätestens dann gucken dich deine Mitstreiter ein wenig böse an... Also immer so denken: Welches Problem will ich lösen? Wie kann ich es lösen? Was habe ich zur Lösung zur Verfügung.
 
  • Gefällt mir
Reaktionen: psYcho-edgE
@Joshinator
Ich bin mir nicht sicher, ob ich mit C# nicht zurecht komme oder mit VS Studio, das ganze ist ja schon etwas komplexer als der Java Editor.
Wenn man mir C# langsam beigebracht hätte, würde ich es denke ich verstehen, da es ja recht ähnlich von der Syntax ist wie Java.

Dann denke ich, dass ich erstmal mich in HTML und CSS reinfuchse. Sollte man die Websiten denn mit einem Code Editor gestalten oder auf ein CMS zurückgreifen, wo ich der Meinung bin, dass man dort nicht so viel lernt.
 
  • Gefällt mir
Reaktionen: psYcho-edgE
Bitte nur über Code :D
Dann lernst du nicht nur selbst was z.B. der Unterschied zwischen padding und margin ist und wie es das Element (und umliegende Elemente) beeinflusst, sondern du weißt dann auch in Zukunft Designs anpassen kannst wenn du irgendwelche Templates von CMS nicht schön findest. Die ganzen Baukästen erstellen immer verdammt hässliche Strukturen (verschateln Elemente bis zum abkotzen ineinander) und sobald du auch für Smartphones oder Tables ein paar extra Styles hast wirst du Probleme bekommen.

Viel zu lernen gibt es nicht bei CSS und HTML an sich, du wirst nicht von Anfang an wissen müssen welche Meta-Tags du alle brauchst, oder welche Styles du alle immer wieder brauchst. Ich spreche mehr vom grundlegendem HTML-Aufbau und CSS-Basics wie "display: block" vs "display: inline". Die ganzen Kleinigkeiten lernt man mit der Zeit wenn man sie braucht und selbst nach einigen Jahren kennst du nur einen bestimmten Bruchteil von CSS-Befehlen.
 
  • Gefällt mir
Reaktionen: psYcho-edgE
MasterMaso schrieb:
Was ich später mal können möchte sind Websiten zu erstellen. Am liebsten möchte ich ein Forum machen.
Die Frage ist was brauche dazu ? Also welche Sprachen und Kenntnisse ? Außerdem würde ich gerne wissen, welchen Code Editor ihr mir empfehlen könnt. Ich stehe irgendwie zwischen VS Code, Notepad++(haben wir in der Schule benutzt) und Atom (sieht schick aus).

Also wenn du mit C# Websites bauen willst, dann solltest du auf ein ASP.NET-Projekt wechseln. Ansonsten der Klassiker PHP. Falls du was "zukunftssicheres" lernen willst, nimm JavaScript, am besten gleich mit ES6 zusammen lernen. Dann hast du mithilfe von Node.js sowohl Front- als auch Backend in einer Sprache. JavaScript erhält dank Frameworks wie bspw. Electron auch zunehmend Relevanz für Desktopanwendungen.

Mit Datenbanken umzugehen solltest du auch lernen, gerade für die Erstellung von Foren o.ä. Da je nachdem den Klassiker MySQL bei PHP oder alternativ z.B. MongoDB bei einem JS-Backend.

Als Editor für Websites empfehle ich persönlich VSCode, aber auch Atom oder NP++ gehen auf jeden Fall. Niemals in einem CMS lernen. Wenn mit "Führung" dann anhand eines Frameworks in der gewählten Sprache, da wirst du zwar auch für diverse Sachen erstmal an die Hand genommen und kannst dich später selbst mit beshcäftigen, aber es ist nicht so ein krasser Overkill wie ein ganzes CMS, wo man nur Templates bearbeitet.

Neben den Websiten möchte ich auch noch gerne kleine Programme/Spiele machen. Ist Java dazu geeignet und was brauche ich dazu ?

Ist es, aber da musst du tw. viel selbst machen. Vielleicht erstmal in einer existierenden Free-to-use-Engine rumspielen (bspw. Unreal Engine 4) um ein Feeling für die Zusammenhänge zwischen Objekten, Regel-Skripten usw. zu bekommen. Danach kann man sich versuchen. Je nach Komplexität des Spiels ist aber das Schreiben von Scratch verdammt zeitraubend.
 
  • Gefällt mir
Reaktionen: Joshinator
MasterMaso schrieb:
3.Ich wollte mir JDK 11 runterladen und irgendwie hat Oracle ja das License Agreement verändert und deshalb was ich mir nicht mehr sicher.
Nimm besser gleich OpenJDK.

MasterMaso schrieb:
Dann denke ich, dass ich erstmal mich in HTML und CSS reinfuchse.
Bei Problemen findest du bei StackOverflow, Google oder ggf. auch hier sehr viel hilfe ;)

@MasterMaso noch ein weiterer Tipp: Es ist schon einmal der Begriff "Git" erwähnt wurden. Tu dir selbst einen gefallen und setz dich möglichst früh mit VCS (Version Controll Sysems) auseinander. Das ist nicht nur beim Programmieren sehr nützlich. Wenn du die Dokumentation für dein Abschlussprojekt schreibst, kannst du es auch nutzen. Wenn du auf der Arbeit Änderungen an Text-Basierten Einstellungen vornimmst kann es dir helfen. Ich selbst nutze es mittlerweile für sehr viele Sachen, die nichts direkt mit dem Programmieren zutun haben.
 
  • Gefällt mir
Reaktionen: psYcho-edgE
Also wenn du Java wirklich verstanden hast, dann sollten andere Sprachen und IDEs auch kein Problem darstellen.

Mit Verstanden meine ich allerdings nicht "Hello World" hat funktioniert.

Visual Studio ist schon eine der bequemsten IDEs, sehr viel mehr kann einem da nicht abgenommen werden.


Ich bin ja immer für Text Editor und von hand compilieren, dann lernt man auch was.

Bei C# ist das allerdings schwieriger :D
 
  • Gefällt mir
Reaktionen: Crast, areiland und psYcho-edgE
Old Knitterhemd schrieb:
Bei C# ist das allerdings schwieriger :D
Nicht unbedingt, mit wenn man .Net Core nutzt kann man ganz einfach mit
dotnet build [<PROJECT>|<SOLUTION>] [-c|--configuration] [-f|--framework] [--force] [--no-dependencies] [--no-incremental] [--no-restore] [-o|--output] [-r|--runtime] [-v|--verbosity] [--version-suffix]
Das Projekt kompilieren.
 
Zuletzt bearbeitet:
Old Knitterhemd schrieb:
Ich bin ja immer für Text Editor und von hand compilieren, dann lernt man auch was.

Die Bottom-Up Methode bietet sich ja für den Anfang sowieso an. Was nützt es einem, mit Funktionen erschlagen zu werden, wenn man nicht weiß, wozu die gut sind, und sie deswegen nicht nutzen kann?

Wenn man von Hand anfängt, lernt man schnell, Systeme zu schätzen, die einem die ganze Arbeit abnehmen. Und deren Sinn erschließt sich sofort :D
 
  • Gefällt mir
Reaktionen: BeBur, Old Knitterhemd, psYcho-edgE und 2 andere
Richtig, teilweise kann es einen aber auch erschlagen. Ist so n Zwiespalt. Wenn man jmd ist der sich gern durchbeißt auf jeden Fall von Scratch anfangen. Ansonsten mit einem Framework um die Basics zu trainieren und dann nach und nach den Rest erschließen.
 
Die konkrete Sprache ist weniger wichtig als das du dich in 6-18 Monaten immer noch damit beschäftigst.

* Nimm eine Sprache die dir gefällt, egal warum
* Mach ein Projekt, auf das du Lust hast
* Lass dir Feedback dazu geben, an welchen Stellen das Projekt evtl. vereinfacht werden kann, ohne das es dir weniger Spaß macht bzw. was du als ersten Schritt bauen kannst und was besser in einem Folgeschritt.

Wenn du Java ganz cool findest, dann nimm Java. Mit Java kannst du alles machen. Java wird auch ganz massivst noch verwendet heute und ist nicht am sterben.

Fürs Lernen an sich stimme ich aber zu: Eher keine IDEs, sondern normale Editoren, eher keine Frameworks, die dir Arbeit abnehmen, sondern möglichst viel eigener Code.
 
  • Gefällt mir
Reaktionen: Grimba und psYcho-edgE
Also für HTML, CSS und JScript verstehe ich ja, dass man sowas wie VS Code nehmen sollte, aber für Java ?
Wie mache ich denn dann das Design meines Programms ?:confused_alt:
 
MasterMaso schrieb:
Das schoene an VS Code (und auch Atom und ein paar anderen Editoren) ist, dass man sie fuer jeden Use-Case umruesten kann. Entsprechend wird es auch Pakete fuer Java und Co geben.

MasterMaso schrieb:
Wie mache ich denn dann das Design meines Programms ?:confused_alt:
Es gibt einige IDEs die dir z. B. fuer JavaFX oder Swing einen Designer anbieten. Dieser generiert dir aber am Ende auch nur den notwendigen Code.
Wenn du eine Vorstellung hast, wie deine App aussehen soll, dann kommst du auch sehr gut ohne diesem Designer zu recht.
Meiner Erfahrung nach, sind diese Designer auch immer sehr beschraenkt und erzeugen undsauberen Code und fuehren zu unerwarteten Fehlern (z. B. ungewollte Verschachtelungen). Ich habe frueher mal versucht eine Webseite mit einem Designer zu erstellen... seitdem ruehe ich die Dinger nicht mehr an - Aber jeder muss selbst diese Erfahrungen machen.

Aber kleine Info: Nur weil du dich fuer HTML, CSS und JS fuer VSCode entscheiden solltest, heisst das nicht, dass du deine Java-Anwendungen ebenfalls damit entwickeln musst. Du kannst auch fuer jede sprache einen anderen Editor bzw eine andere IDE nutzen.
 
Zurück
Oben