Programmiersprache für Anfänger

  • Hallo
    da ich vor habe meinen Computer mit ubuntu zu bestücken habe ich überlegt, dass ich mir vielleicht mal die Grundzüge einer Programmiersprache ansehe, damit ich mir auch einige leichte Funktionen selbst programmieren kann.
    Ich habe mich mal umgehört und das herausgefunden:
    Es gibt sozusagen 3 Klassen von Programmiersprachen: Sehr einfache mit begrenzten Möglichkeiten (Bash); "Mittelkomplexe Programme" wie z.B. Python oder Ruby; Und Profi-Werkzeuge wie C;C++;Java


    Falls da oben Fehler drin waren bitte korigieren:)


    Ich glaube was ich brauche ist so was wie Python oder Ruby. Im Moment schwanke ich noch zwischen den beiden:Ruby soll mit Datenbänken von kleinen Programmbruchstücken bestückt sein, was es dem Einsteiger evtll. leichter machen könnte, aber Python wird aktuell (noch?) öfter benutzt und zum Beispiel in GIMP ist schon eine Python Konsole vorinstalliert. Habt ihr Empfehlungen?
    Danke


  • Keine Werbung mehr zwischen den Beiträgen? Jetzt einfach und schnell kostenfrei registrieren!

    • Offizieller Beitrag

    Die Frage ist: Was willst Du denn später in etwa machen? Irgendein Beispiel wäre ganz nett. Denn davon hängt es ja maßgeblich ab womit man programmiert. Und ob ich Python einem Einsteiger empfehlen würde... Ich weiß ja nicht ;)


    Auch Deine Einteilung ist recht untypisch. Klar gibt es komplexere und weniger komplexe Sprachen und Bash bietet bei weitem nicht die Möglichkeiten wie C oder C++, generell unterscheidet man aber eher z.B. in Hochsprachen und Assemblersprachen.


    Ich denke C ist generell eine gute Richtung, denn der Syntax von C hat etliche Programmiersprachen beeinflusst. C++, C#, Java, Perl, PHP... Wenn Du C relativ sicher beherrscht, kann man sich in all die Sprachen recht einfach einarbeiten. Allerdings kann man, meiner Meinung nach, direkt mit C++ beginnen, denn C bietet einige Sachen nicht die man heute regulär einsetzt. Auch wenn es beispielsweise die grundlegende Möglichkeit gibt objektorientiert zu programmieren (OOP), so bieten da C++, C# oder Java wesentlich mehr Möglichkeiten. Mittlerweile auch PHP.

    Panasonic Lumix S5 II | Lumix S 18 mm f/1.8 | Sigma A 35 mm f/1.4 DG DN | Lumix S 50 mm f/1.8

    Sony Alpha 7R IV | Sigma A 14 mm f/1.4 DG DN | Sigma A 20 mm f/2 DG DN | Sigma A 105 mm f/2.8 DG DN Macro

  • Die Frage ist: Was willst Du denn später in etwa machen? Irgendein Beispiel wäre ganz nett. Denn davon hängt es ja maßgeblich ab womit man programmiert. Und ob ich Python einem Einsteiger empfehlen würde... Ich weiß ja nicht ;)

    Naja, einerseits vielleicht Werkzeuge bei GIMP programmieren anderseits, vielleicht so was wie Passwortsicherung von best. Dateien, aber sicher bin ich mir noch nicht.
    Was das mit ruby und python angeht, das sind einfach zwei Begriffe, die ich im UbuntuUserForum gefunden habe. Und von denen eben gesagt wurde, dass Python sehr viel im Linux und Opensource-Bereich verwendet wird. (Zum Beispiel sind etwa 1/4-1/3 der Gimp-Werkzeuge in Python programmiert worden (Diese Daten beruhen auf eigener Schätzung, deswegen so ungenau:)))

    Auch Deine Einteilung ist recht untypisch. Klar gibt es komplexere und weniger komplexe Sprachen und Bash bietet bei weitem nicht die Möglichkeiten wie C oder C++, generell unterscheidet man aber eher z.B. in Hochsprachen und Assemblersprachen.

    Das wollte ich ja ausdrücken:) Dass eben Bash einfacher zu lernen ist, aber bei weitem nicht so viele Funktionen bietet. Da ich in dem Forum es so verstanden habe, dass Ruby und Python irgendwo dazwischen liegen also komplexer als Bash sind, aber auch mehr Funktionen bieten, habe ich die Quasi auch in die Mitte gesetzt. Und C und Co. am Ende, weil die am komplexesten sind, aber auch den größten Funktionumfang haben.
    Da ich alles andere als ein Genie in solchen Sachen bin, aber wenn, dann auch was richtiges lernen will, habe ich mich für so einen mittleren Schwierigkeitsgrad entschieden.


    Ich denke C ist generell eine gute Richtung, denn der Syntax von C hat etliche Programmiersprachen beeinflusst. C++, C#, Java, Perl, PHP... Wenn Du C relativ sicher beherrscht, kann man sich in all die Sprachen recht einfach einarbeiten. Allerdings kann man, meiner Meinung nach, direkt mit C++ beginnen, denn C bietet einige Sachen nicht die man heute regulär einsetzt. Auch wenn es beispielsweise die grundlegende Möglichkeit gibt objektorientiert zu programmieren (OOP), so bieten da C++, C# oder Java wesentlich mehr Möglichkeiten. Mittlerweile auch PHP.

    Und wie lange brauche ich um C oder C++ relativ gut zu beherschen, ohne dass ich irgendwelche Kurse oder so besuche? Ich hatte vor mir das, so wie die Grundlagen der Fotografie, selbst, bzw. mit ausgeliehenen Lehrgängen und Internet-Videos, beizubringen.
    Und da ich nicht alle Funktionen benötige, dachte ich, dass Ruby und Python da eher was für mich wären, aber wenn man so die Grundzüge von vielen verschiedenen Sprachen kann wäre das natürlich echt cool.


    Wie viel schwerer zu lernen schätzt du denn C/C++ gegenüber Ruby/Python ein? Und bringt mir das genauso viel in der Welt von Linux?

    2 Mal editiert, zuletzt von MoinBayern ()

    • Offizieller Beitrag

    Da Linux selbst in C geschrieben und auch sehr offen ist, dürftest Du damit weit kommen. Speziell auf Linux bezogen kann ich Dir nicht genau sagen was Du gegenüber Ruby und Python für Vor- und Nachteile hast - dafür arbeite ich einfach zu selten unter Linux.


    Zur Einarbeitungszeit kann man keine Aussagen machen. Allein "relativ gut zu beherrschen" ist schon so dehnbar... Dann hängt das enorm von Deinem Lerntempo ab - Unmöglich das abzuschätzen. Aber Wochen bis wenige Monate dürften es, eine starke Inselbegabung einmal außen vor, sicherlich nicht werden. Da Du aber anscheinend eben noch so gut wie gar keine Erfahrungen mit dem Thema Programmierung wird der Einsteig überall lange dauern.


    Den Syntax und das "Wörterbuch" einer neuen Sprache zu lernen geht später recht schnell, vor allem wenn sich der Syntax eben an bekanntes anlehnt. Was komplizierter ist, ist das strukturierte Denken - also Gedankengänge in logische Vorgänge zu verschachteln. Sozusagen sich eine If/Else-Denkweise anzueignen, Schleifen im Schlaf zu beherrschen und Programmablaufpläne zu erstellen ;)

  • Also Ubuntu kommt soweit ich weiß mit integriertem JRE, weshalb es vielleicht auch gut wäre Java auszuprobieren.
    Strukturiertes denken hat man denke ich auch sehr schnell drin, wie ich mich erinnere brauchte ich glaube ich keine 2 Monate.


    Du könntest ja mal mit C++ anfangen und wenns dir keinen "Spaß" mehr macht versuchen mit Java anzufangen, die beiden Sprachen ähneln sich sehr weshalb der Umstieg nicht sehr schwer falllen würde :D


    Ich hätte da auch noch in bischen Literatur die ich dir empfehlen könnte :D


    Für Java ist das ziemlich hilfreich : .
    Am Anfang wird noch ein bischen auf generell Programieren eingegangen, nach den einzelnen Kapiteln gibt es noch Übungsaufgaben.
    Desweiteren gibt es Software, die Beispielprogramme und Lösungen zum download.
    In dem Buch wird auch Server- bzw. Netzwerkprogrammierung angeschnitten!


    Für C++ könnte ich 2 Bücher empfehlen :D


    Einmal das: .
    Da wird nicht so sehr aufs Programmieren generell eingegangen aber es gibt auch Übungen am Ende jedes Kapitels und wenn du C++ im schnelldurchlauf "erlernen" möchtest gibt es einen Teil, welcher dir C++ im Schnelldurchlauf darlegt, verständlicherweise nicht so ausführlich :D
    Enthalten ist eine CD mit einem Compiler, einer Entwicklungsumgebung und den Beispielen.


    Und als letztes Buch hab ich noch das hier : .
    Dabei handelt es sich um ein Taschenbuch, deshalb ist keine Software enthalten und es gibt auch keinen Download für Software, etc.
    Ist das älteste von den dreien, bietet aber auch Übungen und Lösungen.



    Falls du auch mal Lust hättest, Programme für dein Handy zu programmieren dann wäre es gut, wenn du Java lernst :D
    Für Java könnt eich dir als Entwicklungsumgebung (IDE) NetBeans ans Herz legen, ist etwas Resourcenfressender als andere bietet aber eine gute Ausstattung grade für Anfänger.
    Für Apps für Android und auch falls du mods für Minecraft schreiben möchtest würde ich dir eclipse als IDE empfehlen :D


    Ich hoffe ich konnte dir helfen :D


    Edit: Tut mir leid wegen den vielen Smileys, ich bin halt ein fröhlicher Mensch :D

  • Ich glaube ich werde mich mal an C++ versuchen.:D
    Dazu gibt es nach meinen Nachforschungen auch am meisten Material:D


    p.s. bin (jetzt) auch ein fröhlicher Mensch :D


    Eine Frage noch: Wird es: Cplusplus, Cdoubleplus oder Cdoppelplus
    ausgesprochen?:D

  • Ahh okay :D
    Dann werde ich mich mal ransetzen -> Bibliothek ich komme:D
    Bis zu meinem Computer werde ich es schon hingekriegt haben.


    Muss ich da eigentlich, wenn ich jetzt üben will so ein Skript herunterladen (jetzt noch für WinVista)? Wo kann ich das?

    • Offizieller Beitrag

    Du brauchst kein Script sondern eine Programmierumgebung wie beispielsweise MS Visual Studio oder netbeans. Wir hatten damals in der Schule Delphi, aber das empfinde ich im Nachhinein als großen Quatsch, denn damit realisiert man für gewöhnlich schon eher größere Projekte.


    Schreiben kannst Du das theoretisch auch in Notepad++, aber ich weiß nicht ob es da mittlerweile auch schon Compiler gibt um das Programm dann testen zu können. Da habe ich das mit PHP und einem Webserver einfacher :D

  • Irgendwelche Empfehlungen? In einem Video habe ich mal was über MS Visual Studio gehört, aber da MS vermutlich für Microsoft steht, heißt das dann, dass es nicht in Linux zu haben ist, oder?
    Vielleicht haben die ja auch Empfehlungen in der Lektüre:)

    • Offizieller Beitrag

    Genau, Visual Studio ist eine Programmierumgebung für Windows, bzgl. Linux kann ich Dir gerade nicht helfen, aber ich denke sowohl in diversen Büchern als auch in den Weiten des WWW wird man so einiges finden. Vielleicht hat ja auch LPTryG0N noch eine Idee ;)

  • Ich werde schon was finden:)
    Aber alzusehr werden die sich doch auch nicht von einander unterscheiden, oder? Sie unterstützen schließlich die gleiche(n) Sprache(n).

    • Offizieller Beitrag

    Naja, die Sprache(n) sind ja "nur" die Existenzberechtigungen. Auch bei Programmierumgebungen gibt es die "Aldi Kompaktkamera" genauso wie die EOS 1D X ;) Da geht es um verschiedene Compiler, Werkzeuge, Projektverwaltung (mit mehreren Programmierern), Unterstützung bei GUI-Design, Debugging usw.


    Vieles davon braucht man als Einsteiger sicherlich nicht, aber ein ordentlicher Debugger sollte z.B. schon dazugehören.

    Panasonic Lumix S5 II | Lumix S 18 mm f/1.8 | Sigma A 35 mm f/1.4 DG DN | Lumix S 50 mm f/1.8

    Sony Alpha 7R IV | Sigma A 14 mm f/1.4 DG DN | Sigma A 20 mm f/2 DG DN | Sigma A 105 mm f/2.8 DG DN Macro

  • In der Tat, ich musste aber ein wenig suchen :D
    Eclipse stellt ebenfalls eine IDE für C++ zur Verfügung, ich habe es nie verwendet deshalb kann ich nichts dazu sagen aber die Java IDE von Eclipse ist schon sehr gut :D
    http://www.eclipse.org/downloa…ide-cc-developers/keplerr auf der Seite kannst du dir rechts am Rand den passenden Download raussuchen :D



    Bei Java könnte ich dir besser helfen, ich hab schon lange nichts mehr mit C++ gemacht, in der Schule hatte ich auch letztes Jahr Java :D

  • Schon ok.
    Ich habe mir netbeans geholt und mir dann, weil das bei netbeans für C++ nicht dabei ist, noch nen paar Sachen bei cygwin runtergeladen (ich glaub debugger,linker und noch irgendwas)
    Aber danach werde ich erstmal mein Hello World schreiben.
    Erster Schritt in jedem Lehrgang:)



    Habe ein Problem ;( ;(
    irgendwie erkennt netbean mein hello world nicht. Wollte es eigentlich noch ein bissl ausbauen mit aktueller uhrzeit und so, aber wenn das schon nicht klappt?
    Wo liegt der Fehler?
    Hier der Screenshot:

    5 Mal editiert, zuletzt von MoinBayern ()

  • Wie gesagt, ich kenn mich nichtmehr so gut damit aus, aber kann es sein, dass du anstatt "#include <iostream>" "#include <iostream.h>" schreiben musst?
    Eigentlich musst du bei jeder Datei die du includest den Dateityp hinten dranschreiben :D


    Edit: Die roten Ausrufezeichen an der Seite bedeuten, dass da was nicht stimmt :D

  • Ich weiß, was die roten Ausrufezeichen bedeuten, ich wollte nur wissen warum sie da sind. Ich habe laut meinem Lehrgang und vieler internet-tutorials alles richtig gemacht.
    Mehrfach genaustens überprüft.
    Also warum meckert es?


    Übringens habe ich jetzt nach einpaar mal mit versch. Endungen Speichern und so weiter eine andere Fehlermeldung:

    Einmal editiert, zuletzt von MoinBayern ()

  • Was sagen dir die roten Ausrufezeichen denn?
    Wenn du die Maus darauf hälst dann wird der Fehler eingeblendet :D
    Muss vielleicht hinter den Include ein Semikolon?
    Sind die Pfeile nach dem "cout" richtig herum? (Sorry, ich weiß nichtmehr wie herum die sein müssen :D )

  • Ja, wie gesagt, nach lehrgang ist alles richtig.
    Bei den Ausrufezeichen steht immer z.B.: "Unable to resolve identifier cout" oder halt bei System: "Unable to resolve system"