The hitchhikers guide to... Programming

mir fiel nix besseres ein wo das hinpassen würde desshalb komme ich hier mal mir meinem Problem angelatscht
Ich. Kann. Nicht. Programmierenen.
Null. nicht eine fucking Zeile. (steinigt ihn! Schmeisst ihn die nächste Klippe runter!)
Das höchste der Gefühle war als wir in info mal mit scratch und lego rumgespielt haben.

Ich seh halt immer mehr, dass mein Gedanke von Wegen “ich habe ein Problem XYZ aber es gibt sicher jemanden der da was für geschrieben hat was mir weiterhilft” ab und an nicht zum Ziel führt.
Daher meine Fragen an euch:

  1. Was war eure erste gelernte Programmiersprache?
    Und
  2. Welche Sprache würdet ihr jemandem wie mir enpfehlen?
  3. wäre dann noch: womit lernt man die Sprache? Auf welchen Weg? Welche how to’s machens einem leichter?

Was will ich tun?
Ich würde das mal “Automatisierungskram” nennen
z.B. 1. Eine Lernkartei für meine Französisch Vokabeln die alle x Tage abfragt
2. ein ding wo ich meine Noten eingebe und meine aktulle gesamtqualifikation für das Abi rausbekomme
Etc. solche Dinge halt

(logik ist ja theoretisch nicht mein Problem. Syntax ist meine krux. Tippfehler. Daher wäre mir eine gewisse fehlertoleranz ganz lieb)

3 „Gefällt mir“
  1. C war meine erste Sprache, hat mein Programmiererleben nachhaltig beeinflusst. Ich klebe auch heute noch an C-basierten Sprachen (C++, C#, ObjectiveC)
  2. Kommt wirklich auf das Problem an. Hier ein paar Beispiele:
    Apps: Java (Android), Swift / ObjectiveC (iOS)
    Kleine Utilities: Python
    Desktop (mehrere Plattformen): C++ mit Qt-Framework
  3. Die Basics mit einem Buch oder Tutorial (Youtube wenn es mit Video sein soll) reinziehen und ab da lernt am besten immer mit einem echten Projekt (scheinst du ja zu haben, sehr gut).
2 „Gefällt mir“

Ohoh… Ich erahne eine hitzige Debatte :smiley:

Vorneweg: Ich glaube das wichtigste beim Programmieren ist es, das einfach mal zu machen. Welche Entscheidung du nun im Detail triffst ist sicherlich zu Beginn viel weniger drastisch und wichtig, als es einfach mal zu probieren. Umsatteln kann man notfalls ja immer noch.

Ich zeige mal ein paar Alternativen auf und hoffe dafür keinen Hohn zu ernten.

  1. Java - Java gilt weder als super performant, noch als sonderlich hübsch. Meiner Meinung nach ist es aber relativ Einsteigerfreundlich in so fern, als das es einen zu Beginn mit recht wenig konfrontiert, sehr viele Online-Materialien zum Nachschlagen, Kopieren und Erfragen hat, sehr schnell und einfach auch zu klickbaren Gui-Applikationen führt (was für einen Anfänger sicherlich ein Motivationsschub sein kann) und zudem auch noch Grundlagen der Objektorientierung gut vermitteln kann. Die klassische Lektüre schlechthin ist hier http://openbook.rheinwerk-verlag.de/javainsel/

  2. Ruby - Die Hipster-Sprache im Web hat ebenfalls viele verfügbare Tutorials und Ressourcen. Der Crashkurs auf Codeschool ist beispielsweise ganz nett. Ruby hat zum Vorteil, das es recht viele Programmierparadigmen sehr elegant unterstützt. Paradigmen zu verstehen hilft einem selbst dabei besseren und geleiteteren Code zu verfassen als auch das Verständnis für andere Sprachen.

  3. PHP - Ich habe mit PHP begonnen. Mit PHP kannst du recht schnell und einfach Code hinhacken der irgendwas, irgendwie tut. Auch ohne Objektorientierung (die es allerdings gibt) hast du ein ewig langes Reportoir an Funktionen die du einfach so verwenden kannst. PHP alleine ist allerdings relativ langweilig. Wer PHP verwendet möchte in aller Regel auch etwas mit HTML ausgeben.

  4. Haskell - Haskell fällt relativ stark aus dem bisherigem Raster in dem Sinne, als das es sich bei Haskell um eine funktionale Programmiersprache handelt. Die sind stark weniger verbreitet als prozedurale Programmiersprachen, haben aber durchaus was für sich. Haskell ist dann ein Tipp, wenn du mit den anderen beim besten Willen nicht klar kommst. Da die Art und Weise hier zu programmieren so stark abweicht (sie ähnelt viel stärker der Denkweise der Mathematik), wäre das dann eventuell nochmal einen Versuch wert.

Das mit der Syntax ist natürlich so eine Sache. Die muss schon immer stimmen, sonst klappt es halt einfach nicht. ^^ Wenn du ein IDE verwendest werden dir aber je nach Programmiersprache auch recht eindeutige Fehlerhinweise gegeben (Beispielsweise Netbeans/Eclipse im Falle von Java).

Ich persönlich fuhr in der Vergangenheit immer mit Learning-By-Doing ganz gut. Sich zunächst ein Ziel zu stecken, wie du das nun mit Noten beispielsweise getan hast und sich dem schrittweise anzunähern halte ich für recht lehrreich.

Spätestens nach dem zweiten Projekt wirst du dann mit deiner Hand auf deiner Stirn auf das, was du da im ersten Anlauf produziert hast, zurückblicken können und aus eben jenen Fehlern lernen können.

1 „Gefällt mir“

Um mal erst die konkreten Fragen anzugehen: Meine erste Programmiersprache war irgend ein BASIC-Dialekt. Später bin ich (bei der Ausbildung) über REXX gestolpert, hab mich da an Spielkrams früherer Azubis inspiriert, und irgendwo in der Zeit realisiert, dass das Prinzip von Programmiersprachen immer gleich ist, nur in der konkreten Ausprägung abweicht.

Empfehlungen würde ich mir jetzt nicht zutrauen, weil es doch eher ne Frage von persönlichen Vorlieben ist, womit man besser klarkommt. Und ich hab auch schon Leute erlebt, die das Denken hinter Programmierung nicht beherrschen (wer die Frage nicht beantworten kann, welche Befehle in einer Schleife wiederholt werden sollten, ist besser bedient wenn man gar nicht selbst programmieren muss).

In Sachen Fipptehler gibt es ja inzwischen so Editoren wie Eclipse und Co, wo der Editor schon Eingaben vervollständigen kann, wenn man nur wenige Tasten gedrückt hat. Da kann man dann auch mit ausschweifenden Bezeichnern spielen.

Ach ja: Steine, frische Steine!

1 „Gefällt mir“

Ein Bekannter hat sich vor kurzem selbst PowerShell beigebracht. Skripting und programmieren in einem.

1 „Gefällt mir“

Meine allererstes programmierbares Gerät war ein Taschenrechner und den konnte man in einem Assembler-ähnlichen Dialekt programmieren. Das erste Gerät mit Tastatur habe ich in Basic programmiert. (Ja, ich bin ein alter Sack).

Ich würde Dir empfehlen, eine interpretierte (Skript-)Sprache zu nutzen, bei der man den Programmcode nicht erst übersetzen muss, um ihn ausführen zu können. Welche Sprache es letztendlich wird, hängt auch von Deinem persönlichen Geschmack ab. Aus Erfahrung kann ich Dir sagen, dass es nicht die einzige Programmiersprache sein wird, die Du im Laufe Deines Lebens lernen wirst.

Beispiele für interpretierte Sprachen:

Ich mag Perl sehr gerne, nicht zuletzt auch wegen der tollen Community. Raten würde ich Dir zu Python oder PHP, wenn Du später auch Webanwendungen programmieren möchtest.

Programmieren lernen aus Büchern finde ich enorm mühsam. Ich habe gute Erfahrungen damit gemacht, konkrete Aufgabenstellungen umzusetzen und diese dann zu variieren. Erst mit etwas kleinem anfangen und dann immer etwas grösseres versuchen.

Dein Abiberechnungsprogramm wäre ein schöner Einstieg für ein einfaches Programm.

Das hier ist ein toller Einstiegsartikel.

Viel Spass!

1 „Gefällt mir“

Ich habe vor ein paar Monaten mit Learn Python the Hard Way angefangen und finde dessen Lektionen sehr empfehlenswert. Vorher hatte ich schonmal Anfängerkurse in C++ und Ruby, sowie Java an der Uni. Aber nie das Gefühl bekommen, dabei was zu lernen. Bei dem Python-Kurs dagegen schon :smile:

Das dafür ebenso nötige stupide “Vokabeln-Lernen” habe ich mit Anki bewältigt: teilweise mit vorgefertigten Lernkarten, teilweise mit eigenen.

4 „Gefällt mir“

Der @Toby hatte in einem Realitätsabgleich mal das Projekt “Hour of Code” erwähnt. Vielleicht ist das auch eine Inspiration für Dich?

2 „Gefällt mir“

Also. Zunächst mal bin ich der Meinung, dass die Beherrschung irgendeiner Programmiersprache in unserer Zeit in etwa so wichtig ist wie Englisch zu können. Also im Sinne von: absolut unverzichtbar.

Daher: ja, mach das.

Welche Sprache man da zum Einstieg nimmt ist m.E. dann gar nicht so entscheidend, grundlegende Aufgaben kannst du in fast allen lösen. Ich würde viel mehr darauf achten, dass man sich nicht zu viel Framework-Wissen am Anfang draufschaffen muss und zudem schnell und responsiv Ergebnisse bekommt. Wenn du nicht vorhast, damit mal wirklich Geld zu verdienen würde ich um Tanker wie C und Java daher eher einen Bogen machen.

Meine Coding-Karriere war Basic, 68000er Assembler, Turbo Pascal, PHP, Javascript, Python. Was ich immer empfehlen würde: fast genauso wichtig wir Programmiersprachen sind Grundlagen in relationalen Datenbanken, also etwas in der Richtung von MySQL - und dann noch die XML/XSLT Schiene draufsatteln. In Kombination mit HTML/CSS/irgendwasJQueryartigem bekommt man dann schon wirklich hippe Projekte hin.

Ich habe mit Büchern gelernt, das würde ich heute nicht mehr empfehlen (oder nur als Ergänzung). Ich bin ein sehr großer Fan von http://www.codecademy.com/ - dort hat man gut aufgebaute Lektionen, tippt seinen Code direkt daneben und hat ein Output-Fenster in dem man interaktiv sieht was passiert. Inklusive Fehleranalyse wenn man etwas falsch gemacht hat. Vor allem nimmt es einem zu Beginn den ganzen Framework-Quatsch ab - man programmiert einfach binnen 30 Sekunden los.

Soo schön!

Die Auswahl dort an Sprachen ist natürlich beschränkt, aber für die Grundlagen ist das ausreichend. Ich würde da wie folgt die Auswahl treffen: wenn man Code eher auf dem Rechner laufen lassen will, im Dateisystem rödeln etc.: Python. Wenn man eigentlich vorhat vornehmlich Webapps zu schreiben: Ruby. Wenn man das können will was gefühlt 90% aller ProgrammiererInnen in den letzten 20 Jahren irgendwann mal gelernt haben (und wobei viele auch bleiben aus diversen Gründen): PHP.

2 „Gefällt mir“

Es gibt übrigens eine ganze Reihe von Websites um programmieren zu lernen, oft auch kostenlos.

Codecademy ist eine fantastische Plattform zum lernen. Ich lerne da gerade Ruby on Rails. Viel Spass! :smile:

1 „Gefällt mir“

Ich sehe das auch so, dass es eigentlich egal ist, welche Programmiersprache man denn jetzt genau lernt. Mit welcher du dich am Anfang detailliert beschäftigst, beeinflusst aber natürlich schon in gewisser Weise, in welche Richtung du dich entwickelst (Desktop, Web, Apps etc.).

Ich habe mit PHP angefangen (da war ich 12) und schreibe auch heute noch einiges in PHP (natürlich mittlerweile deutlich sauberer und strukturierter). Wenn du was mit dem Web machen willst, ist das auf jeden Fall zu empfehlen (du brauchst kaum bis gar keine speziellen Tools dafür).

Noch “besser” im Bezug auf den leichten Einstieg ist JavaScript (+ HTML und CSS). Das läuft dann ja direkt im Browser und du kannst mit dem Texteditor deiner Wahl einfach loslegen, ohne dich um irgendwas zu kümmern. Im Browser kann man ja mittlerweile auch sehr viele tolle Dinge anstellen.

Der Nachteil von sowohl PHP als auch JavaScript ist, dass man da auch so einiges “falsch” machen kann, also Sachen so programmieren, dass am Ende unerwartet Blödsinn bei rauskommt, obwohl man das nicht erwartet hat. Das ist aber für den Einstieg auch ganz gut, denn die nicht so strikten Syntaxregeln verzeihen einem auch viele Fehler. Und die anderen lernt man mit der Zeit zu vermeiden.

Ganz allgemein würde ich dir auf jeden Fall raten, mit einer Scriptsprache anzufangen (also gerade PHP, JavaScript, Python, Ruby etc.). Welche ist dann eigentlich auch egal.

2 „Gefällt mir“