(Moderne) Programmiersprache für Anfänger?
Übersicht

![]() |
ThunderBetreff: (Moderne) Programmiersprache für Anfänger? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo liebe Blitz-Community,
hätte eine Frage an euch, was etwas ironisch ist: Welche Programmiersprachen kennt ihr, die gut für den Einblick ins Programmieren sind? Hintergrund: Ich würde meiner Freundin gerne zeigen, was ich tue, damit sie Programmieren nicht (mehr) für schwarze magie hält ![]() Es soll eine kleine Einführung sein (a la Hour of Code, aber mit echtem Programmieren) und kein kompletter Kurs, das heißt Fokus auf Hands-on und losprogrammieren, keine Konzepte wie OOP etc. Was ich gerne hätte: - Einfache Sprache, wenig Syntax - Mit einfachen Grafikfunktionen (würde gerne schnell zu grafik kommen, weil die Erfolge dann größer wirken) - die sprache soll auch keine konzepte aufzwingen (siehe oben, OOP) - wenn möglich auf Linux lauffähig (muss aber nicht sein, hab schon eine Windows VM auch heruntergeladen) Was ich mir überlegt habe: Natürlich dachte ich als erstes an BlitzBasic ![]() Python mit PyGame. Ist aber zu kompliziert. PyGame braucht Klassen und die Python Syntax ist zwar sehr reduziert, aber ich denke dass sie doch nicht so einfach zu erlernen ist wie eine Basic Syntax. FreeBASIC. kurz angedacht, aber die Syntax ist mir einfach zu wortreich (habe gerade verbose in dict.cc übersetzt): Code: [AUSKLAPPEN] DIM TPlayerPosX AS UINTEGER = 200
' warum nicht einfach: TPlayerPosX = 200 SmallBasic von Microsoft. Extrem reduzierte Syntax, grafikfunktionen sind drinnen, IDE ist simpel und funktional. Wie ich das sehe, wenig Möglichkeiten, Fehler zu machen. Gefällt mir eigentlich sehr gut. Bin also insgesamt ziemlich an Basic Syntax orientiert. So, ich frage natürlich euch für weiteren Input, ich möchte mich gut vorbereiten, damit es kein Misserfolg wird. Würde mich freuen, wenn von euch jemand Erfahrungen hat und sie teilen würde! ![]() |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
ohaz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nutze die https://godotengine.org/ Godot Engine. Sie hat Python-ähnliche Syntax und Grafik gibts auch ganz schnell. | ||
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab letztens zwei 14-Jährigen in rund 2 Stunden Python soweit beigebracht, dass sie mit PyGame ein kleines Spiel haben schreiben können.
OOP in PyGame ist nur halb so wild, da man das OOP dabei (besonders am Anfang) nur passiv verwendet. Man erstellt keine Klassen selbst und braucht sich damit auch nicht um die ganzen schwierigen Sachen oder überhaupt irgendwas mit OOP auseinandersetzen. Ob man schreibt Code: [AUSKLAPPEN] pygame.image.load("irgendwas.png")
oder Code: [AUSKLAPPEN] loadPygameImage("irgendwas.png")
ist für einen Anfänger herzlich wurscht. Wichtiger sind zwei Dinge: Erstens musst du dich echt gut in der Sprache auskennen. Wenn du z.B. ein Java-Profi bist, dann ist es wesentlich einfacher, jemandem Java beizubringen, als eine wesentlich einfachere Sprache in der du dich nicht auskennst. Glaub mir, hab ich oft genug gehabt. Ich hab z.B. meinem kleinen Bruder zuerst versucht BB beizubringen, was ich zu dem Zeitpunkt seit ein paar Jahren nicht mehr verwendet hab. Das war einfach mühsam und hat nicht funktioniert, weil ich mich nicht mehr gut genug ausgekannt hab, um auf Detailfragen sinnvoll zu antworten. Muss man während der Aktion mal in's Manual schauen, hat man eigentlich schon verloren, weil in den Minuten das Interesse verloren geht. Danach hab ich's mit Java probiert (was ich zu dem Zeitpunkt sehr aktiv verwendet hab) und es hat gut geklappt. Zweitens musst du gut vorbereitet sein. Die Sprache sowie alle benötigten Editoren, IDEs und Frameworks musst du vorher schon vorher installieren und testen, dass sie gehen. Du musst wissen, wie das, was du in der Session beibringen willst, alles funktioniert. Besonders wenn dein "Opfer" sich nicht so arg für's Programmieren interessiert, ist das Interesse schnell weg, wenn es unnötige Verzögerungen aufgrund von falsch konfigurierten IDEs oder so geht. Am Besten plane deine "Lektion" im Vorhinein durch und programmier mal alles durch, was du zeigen willst. Und solltest du das zum ersten Mal machen, rechne damit, dass du vielleicht ein Viertel von dem durchkriegst, was du in der Zeit durchkriegen willst. Schau also, dass du in der Zeit nicht auf ein großes Ding hinarbeitest, dass erst cool ist, wenn alles fertig ist, sondern bau kleine Milestones ein, mit denen man spätestens alle 10 Minuten was Interessantes sieht. Es ist, was das Erlebnis angeht, wesentlich netter, wenn deine Freundin einen Ball hingekriegt hat, den man mit den Cursor-Tasten bewegen kann, als wenn sie den nicht-funktionalen Anfang von dem nächsten WoW macht, in dem noch gar nichts geht. |
||
Gewinner der 6. und der 68. BlitzCodeCompo |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich benutze AGK2 unter Linux - Lubuntu 17.04.
AGK2 Einfach bei Steam gekauft, installiert und schon funktionierte alles. - IDE ist bereits enthalten die vollkommen ausreichend ist - Programmiersprache ist wie BlitzBasic / Blitz3D nur modern - Bilder laden und auf den Bildschirm zeigen ist ganz einfach zu realisieren - Selbst Shader einfach laden und auf ein Image pappen, fertig - AGK2 enthält bereits eine 2D- und eine 3D-Physik-Engine - Es lassen sich Bilder laden und daraus automatisch konvexe Physikobjekte erstellen - Es kommen ständig neue Updates raus. Ich hatte auch ein Bug gemeldet, welcher 2 Wochen später gefixt wurde - Der Code ist dann Lauffähig auf Windows, Linux, IOS, MacOS, Android, HTML5 und Raspberry Pi (wobei ich es nur auf Linux nutze) Bei den ersten Gehversuchen störte mich das Handlesystem. Später erst bemerkte ich, dass man auch das übliche nutzen kann. Jeder wie er eben mag. Möglich ist folgender Code: [AUSKLAPPEN] LoadImage(1,"image.png")
Aber auch dieser hier Code: [AUSKLAPPEN] image=LoadImage("image.png")
https://www.appgamekit.com |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
Cykid |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich weiß nicht ob es das ist was du suchst, aber ich habe es meiner Madam mit "human resource machine" gezeigt.
Eventuell ist es ja eine Idee ![]() |
||
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich glaube Godot und AGK sind etwas übertrieben.. ich denke das wäre dann der zweite Schritt. Falls sie weitermachen will.
@DAK: du hast recht bezüglich OOP in PyGame, ich habe da wohl ein Tutorial gesehen, das direkt für seine Spielfiguren Klassen erstellt hat, die von einer PyGame sprite klasse (glaube ich) abgeleitet waren, aber anscheinend kann man darauf ja verzichten. Deine allgemeinen Tipps sind auch sehr hilfreich! Human Resource Machine ist auch ein guter Tipp! Überlege ich mir noch, ob ich ihr Programmieren in einem Spiel verpackt zeigen will oder blank ![]() Danke euch allen! ![]() Vielleicht schreibe ich Mal, wie es mir ergangen ist, aber kann noch dauern bis dahin. |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
![]() |
Lakorta |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was ich noch empfehlen könnte wäre Greenfoot. Das basiert zwar auf Java und ist damit OOP, hat allerdings eine (mmn) anfängerfreundliche Oberfläche. Greenfoot hat auch mehrere simple Beispiele und wird teilweise auch an Schulen benutzt, um Programmieranfängern das Programmieren bei zu bringen.
Würde allerdings nicht unbedingt Sinn machen, falls du kein Java kannst. |
||
--- |
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke Lakorta, ist auf jeden Fall ein guter Vorschlag.
Ich kann schon Java (würde mich aber auch nicht als profi bezeichnen), ich bezweifle nur dass es die richtige Anfängersprache ist. Ich werde es mir trotzdem auf jeden Fall überlegen. Man sollte in der ersten Programmiersprache meiner Meinung nach nicht Typen spezifizieren müssen. Ich weiß noch, wie oft ich anfangs in BB solche Fehler gemacht hab: BlitzBasic: [AUSKLAPPEN] eingabe = Input("Sag etwas: ") Andererseits sollte man in der 1. Programmiersprache auch nicht viel Code zu schreiben haben, den man nicht versteht. Bsp Java: Code: [AUSKLAPPEN] public class CKlasse{ // Klasse muss immer mit C anfangen
public static void main(String[] args){ } } Die Anzahl an Schlüsselwörtern, die nötig ist, damit der Compiler mal durchläuft, ist gewaltig. Noch dazu ist das Code, den man einem Anfänger nicht erklären will. Bei meinen ersten Versuchen, Java zu lernen, habe ich einfach nicht gewusst, dass die Datei genau so heißen muss wie die Klasse, in der main steht. Stundenlange Frustration, bis ich aufgab. |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group