Saber Programar

ATENÇÃO: Este conteúdo foi publicado há 11 anos. Eu talvez nem concorde mais com ele. Se é um post sobre tecnologia, talvez não faça mais sentido. Mantenho neste blog o que escrevo desde os 14 anos por motivos históricos. Leia levando isso em conta.

Este artigo pode ter ficado meio confuso… Acho que acabei me perdendo no meio… :S Deixe um comentário se quiser discutir. ;)


Lógica da Programação

Estava me perguntando hoje:
“O que é a lógica da programação?”
E não consegui obter nenhuma resposta
com exatidão.

Afinal, o que é esse negócio
que “todo programador tem que saber”
e que até cursos existem
para o profissional aprender?

Desculpem… Não pude resistir… Hehehe :D Escrevi algo parecido e coube direitinho, aí dei uma modificada pra ficar em forma de “poesia”. Mas vamos ao artigo…

Talvez minhas idéias sejam diferentes das de quem já fez curso e aprendeu formalmente esse conceito, mas hoje estava pensando e cheguei a conclusão de que a lógica da programação é a lógica da vida, nua e crua. É simplesmente a lógica matemática/filosófica que já conhecemos há tempo e que aprendemos com experiências na vida. Então pra que estudá-la como sendo algo novo?

Um exemplo de lógica da programação, no meu ponto de vista, poderia ser o seguinte:

Eu não gosto de quem mexe nas minhas coisas. E O meu irmão mexeu nas minhas coisas. Disso, deduzimos que eu não gosto do meu irmão. Não importa se é verdadeiro, é lógico. É assim que o computador pensa, não é mesmo? A lógica portanto, para mim, é uma relação entre duas ou mais coisas.

Lógica Matemática

Aí lembrei-me que da lógica matemática, algo que não aprendi formalmente, mas, bom… O Professor Vavá me mencionou no meio desse ano, num dos nossos encontros matemáticos. Ele, decepcionado, mencionou que estava ensinando “lógica” para uma turma de sexta série e passou uma prova com a seguinte questão: As duas afirmações a seguir são corretas: ‘Todo professor de matemática é bonito.’ e ‘O Fabiano é professor de matemática.’ Sabendo disso, o que podemos deduzir? E aí tinham opções como: O Fabiano é feio., O Fabiano é bonito, entre várias outras coisas. Bom… Como é possível alguém errar uma questão dessas?* E, é claro, um monte de gente errou!

Condições Compostas

Cheguei a conclusão de que isto é a lógica da programação. Que é a mesma coisa que a lógica matemática. Aí… Putz… Lembrei-me da semana passada, quando o Leandro Matos (nada contra ele, até tá certo postar artigos assim porque tem gente que consegue ter dificuldade numa coisa dessas!) postou em seu blog um artigo sobre condições compostas – conjunções. Eu, olhando um título como esses, pensei: “Puxa, que esplêndido! Do que será este artigo se trata?” e, antes até de tentar interpretar o título, inocentemente abri uma página para “aprender” sobre o uso do e em condicionais na programação. Realmente decepcionante…

Quer dizer… Poxa! Como é que é possível alguém não entender uma frase como:

n>4 e n<6

... só vai ser verdadeira se 4>n E n<6? Pô, não consigo entender. Já não tá tudo escrito? Não tem nem o que interpretar: basta ler! Então, cheguei a conclusão de que o errado é o que muitas pessoas aprendem como programação. Muitas pessoas não sabem programar. Desculpa se você é um dos caras que tem dificuldade com uma coisa como "condições compostas" (nome bonito, hein?), mas sinceramente, você não vai conseguir programar nada dessa maneira. Você não consegue transpôr um conceito básico da sua vida e das suas experiências pessoais para a programação. Cheguei a conclusão de que as pessoas não entendem o que significa o "verdadeiro" e o "falso" de um condicional, não entendem um ! ("não" no C e linguagens "derivadas"), não entendem que basta você "ler"/"interpretar" a programação. Pô... Olha só a tabela que o Leandro postou no site dele! Hehehe...

É por isso que a gente chama C, PHP e outras siglas de "linguagens", porque elas não passam de uma maneira diferente de comunicar uma coisa, geralmente muito parecida com o nosso inglês... Aliás, muito parecida com tudo que a gente vê. Quem não entende é porque não tá acostumado com o que a gente vê todos os dias ou faz tanto parte da rotina que nem nota e nem aprende.

Nerds

Então, afinal, quem é um nerd? O programador? Ora... O programador é um ser pensante, ele conhece A Lógica, porque ele tem experiências de vida. Quem não programa direito (não conhece "A Lógica") é que é nerd, que não tem muitas experiências na vida e não consegue absorver uma mensagem e utilizá-la em outro local. E aí eu fui pensar bem e tentei lembrar-me do que eu considero "nerd". Sempre me vem imagens de um cara que passa a noite num quarto escuro estourando sua placa aceleradora num jogo viciante e com um fone de ouvido. Nunca me vem a mente um laboratório arrumado, claro, com um programador escrevendo linhas de código.

O exemplo do "Tio Marcos"

E aí, pra completar esse laço gigantesco, lembrei-me do meu tio Marcos. É um cara bem power, o presidente do Conselho Nacional de Psicologia. A gente sempre comenta que o cara sabe "de tudo". Tipo assim, eu comento sobre software livre, ele responde citando o Linux e com Mozilla. Se um marinheiro vai falar com ele sobre nós de marinheiro, ele sabe um monte sobre isso também! Meu irmão fala com ele sobre música erudita e ele sabe identificar os momentos históricos e qualidades de vários compositores. E a gente sempre chega a conclusão de que ele sabe tudo isso porque ele cria relações entre as coisas, relações adquiridas através de experiências pessoais. Ele já morou na Europa duas vezes (na França e na Espanha), fala essas duas línguas (francês e espanhol), além do português do inglês e vive viajando pelo mundo. Fala com gente de todos os estilos, freqüenta uns locais bem alternativos e dessa maneira é um cara que realmente sabe de "lógica". Ele tem uma facilidade imensa para relacionar dois conteúdos e tenho certeza que ele não teria dificuldade nenhuma para programar.

Conclusão

E cheguei a conclusão portanto de que lógica é a capacidade que a pessoa tem de relacionar dois eventos. E a lógica é um dos valores mais importantes do homem. Não serve só para a programação, mas para a matemática, para a filosofia e para qualquer coisa que você vá fazer. A lógica não passa do seu raciocínio e do seu pensamento. Aliás, acho que a "inteligência" é uma função que recebe a "lógica" como argumento... ;) Para adquirir lógica, não adianta você ler um monte de coisa; saia do computador e vá conhecer pessoas e adquirir experiências! :D

Concorda? Não concorda? Comente!

* Importante observar que o Professor Vavá nunca elogiaria o seu "Professor Rival"... Na verdade, ele colocou um aviso bem grande na questão: "Deduções lógicas podem às vezes estar erradas, como acontece, por exemplo, nesse caso." :)

12 comentários sobre “Saber Programar

  1. Tiago, você sabe aplicar injeção, tirar pressão ou medir os batimentos cardiacos de uma pessoa? Eu não sei. Minha irmã, que é enfermeira, não consegue entender como eu não posso saber fazer isso, é algo tão simples e tão intuitivo, tão lógico! Na opinião dela, é claro.

    Pessoas nascem com pre-disposição. Por isso é perfeitamente possível uma pessoa não ser bom em lógica, mas ser otimo em outros tipos de pensamentos, como criatividade ou analogico. Isso não faz dessa pessoa um ser que não pensa. ;)

    Criar boas soluções, que resolvam problemas, nem sempre depende da capacidade lógica das pessoas. Eu, por exemplo, considero meu raciocinio logico muito maior do que minha criatividade, isso me trás muitos problemas no dia-dia.

  2. Condições compostas é o V e F = F ? que nome xique! Curti, vou usa-lo só para dificultar :P
    Falando sério, Tiago vou lhe dizer uma coisa:
    “Quer dizer… Poxa! Como é que é possível alguém não entender uma frase como: n>4 e n

  3. O que houve com meu Comentário ?
    Vish… desanimei totalmente! deleta aí Tiago, o seu sistema corrompeu o comentário :(
    foi o refresh no mínimo :) (tenho que colocar a culpa em alguém)

    o que tentei dizer acima, era:
    O que é óbvio para um não é para outro. Não somos máquinas, temos raciocínio próprio.
    Claro que estamos falando de lógica, que é algo relacionado a matemática e tal, porém para resolver um problema lógico, precisamos ler, e é aí que mora as dificuldades de alguns, pois ocorre má interpretação que gera más resultados. n>4 e n

  4. Tiago, desculpa o Flood, mas o erro está ocorrendo quando eu chamo o “abre tag” ou o “sinal de menor”, dá uma olhada aí… se quizer pode deletar os meus comentários depois…

    Abraços!

  5. Dae Zé…

    “Pessoas nascem com pre-disposição”. Há algum tempo eu tava discutindo com uns caras sobre isso… As pessoas nascem com um dom pra certa coisa ou é a educação que faz elas terem uma facilidade? Não conseguimos chegar a uma resposta e eu ainda não tenho uma idéia bem formada sobre isso. Porém, minha mãe, uma pedagoga, diz que tudo é a educação que faz, é o meio que a pessoa vive; e, por ser filho dela, eu sou meio suspeito pra opinar nesse caso… ;)

    De qualquer maneira… Se eu nasci com o “dom” de entender “condições compostas”, então eu decidi virar programador. Agora, um cara que nasceu sem o dom de entender “condições compostas” não deveria escolher outra carreira? Porque afinal a gente gosta das coisas onde a gente tem facilidade, não?

    É uma discussão que poderia ir longe… Mas eu realmente não sou capaz de compreender tanto. Eu realmente não consigo compreender o limite do cérebro humano e as diferenças entre as pessoas (gostaria muito de ser alguém que tem dificuldade em “condições compostas” um dia para entender o que a pessoa pensa).

    Ah… E eu acho que comparar a lógica de comparar dois fatos com tirar pressão são coisas bem diferentes. Comparar dois fatos é humano, todo mundo faz isso no dia a dia; o problema é que a pessoa não consegue relacionar com a programação! Já tirar a pressão é algo bem específico da profissão de um médico… (ex de como comparar dois fatos é humano: eu acabei de comparar as comparações e tirar a pressão)

    Tenho certeza que se você perguntar pra uma criança se ela comeu E escovou os dentes, ela não achará a pergunta complexa. ;)

    Só acho que o problema dos caras está na falta de lógica que seria relacionar dois fatos, copiar o real para a programação; entender que o E significa a mesma coisa nos dois lugares! Isso é o que eu acho que é lógica. E não sei como é possível alguém não compreender isso.


    Hlegius,

    Sem problemas, só acaba de dizer o qeu você tava dizendo. Isso aí é bug do WordPress… :( Sobre o refresh, eu é que pûs, pra fazer um teste de medir quanto tempo a pessoa fica na minha página… ;) Mas acho que não é muito legal quando você tá num formulário! Nem tinha pensado nisso. Vou retirar…

  6. Eu compartilho da opinião de que a educação e a dedicação se sobressaem em cima do talento na maioria dos casos, mas a itenção do meu comentário não foi discutir isso.

    O que eu quis dizer é que as pessoas sempre acham que é fácil pra todo mundo ser bom no que elas são. Eu também fico complexado como tanta gente se dá tão mal em matemática, é uma coisa tão intuitiva, a matemática faz parte da natureza, não é invenção do homem. O universo em si é matemática. Mas isso é por que eu tenho pré-disposição pra esse tipo de área. No colégio eu não estudava pra nenhuma prova, chegava lá tirava sempre 10 em matemática e 0 em português/literatura. Eu ficava muito intrigado como os meus colegas tinham tantas dificuldades naquelas provas tão fáceis.

    Outra coisa é: uma pessoa pode não nascer com pré-disposição pra matemática, mas pode se dá muito bem na programação. Basta estudar, praticar muito e ser criativa. A única diferença de uma pessoa como essa pra uma pessoa que tem pre-disposição é que intuição sobre determinado assunto vai vim com muito esforço enquanto pra outra vai vim com facilidade, naturalmente. Não tou falando de pessoas que não morrem mas não entendem uma expressão de lógica proposicional, isso não é falta de dom ou sei lá o que, é preguiça.

    Quem se dedica, consegue.

  7. Concordo com o José Oliveira, nem todos os problemas são resolvidos apenas com lógica. Eu, assim como ele, considero que a minha lógica é muito maior do que a minha criatividade e isso também me traz algumas dificuldades no dia-a-dia.

  8. Podem me chamar de maluco, mas tenho um desejo quase q sexual de aprender/entender lógica e assim finalmente aprender ruby, python ou semelhantes…

    Agora a parte ruim, pelo menos as apostilas q eu li eram toskas! Alguem pode me dar um help? =)

    Ps: Ofereço favores a quem me mostra o caminho para o tesouro, nada sexual é claro =D aja excessão se vc for uma mulher =~~

  9. Ao contrário do Zeh eu tirava praticamente 10 em Português/Literatura e 5 em matemática…6, porque ficava na média :-)
    Já tentei começar a programar em php, mas sempre parei no meio do caminho, parece que tenho um bloqueio mental ao ver aquele monte de código. Acho que o pior fica por conta de ter de procurar qual função serve pra quê.
    2005 para mim foi o ano dos vestibulares. Passei em todos que fiz, mas em um deles, o qual tinha matemática e física como específicas tive uma nota péssima….
    É isso, quando a lógica está fora de coisas exatas, como por exemplo “movimentos políticos europeus e sua relação com a china” eu entendo, mas se entra qualquer coisa de matematica e cia eu to fora.

  10. Oi Tiago, esse é meu primeiro comentário em seu blog, cheguei até aqui realmente pelo título do do post e seu teor. Gostaria de parabenizar muito sobre tudo isso e o conteúdo geral, mas você disse sobre lógica e o nosso amigo ae falou sobre pré disposição, eu fico em cima do muro quanto a isso e vou dizer porque:

    Tenho um amigo que desde a infância teve problemas com drogas, um rapaz problemático e de longe com um certo distúrbio mental, até a alguns anos atrás levava uma vida de moleque de rua(não morador) e só pensava de bagunça e drogas, ae deram uma bolsa de estudo pra ele na faculdade para se formar em analista de sistema, não sei porque colocaram ele justo nesse curso, alguém sabia porque e quero eu saber também, rs… Mas enfim, com o tempo o rapaz desenvolveu tanto suas habilidades com os códigos e com a lógica e o engraçado que hoje considero ele na minha opinião pessoal o melhor analista e desenvolvedor que já conheci durante 7 anos nessa área. Creio eu que a educação, família, cultura e os compostos não foram fatores que influenciaram nessa formação dele, seria mesmo a educação ? pré disposição ? força de vontade ? o estudo em si ? Bom, continuo em cima do muro.

Deixe uma resposta