Le meilleur langage de programmation pour les débutants

J'ai toujours été intéressé par différentes idées sur l'apprentissage de la programmation. C'est peut-être parce que je reste un étudiant éternel dans ce domaine. Mais aujourd'hui, j'ai fait connaissance avec une idée inattendue pour moi: commencer à apprendre avec Java. Et je ne pouvais pas me taire.

Je ne suis pas un grand spécialiste de la pédagogie - peut-être en informatique, il est de coutume de jeter les étudiants à l'eau, de choisir un endroit plus profond, et là - ceux qui sont destinés à venir. Mais il me semble toujours que la formation sera plus efficace si l'enseignant initie l'élève à divers concepts de programmation un par un, à mesure que la complexité augmente. Par conséquent, la principale exigence pour un PL «de formation» est la capacité d'utiliser vos fonctionnalités isolément, en commençant par les plus élémentaires.

Encore une fois, à mon avis amateur, il est facile de vérifier si le langage de programmation répond à cette exigence. Ouvrez simplement la section «Hello World» sur Rosetta Code .

Essayons d'énumérer les concepts nécessaires à la compréhension de ces programmes élémentaires.

Il est complété à la demande des auditeurs radio. Brainfuck, PHP, C, Julia.


Python 2


print 'Hello world!' 


Lors de l'analyse de ce code, l'enseignant doit au moins expliquer brièvement à ses élèves quels sont les mots clés , les opérateurs et le type de données de chaîne . Bien sûr, même sans une telle explication, certains étudiants (mais pas tous!) Peuvent rapidement développer une compréhension intuitive de ces fonctionnalités. Cependant, il est préférable d'obtenir immédiatement une certitude.

Ruthon 3


 print('Hello world!') 


Le concept de fonction est ajouté aux mots clés et aux lignes . Oui, la fonction d' print est un plus de Python 3 en tant que langage industriel. Mais en même temps, une fonction est une fonctionnalité de niveau supérieur à un opérateur, ce qui complique l'étude de Python 3 en tant que premier PL. Oui, vous, en tant qu'enseignant, pouvez reporter l'explication de la nécessité d'utiliser des supports pour l'une des classes suivantes, mais cela restera une douleur dans le cerveau de vos élèves.

Julia


 println("Hello world!") 


Les mêmes concepts de base que dans le cas de Python 3. Mais Julia est un Java dynamique hautes performances compilé en code natif. Bravo!

Basique


 10 PRINT "Hello world!" 


Mots - clés , chaîne AP , opérateurs , numérotation des lignes de code. La numérotation des lignes dans Basic est un concept de bas niveau plutôt complexe qui imite le périphérique de mémoire physique d'un ordinateur. Cela peut devenir une pierre d'achoppement pour un élève si l'enseignant ne fait pas attention à elle.

Dans les dialectes ultérieurs, tels que VisualBasic, les lignes de code deviennent des étiquettes simples et non calculables. Dans le premier programme, les balises ne sont pas nécessaires. La langue devient donc plus facile pour l'apprentissage élémentaire.

Pascal


 program HelloWorld(output); begin writeln('Hello, World!'); end. 


Mots - clés , chaîne TD , opérateurs , fonctions et quoi d'autre? Étant donné que le programme prend plusieurs lignes, des blocs , des délimiteurs (ou des terminateurs ? Je les confond toujours) et des retraits sont ajoutés aux premiers concepts. Et l'énoncé du program n'est pas si simple ... Il semble que la gentillesse de Pascal soit quelque peu exagérée.

C


 #include <stdlib.h> #include <stdio.h> int main(void) { printf("Hello world!\n"); return EXIT_SUCCESS; } 


Mots clés , chaînes de points d'accès , opérateurs , fonctions , blocs , délimiteurs et indentation , ainsi que directives et macros de préprocesseur . Il était possible de se passer de macros dans cet exemple, mais le return EXIT_SUCCESS dans ce cas est très indicatif: C est un langage de programmation système traditionnel, il est donc conseillé de l'étudier sur la base d'une bonne compréhension du fonctionnement des systèmes d'exploitation et en mettant l'accent sur la portabilité . Sinon, ce PL semble un peu plus compliqué que Pascal.

Php


 <?php echo "Hello world!\n"; ?> 


Outre la compréhension des mots clés , des points d'accès de chaîne , des opérateurs et des délimiteurs (ou terminateurs ?), Cet exemple ne peut pas être appris sans une compréhension de base de technologies Web spécifiques telles que les langages de balisage (HTML) et les moteurs de modèle . En fait, PHP est le langage de modèle, une sorte de DSL. Par conséquent, PHP est un excellent langage d'apprentissage pour un fournisseur frontal qui souhaite approfondir la technologie backend. Mais apprendre PHP à partir de zéro est assez difficile.

C ++


 #include <iostream> int main () { std::cout << "Hello world!" << std::endl; } 


Mots - clés , chaîne de caractères AP , opérateurs , fonctions , blocs , délimiteurs et indentation , ainsi qu'un préprocesseur avec ses directives, sa portée , son flux d'entrée / sortie ... Pouah, c'est tout?

Java


 public class HelloWorld { public static void main(String[] args) { System.out.println("Hello world!"); } } 


Mots - clés , chaîne AP (même deux chaînes AP, mais vous pouvez rester silencieux à ce sujet), AP vide , tableaux , blocs , séparateurs et indentation , ainsi que les classes , les objets (implicitement, mais vous ne pouvez pas expliquer static autrement), les attributs , les méthodes , les modificateurs accès ... Dieu, je veux déjà voir tout ça! Après tout, je voulais seulement écrire des mods pour Minecraft!

C #


 namespace HelloWorld { class Program { static void Main(string[] args) { System.Console.WriteLine("Hello world!"); } } } 


Le même Java, moins les modificateurs d'accès , plus les espaces de noms . Rien d'intéressant, on passe.

Brainfuck


Je ne veux pas énumérer ici - c'est trop volumineux et monotone. Je vais seulement énumérer les concepts de base qui doivent être appris pour comprendre cet exemple: mots clés , opérateurs , variables , pointeurs , conditions , boucles , représentation numérique des caractères (tableau ASCII). Oui, Brainfuck n'est pas la langue la plus accessible pour les débutants.

Conclusion


Bien sûr, en plus de l '«entrée rapide» (facilité de compréhension des programmes élémentaires), il existe un certain nombre de facteurs qui influencent le choix du PL pour la formation. Il s'agit de la disponibilité d'environnements et d'outils pratiques pour le codage, de la qualité de la documentation et, enfin, de l'applicabilité pratique. Mais si les premières étapes de l'apprentissage sont liées à la douleur et à l'incompréhension, cela peut l'emporter sur tous les autres arguments. En général, apprenez facilement et ne vous embêtez pas!

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


All Articles