Executando verificação de segurança...
7

Não é que quem programa em Python não programa de verdade. Algumas pessoas fazem isso. Há uma tendência a isso, não é que todo mundo seja assim. E sintaxe mais simples, que faz algumas pessoas entenderem ser mais fácil aprender, não é o motivo para a pessoa não ser programador de verdade.

E é preciso entender o que é "programar de verdade". Você programa em Python, ou outra linguagem, até se você fizer um "hello world". Mas o "de verdade" é fazer um trabalho de engenharia, é pensar sobre cada decisão que está tomando e fazer o melhor sob vários aspectos que vão além de só fazer funcionar e dar o resultado desejado. É ter uma formalização dos procedimentos. E é só que vou falar por agora, já que vou produzir um conteúdo amplo sobre isso em breve.

Não tem problema algum em programar sem maiores compromissos. Mas tem quando o problema exige mais compromisso. Eu bato muito na tecla porque minha audiência é o "programador de verdade", o que pratica a engenharia de software.


Python tem sintaxe fácil, e isso é bom. Mas se a pessoa acha que Python, ou outra linguagem, é melhor por causa da sintaxe já sabemos que ela não programa de verdade. Eu adoro sintaxe, isso importa, mas ela não é tão importante do ponto de vista da engenharia. Por isso eu falo que se a pessoa tem medo de sintaxe mais complexa ela provavelmente não tem muita vocação para a área. Isso pode ser corrigido, em boa parte dos casos, mas pode ser dolorido, e nem todo mundo pode querer a dor.

Eu não gosto muito do exemplo do quase "hello world", porque 99+% dos códigos não são assim e isso não importa. Mal importa quando se está usando uma linguagem de programação porque o Excel não está sendo suficiente (porque o Excel é uma linguagem de programação mais limitada, sim, você leu certo, e é uma linguagem de programação mais fácil que Python). Claro que se vai fazer um simples script pode ajudar não ter penduricalho, mas um snippet resolve a questão de digitar isso. Não vivemos mais nos anos 70.

Por sorte algumas linguagens transitam bem e podem, opcionalmente até ter ponteiros, e por outro lado podem ter um código tão ou mais simples que o escrito em Python, e se for necessário tem como ele ficar mais curto ainda, por poucos caracteres, já que nem tem como fazer ficar tão menor sem perder a semântica. C# por exemplo é uma dessas linguagens, dá para fazer em uma linha, mantendo a legibilidade.

Claro que é óbvio que você não vai usar C para fazer uma coisa dessas, mesmo algo um pouco mais complexo. Mas ao mesmo tempo, para fazer coisas simples assim, C não é mais difícil que Python, a semântica é idêntica. Vou repetir: idêntica, e é isso que importa.

Para a pessoa programar em linguagens de baixo nível tem que ser basicamente em algum tipo de Assembly, e não vejo as pessoas falando isso (C não é uma linguagem de baixo nível, embora o próprio termo não costuma dizer muita coisa, justamente por isso as pessoas usam do jeito que querem sem ninguém saber do que está se falando). Para usar alguma coisa com menos abstração, eu digo para usar só quando faz sentido. Para certas coisas não é o recomendado, outras vezes faz. Se alguém fala sem considerar o contexto, a pessoa está errando. Eu mesmo questiono o pessoal incentivando o uso de Rust da forma como fazem, porque Rust não serve bem para a maioria dos problemas. Rust compete diretamente com C ou C++. Nenhuma dessas linguagens devem ser comparadas com Python que concorre com Lua, Ruby, PHP, JS, etc.

Ah, C é mais fácil de aprender! Afirmo isso categoricamente. C é mais difícil de dominar. C é mais difícil de usar. A quantidade de conceitos existentes em C é bem menor, por isso é muito mais fácil. Para fazer o básico tem bem pouco diferença entre elas, ambas possuem essencialmente a mesma semântica.

De qualquer forma elas não devem ser comparadas. Elas servem para propósitos muito diferentes, até no aprendizado. Uma serve para aprender ser programador de verdade, conforme definição já dada, e a outra para ser programador. Qualquer pessoa pode ser uma coisa ou outra, mas fica muito difícil ser programador de verdade começando com Python. Pode até não ser C, pode ser outra linguagem que deixe você ver o que está acontecendo ali para entender o processo e saber cozinhar qualquer coisa. Claro que começar com C não garante nada, só dá mais chance. A atitude de como a pessoa aprende conta mais, e uma dessas atitudes é escolher a ferramenta certa para o objetivo. Minha experiência, longa, é vendo quem se dá bem e quem só segue receitas de bolo.


Quem sabe resolver problemas é um monte de coisa. Inclusive nem precisa saber uma linha de código. Essa definição da postagem original não funciona. A pessoa pode ter na cabeça dela, mas não pode dizer que ela encaixa bem. Ela não tem sustentação. O programador de computadores (não o de escalas, de produção, ou qualquer coisa do tipo) precisa saber codificar. O programador de verdade precisa saber muito mais que isso. Ele precisa dominar o que a profissão exige, ele programa computadores.

Talvez a melhor comparação, e ela não é perfeita, seria com quem cozinha. Fazer comida em casa é diferente de fazer em um restaurante, mais ainda de um estilo fast food, e é diferente de ser chef e nem se compara com um engenheiro de alimentos ou nessa linha, que faz algo parecido, mas diferente. O único profissional de gastronomia aqui é o chef de cozinha. O resto trabalha com produção de alimentos prontos para comer ou faz por hobbie, e o resultado pode parecer igual, mas não é. E alguém que não seja um chef de cozinha, pode fazer algo de qualidade, mas é mais por coincidência, ou uma especialização bem grande, do que por habilidade. Quando você analisa o todo a pessoa mostra fragilidades que o chef não tem.

Eu pago 35,00 por um marmiteiro que costuma durar 2 dias. A comida não é ruim, mas seria melhor pagar 70,00 por refeição, a diferença não seria tão grande, mas seria melhor. E seria melhor ainda, mas nada que provocaria orgasmos, se eu pagasse 350,00 por uma refeição. Mas é bem diferente quem faz (quase sempre, não vou contar os marketeiros charlatões).

Ou a pessoa entende o que está fazendo ou ela está acertando pontualmente. Só um é profissional de verdade. Os outros pode até receber pagamento para fazer isso, mas não está na profissão, seja de chef de cozinha só porque consegue cozinhar ou ser pago para "fritar algo" seguindo uma receita, ou porque produz alguns códigos que resolvem alguns problemas, desde que simples, ou que já tenha a solução pronta em algum lugar, seja de engenheiro de software, a.k.a. "Programador de verdade".

Na hora que a coisa aperta sabemos quem sabe criar, resolver um problema difícil ou vai ter que jogar a comida fora. Reproduzir receitas ou criar algo pontual simples qualquer um pode, criar qualquer coisa não. E isso é o que diferencia o programador de verdade. Se a pessoa consegue um emprego em uma cozinha para seguir as receitas que dão para ela, ótimo. Isso não é um chef de cozinha de verdade. E essas pessoas não vão ganhar tão bem por razões óbvias. (Ah, muito programador ganha menos que cozinheiro, não estou nem falando de chef de cozinha).

A pessoa pode escolher ser assim, e não tem porque a pessoa se sentir mal por isso. Tudo tem mérito. Ser desonesto é algo a ser recriminado, fazer algo um pouco mais simples não. Muitas vezes a pessoa escolherá por limitação. Acontece o tempo todo com todo mundo, eu mesmo não sei quase nada sobre quase tudo.

É fato que você não precisa saber de tudo sobre tudo na computação, mas para ser um programador de verdade tem que saber a base muito bem. O que diferencia o programador de verdade não é a vastidão de conhecimento que ela tem, assim como o chef de cozinha não sabe a culinária de todos os países e regiões, mas ele sabe bem a base para fazer qualquer coisa de forma correta, e possa aprender facilmente o resto e que consiga aproveitar o que sabe para entender o que ainda não sabe, até porque ninguém sabe tudo.

Note que tudo o que eu digo aqui funciona para quem cozinha ou quem programa. Tem hora que deixo sem dizer sobre o que estou falando de propósito.


Não vou entrar em todas questões, por exemplo sobre os níveis de abstração que você deve descascar ou não, mas é óbvio que nem todo mundo precisa ir a todo nível. O chef de cozinha não deve ser um especialista em química, só saber um pouco.

Eu não entendi muito bem o objetivo da postagem, porque ela fala de Python, mas parece que quer falar de outra coisa. O próprio título ficou estranho pra mim. E a comparação das linguagens não ilustram o que se fala depois. E não mostra bem a questão de Python x C. A impressão que deu foi só uma defesa de Python sem argumentos, mas pode ser só um engano meu. Muito menos entendi a questão do preconceito com a linguagem. Eu nem consigo fazer uma crítica mais adequada.

E eu não chamaria de "código bom" o exemplificado. Pra mim código bom vai além do resultado certo, ele faz algo útil. E se poucas linhas for algo bom, dá para fazer com C criando abstrações, é mais questão de como a pessoa faz do que a ferramenta.

Ter poucas linhas não deveria ser métrica. Por isso algumas pessoas preferem usar um map em vez de um for que resolve igual, porém melhor, na maioria das situações. Nenhum problema para o programador, mas o programador de verdade se preocupa com isso. E ele fará o melhor, mesmo que não seja uma exigência no momento (pode ser depois, já deixa pronto para o depois), mas não fará se tiver um bom motivo para não fazer. O programador de verdade consegue tomar essas decisões, o programador não tem essa opção, ele não está habilitado a isso.


Algumas pessoas comentam sobre coisas que não entendem, outras fazem uma análise sobre fatos. Em alguns casos a simplificação trunca a conversa. E algumas pessoas pegam o truncado e passam a repetir sem saber bem o que está falando. Então algumas pessoas "Dizem que quem programa em python não programa de verdade". A questão nunca é tão simples, e todo mundo que tenta simplificar para um lado ou outro acaba errando, mesmo querendo acertar. Pode ser que algumas pessoas tenham preconceito (com a linguagem):

É uma ideia formada antecipadamente e que não tem fundamento crítico ou lógico

Nem toda crítica à linguagem é preconceito.


Ninguém precisa ter vergonha de não ser programador de verdade tanto quanto não ser chef de cozinha. As pessoas devem usar as ferramentas que são mais adequadas para seus objetivos. Se ela falhar nisso ela pagará um preço, pode ser grande ou pequeno.

Se a pessoa não entende a computação corretamente ela vai tomar decisões erradas, e em muitos casos não vai perceber. Só perceberá quando ficar todo torrado (eu já peguei comida assim sendo servida, de tanto que a pessoa não sabe que está errado).

As pessoas podem ter a opinião que for, mas isso não a torna automaticamente verdade. Cada um tem sua experiência e lida com essas questões de forma diferente.

E claro que positivei a postagem, porque a discussão é interessante, caso contrário eu nem entraria nela. Não positivei porque concordo com ela, até por não ter entendido totalmente nem seria possível. E certamente tem coisas que concordo.

Faz sentido para você?

Espero ter ajudado.


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).

Carregando publicação patrocinada...
1

Só um adendo ao uso do termo "chef de cozinha", um chef me explicou uma vez que "chef" é um cargo dentro de uma equipe de cozinheiros em um restaurante. Está mais relacionado com as habilidades de liderança, organização e responsabilidade do que com as habilidades culinárias. No fim das contas, em muitas cozinhas há cozinheiros com habilidades melhores que o próprio chef.

Existe ainda o "chef executivo de cozinha", que muitas vezes nem chega a cozinhar no dia-a-dia, seu trabalho é mais focado em montar menus, organizar equipes, horários, contratar cozinheiros e auxiliares, etc.

1

Entendo, é a expressão que eu, um leigo, fala para explicar para outros leigos, e usa porque quase todo mundo entende o que é, mesmo não sendo a definição correta, e claro, eu não poderia usar isso dentro da gastronomia. Acho que também entendeu o que quero dizer.

Obrigado.

-6

Sinceramente pouco me importa se positivou a postagem ou não, eu de primeira imprenssão, já te achei bem arrogante, parceiro ! Mas irei te responder, porque concordei em alguns pontos, quanto a você positivar a postagem ou não, e caso não tivesse positivado nem teria comentado essa bíblia que você postou, pouco me importa, mas vamos lá...

Não estou defendendo a linaguagem Python, o objetivo da postagem é apenas um dentre diversos comentários na multidão, sobre como Python sofre hate, mesmo sendo uma linguagem fácil de se programar. Quanto a pessoa ser considerada programador de verdade, isso na minha opinião é uma discução que vai além da área de tecnologia, porque o piloto do computador é um ser humano, então para entender a máquina física, é preciso entender de harware, já pra entender a máquina orgânica, é preciso entender neurociência. Cada pessoa tem seu nível intelectual (capacidade de resolver problemas), existem pessoas que nascem abençoadas, já outras, eu diria... amaldiçoadas ! Sim, isso porque a pessoa tem um intelecto genéticamente semelhante ao de um primata, o problema começa aí !

Quanto a pessoa saber o funcionamento complexo, é claro que para ser um ponto fora da curva, é preciso entender a base de tudo por trás... Ao invés de simplesmente olhar apenas para a camada da interface, ter a atitude diferenciada de puxar a cortina para ver a magnificência das camadas por trás... Física(01)... Enlace[]-[] Enfim ooo

Muito se discute sobre o que é programar de verdade, mas ainda mantenho minha opinião anterior, programar é resolver problemas.

Quanto a analogia da cosinha, tenho uma postagem em que falo que A área de tecnologia é uma cozinha. Concordo na questão de que a pessoa não precisa conhecer todas as receitas do mundo, mas ao menos a base ! Você sabe que pra cosinhar um ovo você precisa de uma panela, mas na base, você sabe que o que precisa mesmo, é de calor, entende ?

A questão é... Para ser um programador de verdade, e eu digo como minha mais sincera opinião, e que a defino como geral e ponto final nessa discução, é que para ser um programador de verdade é preciso ser diferente ! Em tudo na vida, a diferênça é aquilo que cria algo novo, e é esse o segredo. Ao invés de você simplesmente ficar replicando o que já está pronto, o que a empresa por anos segue como padrão, o programador de verdade é aquele que explora o novo ! Foi assim que evoluimos da pedra para o ferro, do solo ao espaço, da pobreza a riqueza... A vida é um jogo de escolhas, o programa que buga o sistema é o que vence.