A melhor linguagem de programação para iniciantes

Sempre me interessei por diferentes idéias sobre o aprendizado de programação. Talvez seja porque eu permaneço um eterno estudante neste campo. Mas hoje eu me familiarizei com uma ideia inesperada para mim - começar a aprender com Java. E eu não consegui ficar calado.

Eu não sou um grande especialista em pedagogia - talvez em ciência da computação seja costume jogar estudantes na água, escolhendo um lugar mais profundo e lá - aqueles que estão destinados a aparecer. Mas ainda me parece que o treinamento será mais eficaz se o professor apresentar ao aluno vários conceitos de programação, um de cada vez, à medida que a complexidade aumenta. Portanto, o principal requisito para um PL de "treinamento" é a capacidade de usar seus recursos isoladamente, começando pelo mais básico.

Novamente, na minha opinião amadora, é fácil verificar se a linguagem de programação atende a esse requisito. Basta abrir a seção "Hello World" no Código Rosetta .

Vamos tentar listar os conceitos necessários para entender esses programas elementares.

É complementado a pedido de ouvintes de rádio. Brainfuck, PHP, C, Julia.


Python 2


print 'Hello world!' 


Ao analisar esse código, o professor deve explicar ao menos brevemente aos alunos quais são as palavras-chave , operadores e tipo de dados de sequência . É claro que, mesmo sem essa explicação, alguns alunos (mas não todos!) Podem rapidamente desenvolver um entendimento intuitivo desses recursos. No entanto, é melhor obter imediatamente a certeza.

Ruthon 3


 print('Hello world!') 


O conceito de uma função é adicionado às palavras-chave e linhas . Sim, a função de print é uma vantagem do Python 3 como uma linguagem industrial. Mas, ao mesmo tempo, uma função é um recurso de nível superior ao de um operador, e isso complica o estudo do Python 3 como o primeiro PL. Sim, você como professor pode adiar a explicação da necessidade de usar colchetes para uma das seguintes aulas, mas isso continuará sendo uma dor no cérebro de seus alunos.

Julia


 println("Hello world!") 


Os mesmos conceitos básicos que no caso do Python 3. Mas Julia é um Java dinâmico de alto desempenho compilado em código nativo. Bravo!

Basic


 10 PRINT "Hello world!" 


Palavras-chave , string AP , operadores , numeração de linhas de código. A numeração de linha no Basic é um conceito de baixo nível bastante complexo que imita o dispositivo de memória física de um computador. Pode se tornar um obstáculo para um aluno se o professor não prestar atenção nela.

Em dialetos posteriores, como o VisualBasic, as linhas de código se tornam rótulos simples e não computáveis. No primeiro programa, as tags não são necessárias. A linguagem, portanto, se torna mais fácil para o aprendizado elementar.

Pascal


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


Palavras-chave , string TD , operadores , funções e o que mais? Como o programa usa várias linhas, blocos , delimitadores (ou terminadores ? Sempre os confundo) e os recuos são adicionados aos primeiros conceitos. E a declaração do program não é tão simples ... Parece que a simpatia de Pascal é um pouco exagerada.

C


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


Palavras-chave , APs de cadeia , operadores , funções , blocos , delimitadores e recuo , bem como diretivas e macros do pré-processador . Foi possível return EXIT_SUCCESS sem macros neste exemplo, mas o return EXIT_SUCCESS neste caso é muito indicativo: C é uma linguagem de programação de sistema tradicional; portanto, é aconselhável estudá-la com base em um bom entendimento da operação dos sistemas operacionais e com foco na portabilidade . Caso contrário, esse PL parece um pouco mais complicado que Pascal.

Php


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


Além de entender palavras-chave , APs de string , operadores e delimitadores (ou terminadores ?), Este exemplo não pode ser aprendido sem um entendimento básico de tecnologias específicas da web, como linguagens de marcação (HTML) e mecanismos de modelo . Na verdade, PHP é a linguagem de modelo, uma espécie de DSL. Como resultado, o PHP é uma ótima linguagem de aprendizado para um fornecedor front-end que deseja se aprofundar na tecnologia de back-end. Mas aprender PHP a partir do zero é bastante difícil.

C ++


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


Palavras-chave , string AP , operadores , funções , blocos , delimitadores e indentação , bem como um pré - processador com suas diretivas, escopo , entrada / saída de streaming ... Ugh, isso é tudo?

Java


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


Palavras-chave , string AP (mesmo com dois string APs, mas você pode ficar quieto), AP vazio , matrizes , blocos , separadores e indentação , além de classes , objetos (implicitamente, mas você não pode explicar static outra forma), atributos , métodos , modificadores acesse ... Deus, eu já quero ver tudo isso! Afinal, eu só queria escrever mods para Minecraft!

C #


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


O mesmo Java, menos modificadores de acesso , além de namespaces . Nada de interessante, nós passamos.

Brainfuck


Não quero listar aqui - é muito volumoso e monótono. Vou listar apenas os conceitos básicos que precisam ser aprendidos para entender este exemplo: palavras - chave , operadores , variáveis , ponteiros , condições , loops , representação numérica de caracteres (tabela ASCII). Sim, Brainfuck não é o idioma mais acessível para iniciantes.

Conclusão


Obviamente, além da “entrada rápida” (facilidade de entender os programas elementares), existem vários fatores que influenciam a escolha do PL para o treinamento. Essa é a disponibilidade de ambientes e ferramentas convenientes para codificação, a qualidade da documentação e, finalmente, a aplicabilidade prática. Mas se os primeiros passos no aprendizado estão relacionados à dor e ao mal-entendido, isso pode superar todos os outros argumentos. Em geral, aprenda com facilidade e não se incomode!

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


All Articles