El mejor lenguaje de programación para principiantes.

Siempre me han interesado diferentes ideas sobre la programación de aprendizaje. Quizás esto se deba a que sigo siendo un estudiante eterno en este campo. Pero hoy conocí una idea inesperada para mí: comenzar a aprender con Java. Y no pude guardar silencio.

No soy un gran especialista en pedagogía, tal vez en ciencias de la computación, es costumbre tirar a los estudiantes al agua, elegir un lugar más profundo y allí, a aquellos que están destinados a subir. Pero todavía me parece que la capacitación será más efectiva si el maestro presenta al alumno varios conceptos de programación, uno a la vez, a medida que aumenta la complejidad. Por lo tanto, el requisito principal para un PL de "entrenamiento" es la capacidad de utilizar sus funciones de forma aislada, comenzando por las más básicas.

Nuevamente, en mi opinión de aficionado, es fácil verificar si el lenguaje de programación cumple con este requisito. Simplemente abra la sección "Hola Mundo" en el Código de Rosetta .

Intentemos enumerar los conceptos necesarios para comprender estos programas elementales.

Se complementa a petición de los oyentes de radio. Brainfuck, PHP, C, Julia.


Python 2


print 'Hello world!' 


Al analizar este código, el maestro debe explicar al menos brevemente a sus alumnos qué palabras clave , operadores y tipo de datos de cadena son . Por supuesto, incluso sin tal explicación, algunos estudiantes (¡pero no todos!) Pueden desarrollar rápidamente una comprensión intuitiva de estas características. Sin embargo, es mejor lograr inmediatamente la certeza.

Ruthon 3


 print('Hello world!') 


El concepto de una función se agrega a palabras clave y líneas . Sí, la función de print es una ventaja de Python 3 como lenguaje industrial. Pero al mismo tiempo, una función es una característica de nivel superior que un operador, y esto complica el estudio de Python 3 como el primer PL. Sí, usted como maestro puede posponer la explicación de la necesidad de usar paréntesis para una de las siguientes clases, pero esto seguirá siendo un dolor en el cerebro de sus alumnos.

Julia


 println("Hello world!") 


Los mismos conceptos básicos que en el caso de Python 3. Pero Julia es una Java dinámica de alto rendimiento compilada en código nativo. Bravo!

Básico


 10 PRINT "Hello world!" 


Palabras clave , cadena AP , operadores , numeración de líneas de código. La numeración de líneas en Basic es un concepto de bajo nivel bastante complejo que imita el dispositivo de memoria física de una computadora. Puede convertirse en un obstáculo para un estudiante si el maestro no le presta atención.

En dialectos posteriores, como VisualBasic, las líneas de código se convierten en etiquetas simples, no computables. En el primer programa, no se necesitan etiquetas. El lenguaje, por lo tanto, se vuelve más fácil para el aprendizaje elemental.

Pascal


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


Palabras clave , cadena TD , operadores , funciones y ¿qué más? Dado que el programa toma varias líneas, bloques , delimitadores (¿o terminadores ? Siempre los confundo) y se agregan sangrías a los primeros conceptos. Y la declaración del program no es tan simple ... Parece que la amabilidad de Pascal es algo exagerada.

C


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


Palabras clave , cadenas AP , operadores , funciones , bloques , delimitadores y sangría , así como directivas y macros de preprocesador . En este ejemplo, fue posible prescindir de las macros, pero return EXIT_SUCCESS en este caso es muy indicativo: C es un lenguaje de programación de sistema tradicional, por lo tanto, es recomendable estudiarlo sobre la base de una buena comprensión del funcionamiento de los sistemas operativos y con un enfoque en la portabilidad . De lo contrario, este PL parece un poco más complicado que Pascal.

Php


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


Además de comprender palabras clave , AP de cadena , operadores y delimitadores (¿o terminadores ?), Este ejemplo no se puede aprender sin una comprensión básica de tecnologías web específicas como lenguajes de marcado (HTML) y motores de plantillas . En realidad, PHP es el lenguaje de plantilla, una especie de DSL. Como resultado, PHP es un gran lenguaje de aprendizaje para un proveedor front-end que quiere profundizar en la tecnología de back-end. Pero aprender PHP desde cero es bastante difícil.

C ++


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


Palabras clave , cadena AP , operadores , funciones , bloques , delimitadores y sangría , así como un preprocesador con sus directivas, alcance , entrada / salida de transmisión ... Uf, ¿eso es todo?

Java


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


Palabras clave , AP de cadena (incluso dos AP de cadena, pero puede guardar silencio al respecto), AP vacío , matrices , bloques , delimitadores e indentación , así como clases , objetos (implícitamente, pero de lo contrario no explicará static ), atributos , métodos , modificadores acceso ... Dios, ya quiero ver todo esto! Después de todo, ¡solo quería escribir mods para Minecraft!

C #


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


El mismo Java, menos modificadores de acceso , más espacios de nombres . Nada interesante, pasamos de largo.

Brainfuck


No quiero enumerar aquí, es demasiado voluminoso y monótono. Solo enumeraré los conceptos básicos que deben aprenderse para comprender este ejemplo: palabras clave , operadores , variables , punteros , condiciones , bucles , representación numérica de caracteres (tabla ASCII). Sí, Brainfuck no es el idioma más accesible para principiantes.

Conclusión


Por supuesto, además de la "entrada rápida" (facilidad para comprender los programas elementales), hay una serie de factores que influyen en la elección de PL para la capacitación. Esta es la disponibilidad de entornos y herramientas convenientes para la codificación, y la calidad de la documentación y, finalmente, la aplicabilidad práctica. Pero si los primeros pasos en el aprendizaje están relacionados con el dolor y la incomprensión, esto puede ser mayor que todos los otros argumentos. ¡En general, aprende fácilmente y no te molestes!

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


All Articles