Programação: a psicologia dos computadores

Estamos todos intimamente relacionados com a programação, seja como usuário, como administrador, como o próprio programador, mas em última instância é algo que estará mais conectado com nossas vidas com o passar dos anos.

Neste artigo (o início de uma pequena série que pretendo criar), quero compartilhar com vocês alguns conceitos sobre o que venho descobrindo sobre programação ao longo dos anos. Não estou tentando ser extremamente técnico, explicarei o porquê mais tarde. Mas o que pretendo é fazer com que você veja o mundo com meus olhos, e se você gosta da aparência, vá um pouco mais fundo 

Vou atacar primeiro o ponto mais simples de todos antes de entrar em detalhes.

Por que não vou fazer um post técnico?

Bem, para aqueles que leram meu post sobre melhor comando linux, você saberá um pouco sobre a causa desse foco. A tecnologia está sempre mudando, e se eu escrever algo hoje, se a postagem for bem recebida, sempre terei que atualizar as informações. Nas linguagens mais comuns de hoje, a única certeza é a mudança. Por isso quero dizer (e os programadores podem provar que estou certo) frameworks estão sempre crescendo e modificando de seus núcleos, isso ocorre porque surgem erros, alguns podem ser considerados simples erros, enquanto outros podem se tornar vulnerabilidades. É por isso que escrever um post sobre uma língua específica, hoje, me garantiria talvez alguns meses de utilidade, na melhor das hipóteses um ou dois anos, mas essa não é a ideia 

Eletricidade é importante

Aqueles de vocês que fizeram uma pequena pesquisa sobre as linguagens de programação de software mais simples saberão que tudo remonta à eletricidade. No passado, a programação era feita no nível do hardware, o que significa que aqueles relógios antigos, calculadoras e muitos outros dispositivos podiam cumprir seu destino programando por Hardwares.

O problema

Alterar a programação de hardware é caro e complicado  (Pelo menos foi o que me disseram  ) É por isso que surgiram os processadores, que na verdade abstraem essa camada de hardware para entregar alguns comandos para poder fazer tudo o que era possível por meio do hardware, só que agora no .

Processadores

Os processadores de hoje têm um número limitado de funções, chamadas instruções em muitos livros. Eles permitem que você execute as funções mais básicas que o hardware pode executar e mobilize informações através da memória do computador.

Registra

Registradores são um espaço no qual o processador armazena informações para poder realizar trabalhos no kernel, dependendo da arquitetura eles podem ter um tamanho e ordem diferentes, mas de forma simples, sua função é armazenar dados que indiquem ao processador um dos seguintes tipos de trabalho: mover dados, aritmética e lógica, e controle de fluxo. Tudo pode ser resumido nesses tipos de funcionalidades.

binário

Os processadores funcionam no nível binário, o que significa que eles só entendem 0sy 1 . Um fato curioso aqui lembra das permissões GNU / Linux? bem, você já se perguntou como o processador realmente reconhece essas permissões? Simples  binário. No nível mais baixo, um processador entenderá as permissões como uma sequência de 0s e 1s, e é por isso que o octal que formamos tem os valores para execução, 2 para leitura e 4 para escrita. Para aqueles que sabem ler binários, eles entenderão que:

111100101111

Eles colocam as permissões de leitura, gravação e execução para o grupo outros ao colocar execução e leitura para o grupo grupo e somente leitura para o proprietário do arquivo. Para os mais curiosos, os últimos três 1s ativam o setguid, setuid e o sticky bit. Se você não sabe o que é binário, posso explicar em outro post, se você não conhece setuid, setgid e o sticky bit, então deixarei isso para sua lição de casa  mas também posso explicar em outro lugar se necessário.

Quando a curiosidade chama ...

Bem, se você me acompanhou até aqui, então sua curiosidade deve começar a perguntar um monte de coisas, a primeira que quero responder (e talvez a única que este post me permite porque já estou escrevendo muito) é: Se as chamadas são iguais, por que os programas são tão diferentes?

psicologia

Programar é a arte de aprender a ler mentes  Quero começar esta seção com uma citação que li há algum tempo, disse Edsger Dijkstra:

Se a depuração é o processo de depuração, a programação deve ser o processo de introduzi-los

E não consigo encontrar uma maneira melhor de explicar tudo isso  Por que programar é a arte de introduzir erros? Mais de um perguntará neste momento. A resposta é simples, porque as nossas mentes são humanas e os humanos cometem erros  está na nossa natureza e estará lá enquanto o homem existir no planeta.

Computadores não estão errados

Nós é que erramos, as equipes sempre se limitarão a reproduzir o que a gente fala, eles não assumem nada, não interpretam nada, não se opõem a nada, apenas leem e agem. Então, em outro livro C, eu já li algo assim:

C é uma linguagem rude, você pode fazer muito com ela, mas nunca vai impedi-lo de dar um tiro no próprio pé se você quiser fazer isso, ou então você diz.

Esta é uma verdade bastante curiosa  Pois ao trabalhar em um nível tão baixo, é possível que muitas operações realizadas sejam destrutivas, algo que não acontece com linguagens de nível um pouco superior, já que as camadas de prevenção de erros são mais antigas .

Tudo é psicologia

Toda linguagem, framework, programador, respeita e segue algum tipo de filosofia, e se não, não tem um futuro muito promissor. Aqueles de nós que trabalham com UNIX e derivados provavelmente conhecerão a velha frase:

Faça uma coisa, e muito bem.

Essa filosofia é a mesma seguida por alguns projetos como o kernel, funções bastante pequenas que fazem apenas uma coisa, mas fazem o melhor que podem.

Se formos para outras línguas, cada uma terá uma função e objetivo, algumas mais permissivas e outras mais restritivas, mas todas seguindo seu próprio modo de pensar.

Aprenda a ler mentes

Existe um ditado bastante comum entre os programadores de que existem centenas de maneiras de resolver o mesmo problema. Isto é verdade, mas há algo muito mais profundo neste aspecto. A leitura do código-fonte permite que você leia mentes - não apenas qualquer mente, mas a do programador (ou programadores) que o escreveu. É uma espécie de diário virtual profundo  permite conhecer a fundo a mente do desenvolvedor e, no caso de projetos extensos, permite ver como seu pensamento lógico e crítico cresceu ao longo do tempo. Algo extraordinário e que nutre muito a mente dos mais novos, porque poderá conhecer os melhores caminhos com quem os teve que descobrir 

Para ser consistente

Muitos programadores e especialistas dizem que temos que sair do nosso zona de confortoe, embora seja verdade, também é mais do que necessário manter certos processos e formatos. Isso é simples de explicar, nossas mentes são repetitivas e respeitam estruturas, se você escrever código da mesma forma todos os dias, em pouco tempo você deixará de pensar na forma e poderá se concentrar nela. fondo. Isso permite que você veja o lógica do programa em vez do sintaxe da linguagem. E é por isso que considero que aprender o conceitos sempre será mais importante do que aprender as formas. Esta é uma opinião pessoal, mas espero que depois de ler tudo isso você possa entender porque considero assim  além disso, isso está sendo dito por alguém que teve que programar em C, Java, Javascript, Python, Ruby, PHP e outros  conhecer os conceitos torna mais fácil escrever código.

Em síntese

Bem, este é o primeiro passo de uma série que espero que ajude você a pensar de forma diferente sobre a arte da programação, até mesmo convidando você a se aprofundar nos conceitos que permitem executar o código que você escreveu talvez centenas de vezes, mas eles não parei para pensar sobre o que isso realmente faz. E para quem ainda não começou a programar, mas gostaria de poder priorizar um pouco o que é realmente importante saber  Atenciosamente


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

      Javier G. Delgado dito

    Artigo muito consciencioso que fala (neste caso) de programar talvez numa nova linguagem que programe com maior profundidade, o meu apoio vai para o seguinte.

         Chris ADR dito

      Oi Javier, muito obrigado 🙂 Acho isso muito importante porque sempre quiseram me ensinar apenas a reproduzir código, o famoso Ctrl + C ... Ctrl + V 🙂 mas nunca me deixei arrastar por isso, mesmo que seja o problema mais simples do mundo Prefiro escrever do que copiar de outra pessoa, me faz sentir como se fosse minha criação.
      lembranças

      Balua dito

    Já esperando pelo próximo capítulo, parei de programar há muito tempo, e acho que posso encontrar em um capítulo posterior alguma causa para minha decisão, realmente, já que neste capítulo tiro o chapéu.

      Chris ADR dito

    Olá Balua 🙂
    Bem, vou inventar algo para o próximo. É um pouco complicado organizar tudo de forma que o tópico possa ser seguido de qualquer postagem, mas tentarei obter este (e vários outros que me perguntaram) muito em breve. Obrigado pelo seu comentário. Felicidades

      caso contrário dito

    Uma joia de um artigo! Espero o próximo ...