Este artigo inicia uma série sobre Introdução à Programação, o objetivo é apresentar os conceitos fundamentais da programação, incluindo lógica, estruturas de controle, e as principais linguagens utilizadas no mercado.
Apresentação
Olá, mundo! Eu sou a Louise Suelen, sobrevivente do curso de Ciência da Computação, trabalho como engenheira de software e sou uma pessoa com deficiência visual. Recebam as boas-vindas do PcD Na Escola para essa nova série de artigos, sobre introdução à programação, feita com foco em acessibilidade.
Nós vamos, na medida em que os artigos forem sendo publicados, entender os seguintes assuntos:
- O que é programar
- Quais as formas que existem para montar (estruturar) um algoritmo, os famosos paradigmas de programação
- Linguagens de programação interpretadas versus linguagens de programação compiladas
- Terminais
- Editores de textos e IDEs
- Como configurar um ambiente de desenvolvimento no sistema operacional
- Tipos de dados em programas
- Estruturas de dados em programas
- Repetição e condições dentro de programas
- Funções e métodos (que são blocos de código que podemos usar e reutilizar quantas vezes quisermos)
- Estruturas de dados em programas
- E muito mais!
A ideia é combinar teoria e prática, aprender um conceito e já aplicar para que fique mais simples de entender e fixar.
O diferencial dessa série de artigos é o foco na acessibilidade, como sou uma pessoa com deficiência visual sei bem o que é procurar estudar e não encontrar materiais acessíveis ao leitor de telas, ou que não levam o leitor de telas em consideração nas suas explicações.
Por exemplo: é super comum tutoriais ensinando a ativar ou desativar uma funcionalidade usando ícones como referência, o mouse para acionar e ainda expressões como “aqui” e “ali no botão roxo” para indicar onde clicar. Ou seja, o conteúdo depende de referências visuais, pessoas que não podem ver a tela não conseguirão acompanhar as explicações.
Então o fluxo das coisas que vou apresentar será explicado de duas formas:
- como acionar com o mouse,
- como acionar via leitor de telas
para ficar acessível a pessoas cegas e com baixa visão.
Além disso, vou tentar ao máximo usar uma linguagem mais simples, com sinônimos (palavras diferentes que passam a mesma ideia sobre alguma coisa) para tentar chegar a pessoas neurodivergentes e com outras necessidades específicas de comunicação.
Sobre o uso de imagens
Uso imagens, desenhos, gráficos como outros materiais disponíveis na internet? Sim!
Até porque esses recursos são acessibilidade para outras pessoas com necessidades educacionais específicas. A diferença é que coloco descrição alternativa em todas as imagens e dou detalhes do que cada uma significa para quem usa leitores de tela (até porque senão eu mesma ficaria perdida risos) a produção do PcD Na Escola me ajudou com isso.
A ideia não é remover as imagens, ou outros recursos visuais, mas sim torná-los acessíveis repassando ao leitor de telas o que significam da maneira mais completa possível.
Um detalhe importante
Seria muito interessante ler a série Computação para Iniciantes antes de começar a ler essa, porque lá eu explico conceitos e palavras que não vou repetir aqui. Lá eu fiz uma apresentação geral da área, do computador e de conceitos e palavras específicas.
Expliquei também um pouco sobre sistemas operacionais, as diferenças entre Windows, Linux e macOS, e dei uma introdução às redes de computadores. Por isso, seria bom revisar esses conteúdos antes de seguir em frente.
Qual linguagem de programação será usada?
Essa é uma pergunta que vou responder logo, a linguagem que vou usar para trabalhar conceitos de programação nessa série será Ruby.
Mas, por que Ruby? A maioria dos cursos de programação da internet usa Python, Java, até C então por que Ruby? Uma linguagem tão diferente.
Minha ideia inicial era usar a linguagem C, para explicar esses assuntos. Assim, daria para mostrar como o computador cuida da memória e ensinar a criar funções como copiar (Ctrl + C) e colar (Ctrl + V) do zero (do começo sem usar nada que já estivesse pronto), ajudando a entender esses conceitos bem a fundo, bem a fundo mesmo.
Mas, pensei bastante para equilibrar explicações detalhadas sobre o funcionamento do computador com uma forma de ensinar que não fosse complicada. Não adiantaria nada eu escolher esse caminho se acabasse deixando tudo difícil e afastando quem quer aprender.
Eu também queria evitar duas situações: usar uma linguagem de programação tão famosa e popular que a pessoa aprendesse, gostasse muito e começasse a achar que só aquela linguagem é boa. Isso acontece bastante, principalmente com quem está começando, e pode acabar atrapalhando o crescimento como profissional.
Por experiência própria, sei que muita gente se apega à primeira linguagem que aprende, então preferi evitar isso.
Outra coisa que quis evitar foi usar a linguagem de exemplo que as inteligências artificiais mais mostram (um Python, Javascript, até Java), porque aí a pessoa pode cair na ideia de que existe um jeito “correto” ou único de programar (o jeito que a inteligência artificial sugerisse). Muitas vezes, quando estudamos programação, achamos que o jeito que aparece nos livros, no Google ou no Chat GPT é sempre o melhor, e isso não é verdade.
Existe mais de uma forma de resolver um problema e é importante aprender a pensar e testar outros caminhos.
Qual a sua prioridade? Quer que o programa seja mais rápido? Prefere que seja mais fácil de entender para quem está programando? Ou precisa de algo bem mais seguro? Às vezes, o prazo é curto e você só quer terminar logo.
Essas perguntas são mais importantes do que decorar truques ou fórmulas prontas de código. Por isso, não vale a pena se prender a apenas um jeito de resolver as coisas, é melhor aprender a pensar em diferentes soluções e em como montar as soluções.
Voltando a pergunta: POR QUE ruby?
Mas, voltando a pergunta: por que escolher a linguagem de programação Ruby? Os motivos são os seguintes…
Aprender diferentes linguagens de programação
Eu escolhi usar uma linguagem que, cedo ou tarde, faz a pessoa precisar aprender outras linguagens também. Por exemplo: aprende o básico de programação aqui usando Ruby, mas se quiser mexer com dados ou inteligência artificial, vai ter que aprender Python. Se quiser trabalhar com sites, vai acabar conhecendo Javascript.
A ideia aqui é mostrar que vale a pena conhecer outras linguagens de programação, em vez de usar sempre a mesma para tudo, mesmo quando ela não é a melhor escolha. Assim, fica claro que a linguagem de programação é só uma ferramenta, e não algo que você precisa escolher para sempre, como se fosse um time de futebol do coração.
Ruby possui menos exemplos e recursos em IA do que outras linguagens
Eu escolhi Ruby também porque não é uma das linguagens que aparecem primeiro quando você pede exemplos para inteligência artificial. Mesmo se você pedir exemplos em Ruby, vai perceber que tem menos opções prontas do que em outras linguagens mais comuns.
Isso faz com que a pessoa precise procurar mais informações em livros, sites ou até no GitHub, que é um tema que vou explicar mais para a frente. Essa busca ajuda a aprender de verdade, explorando e descobrindo coisas além dos exemplos automáticos.
Quero que as pessoas aprendam a pensar por conta própria, buscar soluções e serem flexíveis. Mesmo que, no começo, isso pareça difícil, é exatamente esse tipo de habilidade que faz diferença no dia a dia do trabalho.
Nas empresas, raramente você vai lidar só com uma linguagem de programação ou com problemas iguais, sempre explicados em detalhes. Na verdade, o trabalho se parece mais com uma investigação, onde você precisa descobrir coisas novas o tempo todo.
Por isso, quanto antes você desenvolver essas habilidades, melhor será para sua carreira.
Ruby permite programação orientada a objetos
Ruby foi criada para trabalhar com programação orientada a objetos. Isso quer dizer que, ao usar Ruby, você aprende como dividir seu código em partes menores, chamadas de objetos, que podem conversar entre si e facilitar o desenvolvimento. Esses conceitos são muito usados em várias áreas da tecnologia e vão aparecer de novo quando falarmos sobre outros tipos de programação.
A programação orientada a objetos é um jeito de organizar o código que muita gente usa em diferentes linguagens, como Java e Python. Ela aparece bastante quando você está criando sites ou aplicativos de celular.
Por isso, é interessante escolher uma linguagem como Ruby, porque fica mais fácil mostrar como essas ideias funcionam na prática.
Ruby mostra seu avanço em programação de forma rápida
Muitas vezes, quando a gente está aprendendo a programar, parece que não está conseguindo sair do lugar e que nunca vai dar certo. Eu mesmo já senti isso, porque estudava bastante e ainda assim achava difícil criar algo que funcionasse de verdade e pudesse ser usado por outras pessoas.
Uma coisa boa do Ruby é que, após atingir um certo nível de conhecimento, dá para criar projetos completos, como blogs ou listas de tarefas, de um jeito simples e rápido. Você consegue ver logo que o que está aprendendo funciona de verdade. É como acontece com o Python, que muita gente usa para aprender programação porque é fácil de entender, serve para muitas coisas diferentes e deixa todo mundo ver logo que está evoluindo nos estudos.
Que comecem os jogos
Pronto, agora que expliquei, mais ou menos, como vai ser, está na hora de começar! Aprender algo novo pode parecer complicado no começo, mas com o tempo tudo fica mais fácil. Você vai perceber que, praticando bastante, as ideias começam a fazer sentido e logo já consegue criar coisas que funcionam de verdade.
Não desanime se aparecerem dificuldades, é normal! O importante é continuar tentando, porque é assim que a gente aprende. O Ruby vai ajudar muito nesse caminho e vai deixar mais claro como a programação funciona na prática.