ti-enxame.com

Qual é o mito mais absurdo sobre questões de programação?

Em outras palavras ... Qual é o mal-entendido mais frustrante e comum sobre programação que você encontrou?

Quais mitos/equívocos generalizados e antigos você acha difícil para os programadores dissiparem/corrigirem.

Por favor, explique por que isso é um mito.

101
Maniero

Isso porque você é um programador, sabe como consertar a máquina contra vírus da pessoa.

272
Neth

Uma coisa comum de RH que me deixa maluco quando estou procurando emprego: a suposição implícita de que todas as habilidades de codificação são específicas de um idioma, que não há nenhum conhecimento em engenharia de software que transcenda os conjuntos de comandos. Esses dez anos de experiência em Java e outros cinco em Perl significam que você seria completamente inútil em um projeto que usa, por exemplo, C #.

"Sim, há uma curva de aprendizado. Mas eu fiz transições mais difíceis do que isso. Farei um acordo, pague-me 80% no primeiro mês e no final desse período, se não estiver ... oh , espere, na verdade não estamos tendo essa conversa, porque seu macaco de RH simplesmente excluiu meu aplicativo ".

266
BlairHippo

Se você não está digitando, não está trabalhando.

Acredito que olhares em branco de zumbis e passeios de café são essenciais para programadores que organizam as coisas em suas cabeças.

260
burnt_hand

que você pode acelerar um projeto atrasado, simplesmente jogando mais pessoas para ele.

158
chrmue

Esse software de escrita é fácil.

De que outra forma você explica todos esses projetos que decorrem com o tempo, o orçamento e as pessoas (políticos, mídia etc.) ainda ficam surpresas, e os clientes reclamam quando você lhes diz que seu "pequeno site" (ou qualquer outro) meses para desenvolver e custar vários milhares de dólares (libras, euros, [inserir moeda da escolha])

Com requisitos imprecisos e sempre em mudança, às vezes acho incrível que qualquer software seja finalizado!

Eu sei que é um pouco mais complicado que isso;)

132
ChrisF

A complexidade do aplicativo é diretamente proporcional à complexidade da interface do usuário. Por esse raciocínio, você poderá criar o Google ou o Twitter durante um fim de semana.

114
JohnFx

Todos os programadores são bons em matemática. :-)

95
David Cary

Qualquer adolescente que hackear computadores é equivalente (ou superior) em habilidade a um programador que trabalha com veteranos.

Meu sobrinho de 14 anos é bom em computadores e estou pagando US $ 10/hora para cortar a grama. Por que devo pagar seis dígitos para escrever o próximo FaceBook?

95
JohnFx

Que em tempo real significa rápido.

Declarando "Os pacotes precisam ser processados ​​em tempo real." é inútil e o gêmeo do mal ... responde "Quão rápido o X precisa acontecer?" com "Tempo real" é possivelmente menos do que inútil. ..bordando em estúpido, em vez de ignorante.

Tempo real significa que, simplesmente, essa função Y sempre levará X uma quantidade de tempo e que qualquer desvio indica um erro grave. A duração de X não define "em tempo real", pode ser seis microssegundos ou seis dias. Que você pode determinar a função Y levará X o tempo define "em tempo real". Os sistemas em tempo real são determinísticos por esta definição.

Então pare com isso ..

69
Rusty

Por que vocês simplesmente não escrevem certo da primeira vez, em vez de gastar tanto tempo digitando o código de buggy e depois lendo o código tentando encontrar os bugs?

:-) :-) :-) :-)

69
David Cary

Se você ainda não estudou, não é adequado para o trabalho

64
user2528

Essa otimização prematura significa que você não deve otimizar nada. Eu já vi bancos de dados terrivelmente ruins, porque ninguém queria considerar o desempenho (crítico para qualquer sistema de banco de dados) no design, pois isso era uma otimização prematura do que qualquer outro problema de design de banco de dados. Lixo, existem assassinos de desempenho conhecidos, pare de usá-los como sua primeira escolha.

Outro mito, é muito difícil refatorar o banco de dados. Não, mas você deve considerar como fazer a refatoração na fase de design para fazê-lo de forma eficaz. E, BTW, quanto mais você esperar para corrigir esse problema irritante de desempenho baseado em design, mais difícil será corrigir.

Outro mito ruim, o design do banco de dados deve refletir os princípios OOP. Não, os bancos de dados foram projetados para trabalhar com conjuntos que não são princípios OOP. Algumas coisas OOP causarão problemas horríveis de desempenho e outras são apenas tolas em termos de banco de dados.

Por fim, você deve impor a integridade dos dados no aplicativo. Os bancos de dados vão durar mais do que o aplicativo e perderiam as regras quando o aplicativo for substituído, vários aplicativos os acessarão e, muitas vezes, haverá a necessidade de executar consultas diretas para corrigir coisas que não passam pelo aplicativo. Eu nunca vi um banco de dados que se recuse a impor a integridade dos dados no banco de dados que possui bons dados.

61
HLGEM

Que existe alguma fonte mítica de melhores práticas absolutas.

Nenhum desvio pode ser justificado.

Nenhum documento que defina algo como uma prática recomendada pode ser questionado.

53
Bill

O fato de o marketing parecer pensar que adicionar uma tonelada de recursos pequenos é menos trabalhoso do que adicionar um recurso único, mas bastante pesado. O que provavelmente é um caso mais específico do equívoco de que "a alternância de tarefas não tem sobrecarga".

51
Giel

Esse código de comentário é desnecessário ou esse "código bom não precisa de comentários". Às vezes, você precisa explicar o que um código complexo está fazendo. Além disso, comentar seções do código ajuda você a ler muito mais efetivamente.

50
DisgruntledGoat

O pior mito: se você está programando por um longo tempo, pode ser um gerente de projeto facilmente.

E que você deve se tornar um gerente de projeto se estiver programando há muito tempo.

50
Namwar Rizvi

Se usarmos algo diferente de Java, C # e C++ em nosso projeto, não encontraremos programadores para suportá-lo.

50
P Shved

Java é apenas C++ com diferentes classes.

42
Gordon
33
TheLQ

Provavelmente, a mais perigosa que eu já vi, porque é aceita com tanta facilidade, é que ser capaz de escrever código rapidamente é bom e, portanto, quanto mais rápido você puder codificar [inserir recurso aqui] em um determinado idioma, melhor o idioma é.

Este é um exemplo sério de otimização prematura, uma vez que muito mais trabalho entra no código manutenção do que na criação. Isso significa que é muito mais importante escrever código fácil de ler, compreender e depurar do que o código fácil de escrever rapidamente, e facilitar o código fácil de ler é uma medida muito mais útil da qualidade da linguagem.

33
Mason Wheeler

que, como programador, você sabe tudo sobre as últimas tendências de hardware, overclocking, case mod, etc. amigos e parentes o consultam quando compram suas engrenagens.

31
setzamora

As lições de fabricação podem ser aplicadas ao processo de desenvolvimento de software.

31
Mike King

Que quando os programadores dizem que é muito difícil de fazer/simplesmente impossível, o RH pensa que é preguiçoso e desmotivado

30
koos303

Deve haver um programa de código aberto para os meus negócios. Você não pode simplesmente fazer o download e ajustar os meus requisitos.

28
Tim Murphy

Já tive mais de uma pessoa me perguntando como é programar, apenas para perceber no meio da conversa que elas realmente acham que programamos diretamente em binário ou usando símbolos matemáticos.

Não sei se quero dissipar esse mito, isso me faz parecer muito inteligente!

27
JohnFx

Eu acho que o maior equívoco é que é mais importante poder escrever o código facilmente do que ler e entender o código.

26
LennyProgrammers

A programação é como o trabalho da linha de montagem. Você está trabalhando em um produto por um certo tempo (talvez com colegas de trabalho) e finalmente o envia. Assim como construir uma casa de tijolos.

Contra: a programação contém muita criatividade e planejamento. Isso é arte. Como o pedreiro, também um programador sabe a diferença entre dar forma a um tijolo e planejar uma catedral inteira.

24
Josua Schmid

A portagem de um programa para C++ fará com que ele seja executado mais rapidamente.

24
JohnFx

Qualquer ambiente de programação com algum tipo de designer visual fará com que os usuários comerciais possam "escrever" o programa e não sejam necessários programadores reais.

21
Jesse C. Slicer

Reutilização OOP. É a maior falácia comercializada em programação.

20
clrod

Que aprender a sintaxe é a parte mais difícil.

19
palto

2 mitos que eu quero ter revelado. Muitos de meus amigos não entendem que Java e JavaScript são completamente diferentes, e muitos não programadores que conheço não entendem que há mais de um idioma.) estava começando a programar e precisava de minha ajuda ', é claro que ele nem sabia em que linguagem estava trabalhando.

Os dois vêm muito para mim.

15
Doug

A atribuição de uma prioridade diferente de "1" significa que a tarefa nunca será concluída.

Um gerente me pediu para personalizar a ferramenta de rastreamento de erros com as prioridades 1a, 1b, 1c, 1d e 1e para que ele pudesse atribuir tudo como uma variação da prioridade 1, mas ainda assim poderíamos organizar o trabalho.

E sim, passei por todas as questões de "prioridade 1". Mas antes que eu pudesse prosseguir para os problemas que ainda estavam na prioridade 2 a 5, o gerente me fez redesignar as prioridades desses problemas nos cinco níveis de prioridade 1.

(Eu percebo que esse mito não é específico para programação, mas isso é verdade para várias outras respostas neste tópico.)

15
Bill Karwin

Desde que o computador entenda o código digitado, isso é tudo o que importa. Portanto, digitar comentários e usar nomes de variáveis ​​com mais de duas letras é uma perda de tempo. :-(

13
David Cary

O formulário de digitação está relacionado à capacidade de programação. Sério, um dos professores da minha escola me disse: "Você não pode codificar rapidamente se não pode digitar rapidamente". Minha resposta foi: "É como dizer que só posso escrever o Great American Novel se fizer isso em letra cursiva".

12
quanticle

Que o programador prototípico:

  • entra para trabalhar depois das 11h
  • bebe nada, mas Mountain Dew
  • adora comida indiana ou sushi
  • mora sozinho por opção (com os pais e/ou no porão)
  • fica até as 3 da manhã jogando videogame
12
Kelly S. French

Essa notação húngara significa apenas que você prefixa nomes de variáveis ​​com um tipo (como int iArraylength = 5;) em vez de que tipo de dados ele contém (como int xcTextfield = getTextfield (). Coord.x;)

"Notação húngara em sistemas"! = "Notação húngara em aplicativos"

10
Zaz

Software livre de erros. Mais tarde, soube que todo programa continuava sendo executado com Bugs e que todo o jogo era sobre o cumprimento dos requisitos do cliente.

10
Gopi

Que qualquer código escrito em uma linguagem OOP (C #, C++, Java)) por qualquer pessoa é automaticamente Orientado a Objeto e "Reutilizável".

Não foi apenas uma vez que me pediram para reutilizar um bloco de mil códigos de linha ou uma classe em uma arquitetura que não tinha nenhum padrão, exceto a herança (que nem conta). Aparentemente, copiar e colar também conta como uma boa reutilização de código para quem não conhece a diferença entre um idioma OO e o OOP propriamente dito.

Um TDWTF favorito que acontece de vez em quando: Code-Recuse

9
Jonn

Esses aplicativos da web podem ter "7x24".

Pergunte a qualquer pessoa de negócios que tempo de inatividade é permitido e eles sempre insistem em 100% de tempo de atividade. Não se esqueça que 1 minuto de inatividade por semana ainda é de 99,99% e é quase inatingível para uma organização menor que uma grande empresa.

9
bmb

Todos os programas escritos em C/C++ serão executados mais rapidamente que os programas equivalentes a Java/C #.

7
Mohan Narayanaswamy

Que existe uma única "melhor" ferramenta/solução/resposta para qualquer problema/pergunta

7
Murph

O maior mito é que é fácil.

7
Fortyrunner

Programadores que se tornaram gerentes dizendo:

"Três semanas ?! Eu codifiquei no passado, como difícil pode ser?"

6
Arcturus

Que qualquer M.Sc. com um curso de programação é suficiente para ser contratado como desenvolvedor de software.

6
FeatureCreep

Isso porque você é um programador, sabe como consertar a copiadora.

6
Jeff Siver

Quais idéias erradas são difundidas por muito tempo

Há uma crença muito difundida entre os programadores sobre como encontrar problemas de desempenho. É que para encontrá-los, você deve medi-los.

O contra-exemplo mais simples é um loop infinito (indesejado). Leva 100% do tempo, fazendo coisas que são completamente desnecessárias.

Como você encontra o problema? Você o coloca em um depurador e o pausa, interrompe ou interrompe. Então você olha para a pilha, porque sabe que o loop está em algum lugar nela. Você pegou em flagrante Você mediu? ou apenas encontrá-lo?

Suponha que não seja um loop infinito, apenas leva mais tempo do que você acha necessário. Suponha que o trabalho desnecessário seja inferior a 100%, como 90%, 50% ou 20%. É a mesma ideia. Se você pausar, esse percentual é a chance de capturá-lo em flagrante. (Você não precisa saber qual é a porcentagem para capturá-la.)

Só para ter certeza, você pode pausar várias vezes. Assim que você vê fazendo algo, em apenas dois amostras, que você pode substituir por algo mais rápido, você pode corrigi-lo para uma aceleração agradável. Além disso, você acabou de tornar mais fácil encontrar outros problemas, porque o tempo é mais curto e eles levam uma porcentagem maior. Isso pode "Snowball" até que o código esteja muito próximo do ideal.

Obviamente, se você deseja medir o problema, basta colher mais amostras, mas isso não é um pré-requisito para encontrá-lo.

As pessoas me dizem, de bom grado, que é isso que os criadores de perfil de amostragem fazem, mas fazem melhor. Muitos preferem debater a questão do que ver por si mesmos.

4
Mike Dunlavey

Que ser gerente é melhor do que ser codificador. Ser gerente é chato. Quem entrou no gerenciamento puro nunca gostou de programar.

4
zhenka

Computadores e software melhoram o processo de trabalho por si só.

4
aasc

Entre os programadores: o Delphi está morto, morrendo ou com suporte de vida.

3
Peter Turner

Que um gerente conheça bem o código que seus desenvolvedores estão escrevendo.

3
Mike Mooney

Existe uma linguagem chamada C/C++

Ou que as línguas são tão próximas que as habilidades são intercambiáveis.

3
Martin York

Esse software de escrita é realmente sobre escrever código.

2
Craig Norton

Muitas pessoas pensam que o JavaScript é semelhante ao C++ e não entendem que ele realmente usa herança de protótipo.

1
diadem

Que linguagens de programação mudam o tempo todo.

Isso pode ter sido há muito tempo no passado ...
Mas hoje em dia as alterações são principalmente recursos extras que tentam não quebrar o código existente.

1
Tamara Wijsman

Por que os programadores insistem em escrever bugs? (Vindo de uma pessoa de marketing + testador que nunca consegue fazer um relatório de erro corretamente).

1
Dorin Lazăr
  • Isso OO significa qualidade.
  • Que a abordagem OO é a abordagem correta.
  • Que o trabalho de um programador é escrever código.
  • Essa linguagem é importante.
0
Fredy

O todo mentalidade de hollywood (por falta de um nome melhor) que, sempre que um programador de uma série de filmes/séries fala, ele precisa articular todas as tecnologias de que precisa ( I precisa de um PHP front-end e um MySQL !!! !!! 11 ) ... E mais um pouco que não faz sentido em tudo claro.

Se eu falasse assim, provavelmente seria chutado nozes.

0
Andreas Johansson

Usando o inglês (ou seu idioma nativo) para descrever um problema:

é mais útil do que fornecer um exemplo compilável do código que ilustra o problema.

0
Martin York