Skip to content

Commit

Permalink
feature: novo artigo para o blog - como pensar como um programador
Browse files Browse the repository at this point in the history
  • Loading branch information
magnussolidus committed Jun 19, 2024
1 parent 42bb7a2 commit b16d0b8
Showing 1 changed file with 131 additions and 0 deletions.
131 changes: 131 additions & 0 deletions content/blog/pensando-como-um-programador.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
+++
title = "Pensando como um Programador"
date = "2024-06-19T00:30:00-03:00"
tags = ["programação", "dicas"]
categories = ["dicas"]
banner = "img/banners/building-things.png"
+++

# Introdução

O ser humano é uma espécie muito peculiar nas mais diversas formas. A capacidade humana de se adaptar é, em partes, o que nos fez chegar onde estamos.

Naturalmente, muitas coisas que para nós hoje, são normais, eram inimagináveis em outro período da humanidade.
Imagine se transportamos Pedro Álvares Cabral para nossos dias de hoje e o mostrássemos um avião? Certamente algo inimaginável à época!

E por que isto nos é importante? O que isso tem a ver com programação?

Muito mais do que você possa imaginar!

> **Nós, como programadores, somos responsáveis por transformar algo que está apenas no pensamento, em realidade!**
Uma das partes do nosso trabalho que traz maior satisfação é você conseguir concluir a tarefa proposta, o famoso "Funciona!".

A tradição na área é de se começar fazendo os programas exibirem a frase "Olá Mundo!", oriunda do inglês "_Hello World!_".
A sensação quando você finalmente consegue exibir a mensagem na tela é algo muito positivo!

No entanto, uma coisa que costuma passar desapercebida é o processo que nós fazemos para chegar neste ponto! As etapas necessárias para conseguirmos, finalmente,
concluir algo.

Conseguir visualizar o resultado é algo simples para nós, seres humanos. Agora, conseguir imaginar quais são todas as etapas necessárias,
qual o caminho que devemos percorrer para chegar a este resultado, **nem sempre é trivial**.

Imagina agora se, para nós, já é algo um pouco difícil, como fica então para uma máquina?! Para um computador?! Certamente não é uma tarefa fácil...

# Porquê isso é importante?

**Esta habilidade de conseguir montar as pecinhas do quebra cabeça para chegar no resultado desejado é algo diferencial na vida do programador**. Quando você passa
a conseguir identificar as etapas, identificar os processos, as coisas começam a fazer mais sentido para você; e, como num estalar dos dedos, fica mais fácil
se chegar no resultado desejado!

> **Diariamente, programadores lidam com situações inesperadas.**
Estas situações podem ir desde bugs ainda não encontrados, especificações incompletas (quando não se
sabe ao certo o que querem), ou até mesmo mudanças de tecnologia que acabam tornando como algo era feito obsoleto.

A capacidade de identificar o processo necessário para se chegar ao resultado vai lhe ajudar.

A capacidade de conseguir segmentar este processo vai lhe ajudar ainda mais!

Quanto mais detalhado você conseguir compreender isto, melhor fica o resultado produzido e, às vezes, fica até mais fácil de implementá-lo também!

# Identificando Processos

Apesar de parecer um conceito abstrato, nós fazemos isso constantemente em nosso dia a dia. O nosso cérebro tem uma capacidade extraordinária em identificar padrões
e automatizar tarefas.

Um exemplo disso pode ser andar de bicicleta. Enquanto está aprendendo, você precisa pensar em como fazer as coisas:

* Pedalar
* Equilibrar a Bicicleta
* Direcionar para onde ir
* Freiar a Bicicleta
* Se apoiar quando parar, para não cair...

Todas são funções necessárias para se conseguir andar de bicicleta, mas que não nos ocorrem naturalmente. É algo que precisamos entender como funciona, algo que
precisamos aprender.

Depois que aprendemos também, conseguimos fazer tudo de maneira automatizada! Você pedala, se equilibra, freia, muda a direção... tudo de
maneira fluida e natural, quase um processo automático!

Há outros exemplos disso, como: dirigir um carro, subir/descer uma escada, nadar... o importante aqui é perceber como a nossa capacidade de adaptação e abstração
é algo extraordinário!

**Uma ferramenta poderosíssima que você pode, e deve, usar a seu favor!**

# Mas e a programação?

Conseguir identificar os processos vai permitir ao programador entender o que precisa ser feito para alcançar o resultado desejado. O programador é o responsável
por definir como este processo vai ser feito pelo computador.

> **É responsabilidade do programador "traduzir" as etapas do processo de modo que a máquina as faça conforme seja necessário.**
Ou seja, é você, programador, o responsável por direcionar a máquina a fazer as coisas da forma que elas precisam ser feitas.

A máquina não consegue entender o que ela faz. A máquina não tem consciência, ela tem um conjunto de instruções a serem seguidos. Cabe ao programador
fazer o uso deste conjunto para alcançar o resultado desejado.

Vamos a um exemplo?

## Exemplo - Calculadora: Operação de soma

Para nós, seres humanos, somar dois números é uma tarefa relativamente simples. Qual o resultado de 3 + 7? Alguns de vocês devem já saber o resultado antes mesmo de
terminar de ler a expressão.
Contudo, para a máquina isto já não é verdade. Para ela fazer a mesma conta ela precisa realizar algumas etapas específicas, onde a ordem destas etapas pode influenciar
o resultado.

Estas etapas são:

1. Obter o primeiro número da operação;
1. Nesse exemplo, o número 3.
2. Obter o segundo número da operação;
1. Nesse exemplo, o número 7.
3. Identificar qual é a operação a ser realizada;
1. Neste exemplo, operação de adição (soma).
4. Realizar a operação;
5. Armazenar o resultado da operação;
6. (Opcional) Exibir o resultado da operação.
1. Este coloco como opcional, pois, nem sempre, é necessário exibir o resultado.


Veja só quantas etapas o nosso cérebro faz para nós sem nem percebemos!

Esta habilidade pode ser utilizada a seu favor na programação também! Mas para isto, é necessário praticar...

Cada pessoa tem a sua forma e ritmo diferente. Para uns pode vir com mais facilidade, para outros pode ser mais custoso.

> **O importante é não desistir e seguir trilhando o seu caminho para se tornar um programador!**
O ser humano é incrível e consegue se adaptar a diversos cenários. Esperamos que com este artigo você tenha percebido que existe um grande potencial em você!
Cabe agora a você, decidir como usá-lo!

Boa sorte em sua jornada para se tornar um(a) programador(a)!

---

### Para dar continuidade em seus estudos agora, recomendamos os seguintes passos:

1. Vá para o artigo [Olá Mundo]({{< ref "/blog/ola-mundo.md" >}} ).
2. **Há um ótimo [material sobre Introdução à Ciência da Computação feito por Harvard](https://youtu.be/SYZkrqW8oJc?si=7In3_gUFxc-8pe1f) que recomendamos.**
3. Também recomendamos que você faça os [desafios do grupo](https://osprogramadores.com/desafios/) após ter lido os artigos.
4. Caso tenha dificuldades com os exercícios, ou dúvidas, faça perguntas no [grupo no telegram](https://t.me/osprogramadores).

0 comments on commit b16d0b8

Please sign in to comment.