Ich habe mich schon immer für verschiedene Ideen zum Programmierenlernen interessiert. Vielleicht liegt es daran, dass ich auf diesem Gebiet ein ewiger Schüler bin. Aber heute habe ich eine unerwartete
Idee für mich kennengelernt - mit Java zu lernen. Und ich konnte nicht schweigen.
Ich bin kein großer Pädagogikspezialist - vielleicht ist es in der Informatik üblich, Schüler ins Wasser zu werfen, einen tieferen Ort zu wählen und dort diejenigen, die dazu bestimmt sind, hochzukommen. Dennoch scheint mir das Training am effektivsten zu sein, wenn der Lehrer den Schüler mit zunehmender Komplexität nacheinander in verschiedene Programmierkonzepte einführt. Daher ist die Hauptvoraussetzung für ein PL „Training“ die Fähigkeit, Ihre Funktionen isoliert zu verwenden, beginnend mit den grundlegendsten.
Auch hier ist es meiner Meinung nach leicht zu überprüfen, ob die Programmiersprache diese Anforderung erfüllt. Öffnen Sie einfach
den Abschnitt "Hallo Welt" von Rosetta Code .
Versuchen wir, die Konzepte aufzulisten, die zum Verständnis dieser elementaren Programme erforderlich sind.
Es wird auf Wunsch der Radiohörer ergänzt. Brainfuck, PHP, C, Julia.
Python 2
print 'Hello world!'
Beim Parsen dieses Codes sollte der Lehrer seinen Schülern zumindest kurz erklären, welche
Schlüsselwörter ,
Operatoren und
Zeichenfolgendatentypen vorliegen . Selbstverständlich können einige Schüler (aber nicht alle!) Auch ohne eine solche Erklärung schnell ein intuitives Verständnis für diese Funktionen entwickeln. Es ist jedoch besser, sofort Gewissheit zu erlangen.
Ruthon 3
print('Hello world!')
Das Konzept einer
Funktion wird zu Schlüsselwörtern und
Zeilen hinzugefügt. Ja, die
print
ist ein Plus von Python 3 als Industriesprache. Gleichzeitig ist eine Funktion eine übergeordnete Funktion als ein Operator, was das Studium von Python 3 als erstem PL erschwert. Ja, Sie als Lehrer können die Erklärung der Notwendigkeit, Klammern für eine der folgenden Klassen zu verwenden, verschieben, aber dies wird Ihren Schülern weiterhin Kopfschmerzen bereiten.
Julia
println("Hello world!")
Die gleichen Grundkonzepte wie im Fall von Python 3. Julia ist jedoch ein dynamisches Hochleistungs-Java, das in nativen Code kompiliert wurde. Bravo!
Basic
10 PRINT "Hello world!"
Schlüsselwörter ,
Zeichenfolge AP ,
Operatoren ,
Nummerierung der Codezeilen. Die Zeilennummerierung in Basic ist ein recht komplexes Konzept auf niedriger Ebene, das das physische Speichergerät eines Computers nachahmt. Es kann zu einem Stolperstein für einen Schüler werden, wenn der Lehrer nicht auf sie achtet.
In späteren Dialekten wie VisualBasic werden Codezeilen zu einfachen, nicht berechenbaren
Bezeichnungen . Im ersten Programm werden keine Tags benötigt. Die Sprache wird daher für das Grundlernen einfacher.
Pascal
program HelloWorld(output); begin writeln('Hello, World!'); end.
Keywords ,
String-TD ,
Operatoren ,
Funktionen und was noch? Da das Programm mehrere Zeilen,
Blöcke ,
Begrenzer (oder
Abschlusszeichen ? Ich verwechsle sie immer) und
Einrückungen enthält, werden die ersten Konzepte hinzugefügt. Und die
program
ist nicht so einfach ... Es scheint, dass die Freundlichkeit von Pascal etwas übertrieben ist.
C
#include <stdlib.h> #include <stdio.h> int main(void) { printf("Hello world!\n"); return EXIT_SUCCESS; }
Schlüsselwörter ,
Zeichenfolgen-APs ,
Operatoren ,
Funktionen ,
Blöcke ,
Begrenzer und
Einrückungen sowie
Präprozessoranweisungen und
Makros . In diesem Beispiel konnte auf Makros verzichtet werden, aber die
return EXIT_SUCCESS
in diesem Fall sehr bezeichnend: C ist eine traditionelle Systemprogrammiersprache, daher ist es ratsam, sie auf der Grundlage eines guten Verständnisses der Funktionsweise von
Betriebssystemen und mit Schwerpunkt auf
Portabilität zu untersuchen . Ansonsten erscheint diese PL etwas komplizierter als Pascal.
Php
<?php echo "Hello world!\n"; ?>
Neben dem Verständnis von
Schlüsselwörtern ,
Zeichenfolgen-APs ,
Operatoren und
Begrenzungszeichen (oder
Terminatoren ?) Kann dieses Beispiel nicht ohne ein grundlegendes Verständnis bestimmter Webtechnologien wie
Markup-Sprachen (HTML) und
Template-Engines erlernt werden. Tatsächlich ist PHP die Vorlagensprache, eine Art DSL. Daher ist PHP eine großartige Lernsprache für einen Front-End-Anbieter, der tiefer in die Back-End-Technologie eintauchen möchte. PHP von Grund auf zu lernen ist jedoch ziemlich schwierig.
C ++
#include <iostream> int main () { std::cout << "Hello world!" << std::endl; }
Schlüsselwörter ,
Zeichenfolgen-AP ,
Operatoren ,
Funktionen ,
Blöcke ,
Begrenzer und
Einrückungen sowie ein
Präprozessor mit seinen Anweisungen, seinem
Gültigkeitsbereich , der
Streaming-Eingabe / Ausgabe ... Ugh, ist das alles?
Java
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello world!"); } }
Schlüsselwörter ,
Zeichenfolgen-AP (auch zwei Zeichenfolgen-APs, aber Sie können sich darüber keine
Gedanken machen ),
leere APs ,
Arrays ,
Blöcke ,
Trennzeichen und
Einrückungen sowie
Klassen ,
Objekte (implizit, aber Sie können
static
anders erklären),
Attribute ,
Methoden ,
Modifikatoren Zugang ... Gott, ich will das alles schon sehen! Immerhin wollte ich nur Mods für Minecraft schreiben!
C #
namespace HelloWorld { class Program { static void Main(string[] args) { System.Console.WriteLine("Hello world!"); } } }
Das gleiche Java, abzüglich
Zugriffsmodifikatoren und
Namespaces . Nichts interessantes, wir gehen vorbei.
Brainfuck
Ich möchte hier nicht auflisten - es ist zu voluminös und eintönig. Ich werde nur die grundlegenden Konzepte auflisten, die zum Verständnis dieses Beispiels erforderlich sind:
Schlüsselwörter ,
Operatoren ,
Variablen ,
Zeiger ,
Bedingungen ,
Schleifen ,
numerische Darstellung von Zeichen (ASCII-Tabelle). Ja, Brainfuck ist für Anfänger nicht die am besten zugängliche Sprache.
Fazit
Natürlich gibt es neben dem „Schnelleinstieg“ (leicht verständliche Grundprogramme) eine Reihe von Faktoren, die die Wahl des PL für das Training beeinflussen. Dies ist die Verfügbarkeit praktischer Umgebungen und Tools für die Codierung, die Qualität der Dokumentation und schließlich die praktische Anwendbarkeit. Wenn die ersten Lernschritte jedoch mit Schmerzen und Missverständnissen verbunden sind, kann dies alle anderen Argumente überwiegen. Lernen Sie im Allgemeinen einfach und stören Sie sich nicht!