INTRODUÇÃO AO DESENVOLVIMENTO DE SOFTWARE
Primeiros Passos com Programação
Introdução à Programação com JavaScript (ou Python)
1. Por Que Começar com Linguagens de Fácil Leitura?
A jornada de quem começa a programar pode ser desafiadora, especialmente se o primeiro contato ocorrer por meio de linguagens complexas, com sintaxe rigorosa e termos técnicos difíceis. Por isso, é altamente recomendável que iniciantes comecem aprendendo com linguagens de programação de fácil leitura, como Python ou JavaScript.
Essas linguagens são consideradas mais acessíveis por diversos motivos:
Segundo Downey (2016), "Python é uma linguagem ideal para ensinar os fundamentos da ciência da computação por causa de sua clareza e simplicidade". Já JavaScript, conforme Flanagan (2020), "domina o desenvolvimento web e é fundamental para aplicações interativas e dinâmicas".
Comparativo entre Python e JavaScript:
Ambas oferecem um ambiente amigável e estão entre as linguagens mais ensinadas em cursos introdutórios ao redor do mundo.
2. Primeiro Programa: “Olá, Mundo!”
O primeiro passo prático para aprender qualquer linguagem é escrever o tradicional programa “Olá, Mundo!”. Esse exemplo simples serve para verificar se o ambiente está funcionando corretamente e mostrar como exibir informações na tela.
Exemplo em Python:
print("Olá, Mundo!")
Exemplo em JavaScript:
console.log("Olá, Mundo!");
Esses exemplos revelam a clareza das linguagens: poucos comandos, sintaxe direta e fácil compreensão. O comando print() em Python e console.log() em JavaScript são usados para exibir mensagens no terminal ou console.
O “Olá, Mundo!” pode parecer trivial, mas representa um marco: o primeiro contato real com a linguagem e o primeiro passo rumo ao desenvolvimento de sistemas mais complexos.
3. Ferramentas Gratuitas para Programar
Ao começar a programar,
é importante escolher ferramentas acessíveis e que não exijam instalações complexas. Abaixo estão algumas das principais plataformas e editores gratuitos recomendados para iniciantes.
3.1 Replit (https://replit.com)
O Replit é um ambiente de desenvolvimento online, gratuito, que permite programar diretamente no navegador, sem instalar nada. Suporta dezenas de linguagens, incluindo Python e JavaScript.
Vantagens:
Para iniciantes, o Replit elimina barreiras técnicas e oferece resultados imediatos na tela, o que estimula a continuidade dos estudos.
3.2 VSCode (Visual Studio Code)
O Visual Studio Code é um dos editores de código mais utilizados no mundo, gratuito, de código aberto e desenvolvido pela Microsoft.
Principais características:
Para Python, recomenda-se instalar a extensão oficial “Python”; para JavaScript, a funcionalidade já vem nativa.
3.3 IDLE (para Python)
O IDLE (Integrated Development and Learning Environment) é o ambiente padrão que acompanha a instalação do Python. Ele é leve, fácil de usar e projetado especialmente para iniciantes.
Recursos:
Por ser oficial e básico, o IDLE é ideal para dar os primeiros passos na linguagem Python, especialmente em computadores com poucos recursos.
Considerações Finais
Aprender programação é como aprender um novo idioma: é preciso compreender a lógica, praticar e se familiarizar com a estrutura da linguagem. Começar com linguagens acessíveis como Python e JavaScript torna essa jornada menos intimidante e mais eficiente.
O primeiro programa, por mais simples que seja, representa uma quebra de barreira psicológica. Ele mostra que é possível controlar uma máquina por meio da lógica, da linguagem e da criatividade.
Com o apoio de ferramentas gratuitas, qualquer pessoa com acesso à internet pode iniciar seus estudos em programação, seja para desenvolvimento pessoal, profissional ou acadêmico. O importante é dar o primeiro passo, persistir e praticar constantemente.
Referências Bibliográficas
Estruturas Condicionais e de Repetição
1. Introdução
Em programação, é comum que um algoritmo precise tomar decisões ou executar comandos repetidamente. Para isso, utilizamos estruturas de controle de fluxo, divididas em condicionais (tomada de decisão) e laços de repetição (execução contínua).
Essas estruturas tornam o programa dinâmico, flexível e adaptável a diferentes entradas e situações, permitindo que ele reaja de maneira lógica a diferentes cenários.
2. Estruturas Condicionais
As estruturas condicionais são utilizadas para executar diferentes blocos de código conforme uma ou mais condições. As principais formas são: if, else, elif (em Python) ou else if (em JavaScript), e switch (estrutura alternativa em algumas linguagens).
2.1 if, else, elif / else if
A estrutura condicional mais básica é o if (se). Ela permite que o programa verifique uma condição e execute um bloco de código se essa condição for verdadeira.
Exemplo em Python:
idade = 20
if idade >= 18:
print("Maior de idade")
else:
print("Menor de idade")
Exemplo em JavaScript:
let idade = 20;
if (idade >= 18) {
console.log("Maior de idade");
} else {
console.log("Menor de idade");
}
Se houver mais de duas opções, usa-se elif (Python) ou else if (JavaScript):
nota = 7
if nota >= 9:
print("Excelente")
elif nota >= 6:
print("Aprovado")
else:
print("Reprovado")
2.2 switch
O switch é uma estrutura condicional comum em linguagens como JavaScript, que permite comparar uma variável contra múltiplos valores possíveis.
Exemplo em JavaScript:
let dia = 3;
switch (dia) {
case 1:
console.log("Domingo");
break;
case 2:
console.log("Segunda-feira");
break;
case 3:
console.log("Terça-feira");
break;
default:
console.log("Dia inválido");
}
O switch pode melhorar a legibilidade quando há muitas comparações simples.
3. Estruturas de Repetição
As estruturas de repetição, também chamadas de laços, servem para executar um mesmo bloco de código várias vezes, seja por um número fixo de repetições, seja enquanto uma condição for verdadeira.
3.1 for
O laço for é usado quando se sabe quantas vezes a repetição deve ocorrer. Ele é ideal para percorrer
listas, arrays ou faixas de números.
Exemplo em Python:
for i in range(1, 6):
print("Contagem:", i)
Exemplo em JavaScript:
for (let i = 1; i <= 5; i++) {
console.log("Contagem:", i);
}
Ambos os exemplos imprimem os números de 1 a 5.
3.2 while
O laço while executa um bloco enquanto uma condição for verdadeira. É útil quando não se sabe ao certo o número de repetições.
Exemplo em Python:
contador = 1
while contador <= 5:
print("Número:", contador)
contador += 1
Exemplo em JavaScript:
let contador = 1;
while (contador <= 5) {
console.log("Número:", contador);
contador++;
}
3.3 Cuidados com Laços Infinito
É importante garantir que a condição de parada seja alcançada. Caso contrário, o programa pode entrar em um laço infinito, consumindo recursos da máquina e travando o sistema.
# Atenção: este código entra em laço infinito!
while True:
print("Isso nunca para...")
4. Exemplos Práticos Combinados
Exemplo 1: Verificar se números são pares ou ímpares
for i in range(1, 6):
if i % 2 == 0:
print(i, "é par")
else:
print(i, "é ímpar")
Exemplo 2: Menu de opções com while
opcao = ""
while opcao != "sair":
print("Digite uma opção (ver, editar, sair):")
opcao = input()
if opcao == "ver":
print("Visualizando dados...")
elif opcao == "editar":
print("Editando dados...")
elif opcao != "sair":
print("Opção inválida.")
Esse tipo de estrutura é comum em interfaces de linha de comando.
5. Considerações Finais
As estruturas condicionais e de repetição são ferramentas indispensáveis para todo programador. Elas permitem que o código “pense” e “aja” de maneira inteligente, reagindo a diferentes situações e executando tarefas de forma automatizada.
Combinadas, essas estruturas aumentam o poder da linguagem de programação e permitem a criação de sistemas robustos e flexíveis. Dominar if, else, elif, switch, for e while é essencial para a construção de algoritmos eficientes e o desenvolvimento de aplicações reais.
Referências Bibliográficas
Funções e Organização de
Código
1. O que são Funções e Por que Usar?
Em programação, funções (também chamadas de “procedimentos” ou “métodos” em algumas linguagens) são blocos de código reutilizáveis que executam uma tarefa específica. Elas permitem agrupar instruções relacionadas sob um nome descritivo, podendo ser chamadas sempre que necessário, quantas vezes forem necessárias.
Exemplo em Python:
def saudacao():
print("Olá! Seja bem-vindo ao curso.")
Ao escrever saudacao(), o programa executa o bloco associado à função. Essa prática melhora a organização do código, evita repetição desnecessária e torna o programa mais legível e fácil de manter.
Conforme Manzano e Oliveira (2017), "uma função é um trecho de algoritmo que pode ser reutilizado diversas vezes, facilitando a legibilidade, modularização e manutenção do código".
Por que utilizar funções?
2. Parâmetros e Retorno
Uma função pode receber dados de entrada, chamados de parâmetros (ou argumentos), e retornar um valor como resultado de sua execução.
2.1 Parâmetros
Os parâmetros são informações que você fornece para personalizar a execução da função.
Exemplo em Python:
def saudacao(nome):
print(f"Olá, {nome}!")
Aqui, nome é um parâmetro. A função só será completa quando esse valor for fornecido.
2.2 Retorno
O retorno (ou “valor de saída”) de uma função é enviado de volta ao ponto onde a função foi chamada, usando a palavra-chave return.
Exemplo em Python:
def soma(a, b):
return a + b
resultado = soma(3, 5)
print("Resultado:", resultado)
A função soma recebe dois parâmetros (a e b) e retorna o valor de sua soma. Esse valor é armazenado na variável resultado e pode ser usado posteriormente.
Em JavaScript, o mesmo conceito se aplica:
function saudacao(nome) {
return "Olá, " + nome + "!";
}
let mensagem = saudacao("Lucas");
console.log(mensagem);
Ao utilizar parâmetros e retorno, as funções se tornam mais versáteis e reutilizáveis, já que podem se adaptar conforme os valores fornecidos.
3. Modularização e Boas Práticas Iniciais
3.1 Modularização
A modularização consiste em dividir um programa em módulos menores e independentes, geralmente representados por funções, com o objetivo de facilitar a compreensão, manutenção e reaproveitamento do código.
Ao invés de
escrever um único bloco longo de instruções, um bom programador divide o código em tarefas menores, cada uma com uma função específica.
Exemplo:
Essa divisão facilita a leitura, testes e alterações no código.
3.2 Boas práticas na criação de funções
Algumas recomendações importantes para escrever boas funções desde o início:
Exemplo: calcula_salario_liquido(), verifica_aprovacao()
Segundo McConnell (2004), "bons programas são compostos por pequenas peças confiáveis, bem testadas e com funções bem delimitadas".
4. Exemplo Prático Completo
A seguir, um exemplo prático de código organizado com funções:
def ler_notas():
nota1 = float(input("Digite a primeira nota: "))
nota2 = float(input("Digite a segunda nota: "))
return nota1, nota2
def calcular_media(n1, n2):
return (n1 + n2) / 2
def verificar_situacao(media):
if media >= 6:
return "Aprovado"
else:
return "Reprovado"
# Programa principal
n1, n2 = ler_notas()
media = calcular_media(n1, n2)
situacao = verificar_situacao(media)
print(f"Média: {media:.2f} - Situação: {situacao}")
Esse exemplo mostra como quebrar o programa em partes lógicas, com cada função cuidando de uma etapa. Isso facilita futuros ajustes, como mudar o critério de aprovação, sem afetar o restante do programa.
5. Considerações Finais
As funções representam um dos principais pilares da programação moderna. Elas ajudam o desenvolvedor a organizar melhor seu código, dividir tarefas, aplicar a lógica de maneira mais clara e criar programas mais robustos e reutilizáveis.
O uso correto de parâmetros, valores de retorno, e a aplicação da modularização refletem a maturidade e eficiência do programador. Para quem está
começando, dominar esses conceitos é essencial antes de avançar para estruturas mais complexas, como classes, objetos e frameworks.
Com a prática constante e aplicação das boas práticas descritas, o aluno desenvolverá códigos mais limpos, organizados e profissionais.
Referências Bibliográficas