-
Notifications
You must be signed in to change notification settings - Fork 417
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feature: novo artigo para o blog - como pensar como um programador
- Loading branch information
1 parent
42bb7a2
commit b16d0b8
Showing
1 changed file
with
131 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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). |