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 tenho descoberto sobre programação ao longo dos anos. Não afirmo ser excessivamente técnico, explicarei o motivo mais tarde. Mas o que eu pretendo é fazer com que eles vejam o mundo com os meus olhos, e se eles gostarem da aparência, então deixe-os aprofundar um pouco
Vou atacar primeiro o ponto mais simples de todos antes de entrar em detalhes.
Índice
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 escrever um post sobre um determinado idioma, hoje, me garantiria talvez alguns meses de utilidade, no melhor dos casos 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 do 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 1sim 🙂. 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 sucessão de 0s e 1s, e essa é a razão pela qual o octal que formamos tem os valores 1 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 pelo sticky bit
. Se você não sabe o que é esse binário, posso explicar em outro post, se você não sabe sobre setuid, setgid e o sticky bit, vou deixar para você como uma tarefa 😉 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á muito tempo, Edsger Dijkstra disse:
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 nossas mentes são humanas e os humanos cometem erros - isso está em nossa natureza e assim será 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 🙂 Visto que trabalhando em um nível tão baixo, é possível que muitas operações que são realizadas possam ser destrutivas, o que não acontece com as linguagens de nível um pouco superior, já que as camadas de prevenção de erros eles são mais velhos.
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
Há um ditado bastante comum entre os programadores, que existem centenas de maneiras de resolver o mesmo problema. Isso é verdade, mas há algo muito mais profundo sobre esse aspecto. Ler o código-fonte permite que você leia mentes - não apenas qualquer mente, mas a mente do programador (ou programadores) que o escreveu. É uma espécie de diário virtual e profundo - permite conhecer em profundidade a mente do desenvolvedor e, no caso de grandes projetos, permite ver como seu pensamento lógico e crítico cresceu ao longo do tempo. Algo extraordinário e que nutre muito as mentes dos mais jovens, porque se podem conhecer os melhores caminhos de quem teve que os 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 eu considero assim 🙂 também contada por alguém que teve que programar em C, Java, Javascript, Python, Ruby, PHP e outros 🙂 conheça o os conceitos tornam mais fácil escrever código.
Em síntese
Bem, esta é a primeira etapa de uma série que espero ajudá-lo a pensar de forma diferente sobre a arte da programação, até mesmo convidá-lo a mergulhar nos conceitos que permitem executar o código que você escreveu talvez centenas de vezes, mas eles não pararam para pensar sobre o que realmente faz. E pra quem ainda não começou a programar, mas gostaria de poder priorizar um pouco o que é realmente importante saber 🙂 Saudações
5 comentários, deixe o seu
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.
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
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.
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
Uma joia de um artigo! Espero o próximo ...