PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage Gibt es eine Lern-App zum Programmieren lernen?



balanceistischen
30.05.2020, 04:58
Gibt es eine Lern-App zum Programmieren lernen, wo man die einzeln Programmierbefehle lernt und anschließend lernt, wie man ein Programm schreibt? Und wen, ja, in welcher Programmiersprache und für welches Gerät (z. B. PC und Mikrocontroller)?

HaWe
30.05.2020, 10:47
hallo,
ich würde zunächst die Frage eingrenzen, denn es ist entscheidend, dass du nicht "in die falsche Richtung" lernst:
a) was für Geräte willst du programmieren?
b) mit welcher Programmiersprache willst du programmieren lernen?

Wenn du z.B. schon weißt, dass du kleine Microprozessoren programmieren willst, dann macht es wenig Sinn, wenn du mit Lernprogrammen zu Java oder Python anfängst - "C" wäre da eher geeignet, am ehesten mit Arduinos.
Wenn du allerdings weißt, dass du einen Raspberry Pi programmieren lernen willst, dann wäre Python die bessere Wahl, um damit zu starten, denn mit C wirst du ohne Vorkenntnisse erheblich ins Stocken geraten.
Um Programme für Windows PCs zu schreiben, wäre dagegen zum Beispiel Microsoft Visual Studio geeignet (früher war Delphi nahezu ideal).
Wenn du Programme für Android Smartphones (eigene Apps) schreiben willst, eher Java.

Da du hier im Roboterforum bist, wären für kleine Roboter vielleicht am ehesten Arduinos oder RaspberryPis die geeigneten Plattformen, also als Programmiersprache C (genau: C++) oder Python. Auch grafische Programmierung mit Befehlsblöcken, die man aneinandersteckt ("Scratch") ist für Anfänger nicht schlecht.

Wenn du das also schon sagen kannst, kann man weitersehen...

jmoors
30.05.2020, 11:14
Eine App kenne ich nicht, aber der Rheinwerk-Verlag (https://www.rheinwerk-verlag.de/programmierung-maker/) hat recht gute Bücher zu Programmiersprachen, etc. Die sind auch für Anfänger geeignet.

Verrate uns doch, auf welcher Plattform (Windows, RasPi, LINUX) du welche Programmiersprachen programmieren möchtest. Pauschal kann ich dir Python nahelegen, da die Sprache auf fast allen Plattformen verfügbar, einfach zu erlernen, aber trotzdem sehr mächtig ist.

Gnom67
30.05.2020, 12:22
Ich bin der Meinung, dass weder die Art der zu programmierenden Geräte noch die gewählte Sprache den entscheidenden Ausschlag gibt. Natürlich macht es einen Unterschied, ob ich eine Unternehmensanwendung, einen Roboter oder ein Funksystem auf einem Mikrocontroller programmiere und natürlich hat jede Sprache ihre Stärken und Schwächen - aber es gibt halt einige grundlegende Kenntnisse, die wichtiger sind, als einzelne Programmbefehle. Ein ganz kleines bisschen gilt für Programmiersprachen: "Kennst du eine, kennst du alle."

Viel wichtiger finde ich, dass man erstmal die Funktionsweise der Programmierung generell versteht. Dabei sollte man vor allem die beiden verbreitetsten Programmierparadigmen (Prozedurale Programmierung und Objektoreintierte Programmierung) verstehen. Außerdem sollte man grundlegend verstehen, wie die Hardware (vor allem der Prozessor) funktioniert.

Aus eigener Erfahrung kann ich nur empfehlen, von Anfang an objektorientiert zu programmieren. Wer sich mal prozedural "versaut" hat, tut sich schwer, auf die Objektorientierung umzusteigen, weil der Ansatz gedanklich ein ganz anderer ist.

Ansonsten hilft das ganze Lernen nichts... Beim programmieren gilt: Übung macht den Meister. Man kann Programmbefehle nicht wie Vokabeln büffeln und die Programmiersprache nicht mit Grammatikregeln erschlagen. Programmieren bedeutet, Lösungswege (Algorithmen) in Befehle zu fassen. Das größte Problem beim Programmieren ist das Strukturieren von Lösungswegen. Insofern sollte man sich Aufgaben vornehmen und einfache Beispielprogramme und Algorithmen ausprobieren.

Es gibt eine sehr schöne Website (deutsch) mit Programmieraufgaben und Lösungen. (Leider kann man die Lösungen nur sehen, wenn man selbst eine eingereicht hat oder es mindestens 3 Lösungen für die Aufgabe gibt - aber Anregungen und auch Lösugnen gibts dort reichlich.) Interessant ist z. B. zu sehen, dass es für die gleiche Aufgabe eine Lösung mit 3 Seiten Code und eine mit 8 Zeilen gibt - wohlbemerkt in der gleichen Programmiersprache - der Unterschied liegt im Algorithmus. TrainYourProgrammer (https://trainyourprogrammer.de/)

balanceistischen
31.05.2020, 00:11
Eine App kenne ich nicht, aber der Rheinwerk-Verlag (https://www.rheinwerk-verlag.de/programmierung-maker/) hat recht gute Bücher zu Programmiersprachen, etc. Die sind auch für Anfänger geeignet.

Verrate uns doch, auf welcher Plattform (Windows, RasPi, LINUX) du welche Programmiersprachen programmieren möchtest. Pauschal kann ich dir Python nahelegen, da die Sprache auf fast allen Plattformen verfügbar, einfach zu erlernen, aber trotzdem sehr mächtig ist.

Danke für deinen Hinweis, über rheinwerk-verlag.de! Ich habe auch noch keine Lern-Apps zum Thema Programmieren gefunden. Über Math, Musik, Notlernen usw. gibt es viel, aber leider nicht über Programmieren.

jmoors
31.05.2020, 11:35
Ich glaube, hier warten noch alle auf eine Auskunft von dir darüber, welche Sprache Du lernen möchtest, auf welcher Plattform, usw.
Hast Du evtl. ein Projekt, dass Du umsetzen möchtest? Oder brauchst Du das für den Job, wenn ja (grob) welcher Bereich?

Wir können dir sicherlich helfen und auch konkrete Buchempfehlungen, Forenempfehlungen, etc., geben.

balanceistischen
31.05.2020, 18:36
Ich glaube, hier warten noch alle auf eine Auskunft von dir darüber, welche Sprache Du lernen möchtest, auf welcher Plattform, usw.
Hast Du evtl. ein Projekt, dass Du umsetzen möchtest? Oder brauchst Du das für den Job, wenn ja (grob) welcher Bereich?

Wir können dir sicherlich helfen und auch konkrete Buchempfehlungen, Forenempfehlungen, etc., geben.

Bitte für Assembler und C (C++).

HaWe
31.05.2020, 20:19
Assembler ist reiner, direkter Maschinencode, daher sehr stark plattformabhängig und kaum portierbar. Außerdem schwer zu lernen und zu lesen - nichts für Anfänger IMO.
Auch C/C++ unterscheidet sich sehr, ob für kleine MCUs (z.B. AVR, ARM, ohne file system), für MCU mit RTOS (z.B. ESP32, mit veränderten C/C++ standard libs) oder für Linux - oder Windows PCs mit OS (C stdio, POSIX, C++ std:: files+libs); Arduino macht die Sache für AVRs, ARMs und ESP MCUs in vereinheitlichter Weise einfacher.

Also für welche Zielplattform?

oder für welche Art von Programm-Projekten?
Datenbanken, Roboter, IoT Smarthome, Wetterstationen, neuronale Netze, Computerspiele, Grafiprogramme, Multimedia,...?

balanceistischen
31.05.2020, 20:50
Danke für die Bemühung! Ich habe jetzt Lern-Apps für Programmieren lernen nach einer gründlichen Suche im Internet gefunden.

HaWe
31.05.2020, 21:29
schreib mal einen Link, damit wir wenigstens wissen, WAS du gesucht und gefunden hast.
Damit wir auch Motivation haben, dir bei einer deiner nächsten Fragen zu antworten, denn sehr hilfreich waren deine Einlassungen und Erläuterungen nicht. ;)