Se você tem interesse em programação de computadores e quer começar a aprender a programar, uma pergunta que irá surgir na sua mente mais cedo ou mais tarde será: qual linguagem de programação devo aprender? Afinal, existem várias, e você nem sabe a diferença de uma linguagem de programação para outra. Faz muita diferença? Qual linguagem um iniciante em programação deve aprender primeiro?
Na minha opinião, a melhor linguagem de programação para que não sabe nada de programação é Python. Porém, dá um pouco de trabalho configurá-lo, então é mais fácil e rápido começar pelo Javascript, que não necessita a instalação de qualquer programa especial pois já roda em seu navegador de internet. Outras boas opções são C# e Java. Por outro lado, há linguagens que são bem conhecidas e populares mas são péssimas para iniciantes, tais como C++, C, e PHP. Além dessas existem também languages menos populares, ou linguagens didáticas que não poderão ser usadas em projetos reais, que, honestamente, não fazem nem sentido considerar.
O Primeiro Obstáculo é a Lógica
Embora Python e Javascript sejam ótimas linguagens com várias aplicações, elas não são perfeitas para tudo. Existem programas que fazem mais sentido serem programados em C ou C++. Aplicativos que deveriam ser programados em C# ou Java. E até mesmo PHP possui suas únicas vantagens. Porém, se você não sabe nada de programação, independentemente de seu objetivo, você deve começar por Python ou Javascript.
O motivo é simples: lógica.
Para uma pessoa que nunca programou nada na vida, escrever algoritmos, mesmo os mais simples, e entender como estruturas de controle de fluxo funcionam já é extremamente difícil. O Python é uma linguagem bem abstrata, no sentido que não há muito que você precisa especificar no código, não há muitas possibilidades, opções, não há muito o que você escolher quando estiver digitando, e, com isso, não há muito o que você pode errar. Por outro lado, C é uma linguagem muito concreta, ela exige que você descreve tudo em termos específicos, e possui muito código parecido que faz coisas completamente diferentes, há muito mais chance de você cometer erros. O resultado é que você não aprenderá uma coisa de cada vez, você terá que aprender como algoritmos funcionam, e como C funciona, ambos de uma vez só, o que torna o processo muito mais difícil. Embora você possa dizer isso sobre qualquer linguagem, o tanto que uma linguagem atrapalha o processo de aprendizado de programação varia de linguagem para linguagem, e Python, na minha opinião, é a linguagem que atrapalha menos.
Exemplos de Diferen;as
Para termos uma ideia melhor, eu vou escrever aqui uns exemplos de código de cada linguagem, para ter uma noção de por que umas linguagens são melhores que as outras.
Python
O código Python é extremamente simples. Observe:
x = 10
x = 'texto'
if x:
x = True
def funcao():
x = 30
funcao()
# o valor de x é True.
Blocos que código são definidos por sua indentação. Definir uma variável a declara. Definindo uma variável dentro de uma função não modifica uma variável fora da função, mas sim declara uma nova variável de mesmo nome dentro da função.
Javascript
O código Javascript é similarmente simples, exceto que agora há mais o que escrever.
x = 10
x = 'texto'
if(x)
x = true
function funcao() {
x = 30
}
funcao();
// o valor de x é 30.
Quando uma variável é definida pela primeira vez, se ela for precedida por let
é faz parte do escopo do bloco externo, se for precedida por var
ela faz parte do escopo da função, e não for precedida por nada ela faz parte do escopo global. Com isso, embora declarar variáveis no escopo global seja uma péssima prática, o código ao mínimo funciona.
C
O código C não é simples.
int main()
{
x = 10 // errado
int x = 10 // errado
int x = 10; // certo
x = 'texto'; // errado
int x = 'texto'; // errado
char* x = 'texto'; // errado
y = 'texto'; // errado
char* y = 'texto'; // errado
char* y = "texto"; // certo
if(x)
x = true; // errado
#include <stdbool.h>
if(x)
x = true; // certo
void funcao() { // errado
// certo:
#include <stdbool.h>
void funcao() {
int x = 30;
}
int main() {
int x = 10;
char* y = "texto";
if(x)
x = true;
funcao();
}
Código C é executado a partir da função main
, o que significa que você pode simplesmente sair escrevendo código que será executado, você precisar escrever a função main
CORRETAMENTE primeiro. A sintaxe não permite você declara funções dentro de outras funções (Python e Javascript permitem). Você é obrigado a declarar as variáveis que irá usar, não é permitidor redeclara-las, elas precisam ser declaradas com o tipo correto, e existe uma diferença entre textos (strings) escritos com aspas simples ('
) e aspas duplas ("
). O toque final é que não existe true
(verdadeiro) em C, precisa ser importado, ou melhor, incluído o código que define seu valor de stdbool.h
. Ah! E não pode esquecer: ponto-e-virgula no final de cada linha, senão não compila!
Podemos dizer que uma vantagem disso é que a linguagem torna erros de lógica em erros de sintaxe que o compilador é capaz de perceber. Porém, para quem é iniciante aprendendo programação, até mesmo quando você escrever um código que não tem erros de lógica você poderá ter erros de sintaxe que não te ajudaram em nada e só trarão dor de cabeça. Além disso, nesse caso especificamente estamos falando de uma linguagem que tem origem em uma época quando computadores eram muito mais devagar. Hoje em dia temos linguagens como Go e Rust que são tão capazes quanto C, mas não obrigam o programador a escrever o tipo da variável em sua declaração, já que esse tipo pode ser inferido pelo compilador.
C++ não é muito melhor que C nesse aspecto. Porém, C# e Java possuem uma grande vantagem quando são introduzidos conceitos de programação orientada a objetos. Em C# e Java (e Python e Javascript), a linguagem toma conta de deletar a memória de um objeto que não é mais usado em um programa. Em C e C++, o programador é responsável por isso, e por tanto é obrigado a aprender também como alocações de memória em um computador funcionam.
Embora tudo isso seja conhecimento bom para um programador saber, não é necessário aprender tudo isso de uma única vez. Não é necessário conhecimento de ponteiros em C para entender como objetos passados por referência funcionam em Javascript. Usando uma frase que programadores conhecem: essas coisas são detalhes de implementação: não é necessário saber como o computador funciona exatamente para aprender como escrever algoritmos que esse computador irá executar.
Com isso em mente se você quer começar a aprender a programa, comece com Python ou Javascript. Você pode aprender outras linguagens, ou a linguagem que você precisa para fazer o que quer, depois que você aprender os conceitos básicos de programação.
Deixe um comentário