Die beste Programmiersprache für Anfänger

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!

Source: https://habr.com/ru/post/de477038/


All Articles