Skip to content

Commit

Permalink
📰 post - Adding the "Lógica de programação: mergulhe em programação c…
Browse files Browse the repository at this point in the history
…om JavaScript" certificate
  • Loading branch information
kastney committed Nov 14, 2024
1 parent a7a0628 commit 8b99875
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 28 deletions.
66 changes: 38 additions & 28 deletions _collections/_certificates_br/2024-11-11T20-40.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,40 +13,50 @@ competencies: [
date: "2024-11-11T20:40:00"
---

Com experiência prévia em linguagens de programação, realizei este curso com o objetivo de revisar e consolidar conceitos essenciais de lógica de programação, usando JavaScript como linguagem base. O curso abrangeu desde a criação de variáveis e condicionais até a implementação de loops e a geração de números aleatórios, temas fundamentais para a construção de lógica em programas. Além disso, a prática de manipulação do console e interações com o usuário foram reforçadas, essenciais para testar e depurar o código durante o desenvolvimento.
Ao concluir o curso **Lógica de Programação: Mergulhe em Programação com JavaScript**, revisei e consolidei conceitos essenciais de **lógica de programação**, usando **JavaScript** como linguagem base. O curso abordou desde a criação de variáveis e condicionais até a implementação de loops e a geração de números aleatóriostemas fundamentais para a construção de lógica em programas. Além disso, a prática de manipulação do **console** e de interações com o usuário foi reforçada, essencial para testar e depurar o código durante o desenvolvimento.

Preparação do Ambiente de Desenvolvimento
A primeira etapa foi configurar o Visual Studio Code como ambiente de desenvolvimento. Essa ferramenta, com sua interface amigável e suporte para JavaScript, facilita a criação de scripts e a organização dos arquivos. O uso de extensões e do terminal integrado também contribuiu para um fluxo de desenvolvimento contínuo e eficiente.
## Preparação do Ambiente de Desenvolvimento

Conceito de Variáveis
A revisão sobre variáveis me lembrou de como elas são essenciais para armazenar dados temporários, como números e strings.
O primeiro passo foi configurar o **Visual Studio Code** como ambiente de desenvolvimento. Com uma interface amigável e suporte a JavaScript, ele facilita a criação de scripts e a organização dos arquivos. Com o Visual Studio Code configurado, a experiência de codificação se torna mais produtiva.

Exemplo: Para iniciar um jogo de adivinhação, criamos uma variável que armazenava o número secreto a ser adivinhado, enquanto outra armazenava o palpite do usuário, permitindo que o programa comparasse ambos.
Prática com alert e prompt: O alert foi utilizado para exibir mensagens de boas-vindas, enquanto o prompt coletava dados do usuário, facilitando a interação e tornando o programa dinâmico.
Condicionais: If e If/Else
As estruturas condicionais permitiram a criação de lógica para que o programa tomasse decisões com base em condições.
## Conceito de Variáveis

Uso do If: A estrutura if foi usada para executar um bloco de código caso uma condição fosse verdadeira, como verificar se o número chutado pelo usuário era igual ao número secreto.
If/Else para Comparações: Expandimos o uso com else para determinar se o chute era maior ou menor do que o número secreto, adicionando mensagens personalizadas conforme o caso. Esse tipo de verificação tornou o jogo mais interativo e desafiador.
Console para Testes e Depuração
O console foi uma ferramenta crucial para acompanhar a execução do código, permitindo identificar e corrigir erros com mais facilidade.
A revisão sobre **variáveis** destacou sua importância para o armazenamento de dados temporários, como números e strings, essenciais em qualquer aplicação. No curso, as variáveis foram amplamente utilizadas para armazenar informações que permitiram a interação do usuário com o jogo.

Exemplo: Exibi mensagens e valores de variáveis no console durante o processo de tentativa e erro, o que ajudou a entender o fluxo do programa e identificar rapidamente onde ajustes eram necessários.
Template Strings
As template strings foram uma adição útil para simplificar a concatenação de texto com variáveis, proporcionando mensagens personalizadas para o usuário.
> Exemplo: Para iniciar um jogo de adivinhação, criamos uma variável para armazenar o **número secreto** e outra para o **palpite do usuário**, permitindo ao programa comparar ambos e personalizar as mensagens de acordo com o resultado das tentativas, como *"Parabéns, você acertou!"* ou *"Tente novamente"*.
Exemplo Prático: Utilize uma template string para exibir mensagens como "O número secreto era ${numeroSecreto}, mas você chutou ${palpite}", o que permitiu criar uma experiência de jogo mais envolvente e visualmente clara.
Estruturas de Repetição: While
O loop while foi implementado para repetir um bloco de código até que uma condição fosse atendida, o que foi muito útil no desenvolvimento de jogos e desafios.
Compreender o uso de variáveis é essencial para desenvolver programas robustos e flexíveis, facilitando o trabalho com dados e interações que variam conforme a escolha do usuário.

Exemplo: Em um jogo de adivinhação, o while foi usado para que o usuário pudesse tentar várias vezes até acertar o número secreto.
Contador de Tentativas: Para tornar o jogo mais interessante, implementei um contador de tentativas que armazenava o número de vezes que o usuário tentou adivinhar. Esse contador exibiu se o usuário conseguiu adivinhar com poucas ou muitas tentativas, proporcionando feedback instantâneo.
Singular e Plural no Contador
Evitar código duplicado foi essencial para otimizar o programa. No contador de tentativas, usei uma lógica que exibia a palavra “tentativa” no singular ou plural conforme o número de tentativas realizadas, um detalhe simples, mas que demonstrou atenção ao usuário e boa prática de desenvolvimento.
## Prática com `alert` e `prompt`

Função Math.random() e Criação de Jogos Dinâmicos
Para aumentar a complexidade dos desafios, aprendi a utilizar a função Math.random() para gerar números aleatórios, recurso fundamental para criar jogos mais dinâmicos.
Durante o curso, os métodos **`alert`** e **`prompt`** foram fundamentais para criar uma experiência interativa. O `alert` exibia mensagens de boas-vindas e instruções, enquanto o `prompt` coletava dados diretamente do usuário, tornando o programa dinâmico e acessível. Essas interações simplificaram o processo de entrada e saída de dados, guiando o usuário nas etapas necessárias. Além disso, o uso dessas funções reforça o conceito de **UX (Experiência do Usuário)**, tornando o sistema mais intuitivo e envolvente.

Exemplo: O número secreto no jogo foi gerado usando Math.floor(Math.random() * 100) + 1, permitindo que o jogador sempre enfrentasse um novo desafio, aprimorando a experiência e incentivando a lógica de tentativas e aproximação.
Reflexão Final
Este curso de revisão serviu como uma excelente oportunidade para reforçar os fundamentos da lógica de programação de forma prática. Cada tópico abordado me permitiu aplicar técnicas clássicas de programação, promovendo uma visão mais clara e organizada de como esses conceitos contribuem para a criação de programas funcionais. A experiência reforçou a importância de práticas como o uso de condicionais e loops para manipular o fluxo do programa e tornou evidente o quanto os detalhes, como personalizações no contador e mensagens interativas, impactam positivamente a experiência do usuário. Ao final do curso, ganhei não só confiança na lógica de programação com JavaScript, mas também uma compreensão mais profunda sobre como esses conceitos básicos são essenciais para projetos mais complexos no futuro.
## Condicionais: `if` e `if/else`

As estruturas condicionais foram essenciais para criar lógica e permitir que o programa tomasse decisões com base em condições específicas. Utilizei o **`if`** para executar um bloco de código apenas se uma condição fosse verdadeira, como verificar se o número chutado pelo usuário era igual ao número secreto. Com o uso do **`if/else`**, expandi a lógica para determinar se o palpite era maior ou menor que o número secreto, tornando o jogo mais **interativo** e **desafiador**, com **feedbacks personalizados** a cada tentativa. A prática com condicionais aprimorou minha capacidade de desenvolver lógica fluida e intuitiva para o usuário.

## Console para Testes e Depuração

O **console** foi uma ferramenta crucial para acompanhar a execução do código e identificar erros com facilidade. Durante o curso, utilizei o console para exibir mensagens e valores de variáveis, facilitando o processo de **tentativa e erro**. Essa abordagem simplificou a depuração, pois permitiu acompanhar o fluxo do programa e identificar rapidamente onde ajustes eram necessários. Testar o código no console permitiu aprimorar a lógica e corrigir problemas antes de afetarem a interação do usuário.

## Template Strings

As **template strings** simplificaram a concatenação de texto com variáveis, possibilitando a criação de mensagens personalizadas de maneira mais clara e legível. O uso de `template literals` proporcionou um código mais enxuto, especialmente ao exibir mensagens para o usuário.

> Exemplo: Utilizei uma **template string** para exibir mensagens como *"O número secreto era ${numeroSecreto}, mas você chutou ${palpite}"*, tornando o jogo mais **envolvente** e **agradável** para o jogador. Esse recurso é especialmente útil ao lidar com mensagens dinâmicas e torna o código mais legível e fácil de manter.
## Estruturas de Repetição: `while`

A estrutura de repetição **`while`** foi essencial para implementar loops que repetiam um bloco de código até que uma condição fosse atendida. Essa funcionalidade foi muito útil no desenvolvimento de jogos e desafios, onde o usuário poderia tentar várias vezes até acertar o número secreto. O loop `while` também foi utilizado para implementar um **contador de tentativas**, que armazenava o número de tentativas do usuário. Esse contador permitiu exibir feedback instantâneo sobre o número de tentativas, tornando o jogo mais interessante e enriquecendo a experiência do usuário.

## Singular e Plural no Contador

No contador de tentativas, implementei uma lógica com operadores ternários que ajustava a exibição do texto para "tentativa" no singular ou plural, de acordo com o número de tentativas realizadas. Esse detalhe demonstra atenção aos detalhes e boas práticas de desenvolvimento. Esse ajuste evita código duplicado e melhora a **experiência de usuário**, tornando o programa mais intuitivo e fácil de usar.

## Função `Math.random()`

Para aumentar a complexidade do jogo, utilizei a função **`Math.random()`** para gerar números aleatórios, criando jogos mais dinâmicos e interessantes. Ao integrar a função `parseInt(Math.random() * 100 + 1)`, o número secreto do jogo passou a ser gerado aleatoriamente, promovendo desafios diferentes a cada partida. A introdução de números aleatórios tornou o jogo mais **interativo e imprevisível**, incentivando a lógica de tentativas e aproximação. Esse recurso é amplamente utilizado em jogos e aplicações que exigem variação constante, deixando o ambiente mais desafiador e divertido.

## Reflexão Final

Este curso foi uma excelente oportunidade para revisar e consolidar fundamentos da lógica de programação. Cada tópico abordado permitiu aplicar técnicas clássicas de programação, proporcionando uma visão clara e organizada sobre a criação de programas funcionais. A prática reforçou a importância de conceitos como **condicionais** e **loops**, fundamentais para manipular o fluxo do programa. A experiência destacou o impacto dos detalhes, como personalizações no contador e mensagens interativas, na **experiência do usuário**. Ao final do curso, senti que minha compreensão da lógica de programação com JavaScript foi fortalecida, e entendi a relevância desses conceitos básicos para projetos futuros mais complexos.
14 changes: 14 additions & 0 deletions _collections/_certificates_us/2024-11-11T20-40.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
layout: certificate
type: course
code: "iAB8toXXe06dEMIaHF3Olg"
authority: alura
certificate:
name: "Programming logic: dive into programming with JavaScript"
workload: "0000-00-00T06:00:00"
competencies: [
javascript,
visual-studio-code
]
date: "2024-11-11T20:40:00"
---
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 8b99875

Please sign in to comment.