Programadores esquecendo a sintaxe


17

Os bons programadores precisam ter sintaxe na ponta da língua ao escrever código? O que você acha deles se pesquisarem no Google coisas simples online? Eles são bons ou ruins (talvez eles saibam onde procurar)? Os programadores devem ter uma boa memória? Essa é uma característica de um bom programador?


1
Dependendo de quão "simples". Alguns exemplos / antecedentes seriam úteis. Também pode ser um problema de inconsistência com o idioma / ambiente que eles estão programando.
Rwong

1
Eu acho que isso faria parte da definição de um bom programador, uma vez que se enquadra em rápido \ eficiente. Se você não pode escrever uma linha de código consultando uma referência, não fará nada em tempo hábil. Por outro lado, isso não é um convite para memorizar as coisas.
Stonemetal

Em C ++, geralmente tenho que procurar na sintaxe ponteiro para funções (membro ou não), pois não a uso com tanta frequência ... talvez que às vezes a sintaxe seja estranha ?
Matthieu M.

Respostas:


25

Minha filosofia de programação é que é um "estado de espírito" e o resto é "apenas sintaxe". (ou seja, não (como) importante)

Dito isto, não é preciso procurar as coisas simples. Pelo menos, não para os idiomas com os quais trabalha regularmente. Não há nada de errado em precisar de atualizações e saber como encontrar informações é certamente uma boa habilidade para se ter. No entanto, a sintaxe principal deve definitivamente ser bem conhecida. Caso contrário, você gasta muito tempo pesquisando e muito pouco tempo programando.


8
Exatamente, como uma língua falada: você precisa saber como falar, mas os dicionários são uma grande ajuda. Muitas vezes, você sabe o que deseja expressar antes de ter o vocabulário!
precisa

@ Kevin - Exatamente - mas você também pode julgar a fluência de alguém pela frequência com que eles fazem essas referências. A maioria de nós as usava de tempos em tempos, mas você pergunta a alguém que disse que sabia falar um idioma, mas sentia a necessidade de se referir continuamente a um dicionário.
Jon Hopkins

@jon Precisamente. Continuando a metáfora da linguagem falada / escrita, com algum esforço, podemos aumentar nossa exposição à língua e melhorar nosso vocabulário. Daí meu apetite voraz pela leitura e a busca contínua por um bom aplicativo de cartão de memória flash para iPhone. Da mesma forma para as linguagens de programação, quando tenho problemas com um idioma específico, crio um trecho que o demonstra e o mantenho à mão para facilitar a referência. E, é claro, faço questão de revisar ocasionalmente essas áreas problemáticas. Demorou algum tempo, mas finalmente memorizei a declaração traquina dessa maneira.
George Marian

Eu acho que um desenvolvedor mais 'avançado' provavelmente terá vários idiomas e às vezes os confundirá. Eu ainda confundo a declaração de uma matriz multidimensional entre C # e C ++ de tempos em tempos (foi "arr [] [] ou arr [,]") e tenho que procurá-la.
Steven Evers

28

Depende do que você quer dizer, mas a resposta curta é sim.

Os programadores vão esquecer um ponto-e-vírgula ou uma chave aqui e ali? Certo. Eles vão procurar a sintaxe de uma instrução switch porque provavelmente a usam raramente? Bem, eu faço. Trabalharei com o ActionScript, mas escrevi como Java? Definitivamente. Pode levar algum tempo para se acostumar a digitar em um novo idioma, especialmente se você trabalha com um idioma diferente há anos.

A verdadeira preocupação deveria ser se um programador não conseguir entender a sintaxe, mesmo com um IDE ajudando-o. Se a pessoa não sabe para que serve um ponto-e-vírgula, ou para que servem esses aparelhos, então há mais estudos a fazer.


8
Heh, a sintaxe exata da instrução switch geralmente também me deixa triste.
George Marian

Essa é a mesma razão pela qual me apego aos scripts Python, mesmo quando prefiro Ruby. Eu tenho que codificar em Python no trabalho, e as idas e vindas seriam muito confusas.
LennyProgrammers

+1 para a sintaxe instrução switch - é apenas indescritível por algum motivo
billy.bob

5
Sem mencionar a miríade de idiomas que se conhece e a sintaxe às vezes pode se misturar.
10139 Josaph

@ Dave Acho que o problema é a mistura de símbolos. Geralmente switch, é seguido por algo entre parênteses, depois um colchete de abertura, depois casecom um rótulo que não está entre parênteses, depois dois pontos, depois as declarações normalmente terminadas com ponto e vírgula. E, não vamos esquecer, as breakdeclarações. Foi por meio de esforço e pura força de vontade que eu finalmente o memorizei e ainda tenho que verificar duas vezes; apenas para ter certeza.
George Marian

10

Eu ficaria surpreso se um bom programador, de outra forma, tivesse que procurar rotineiramente a sintaxe para um idioma em que ele fosse fluente. É claro que pode haver casos extremos que na verdade não se acostumam muito na prática, de modo que seria perfeitamente aceitável para um bom programador não os conhecer, mas, como regra geral, um programador fluente não precisa procurar a sintaxe. Ele / ele tem que procurar funções e classes de bibliotecas :)


+1. Eu me consideraria fluente em C ++ e procuro nomes de funções e argumentos diariamente . Eu nunca vou memorizar todos os membros std::string, por exemplo.
Kristo

8

Se você está em uma posição em que muda de idioma regularmente ou trabalha em 3 ou 4 idiomas ao mesmo tempo, não há muito o que fazer. Por um tempo, acabei trabalhando em projetos que exigiam troca constante e comecei a me chamar de "programador de referência", tendo que procurar muito mais coisas do que eu preferiria.


4
+1 Concordo totalmente. Os codificadores que pulam entre idiomas a uma velocidade de nós (eu posso ter 10 idiomas ou mais em movimento em um dia abrangendo muitos projetos) acabam tendo problemas para lembrar as diferenças obscuras entre idiomas semelhantes, principalmente nas funções padrão da biblioteca. Isso piora à medida que você envelhece, eu notei.
Orbling

Esse é o meu problema, estamos passando por tantas coisas no trabalho que às vezes nem me lembro do básico. Especialmente porque geralmente posso usar o contexto, alguém escreveu um loop for ou função nas proximidades, apenas copio essa sintaxe. Ultimamente, tenho me forçado a aprender sintaxe, apenas contar com a prática para me fazer memorizar não é suficiente. Eu escolhi um idioma (Javascript) para alterar a sintaxe no meu cérebro. Está ajudando muito, especialmente com a prática de entrevistas no quadro branco.
Jemmeh

5

Escrevo C ++ há mais de 15 anos, mas ainda não conheço alguns de seus cantos arcanos sintáticos de cor.
Como você instancia explicitamente um modelo de função novamente? E qual é a sintaxe para especializar parcialmente um modelo que possui um argumento modelo-modelo? E não comece a declarar uma função que retorna um ponteiro para uma matriz de ponteiros para funções que levam matrizes de ponteiros para ...

Eu suspeito que haja no máximo uma ou duas dúzias de pessoas neste mundo (se houver alguma) que realmente conhecem toda a sintaxe do C ++ de cor. E provavelmente todos estão ganhando dinheiro escrevendo frontends de compilador C ++.


4

Estou curioso sobre a "sintaxe" do Google aqui.

Minha suspeita (e medo) é que não estamos falando sobre quais parâmetros uma chamada leva (porque a maioria dos IDEs solicitará você lá para que você não os pesquise no Google), mas sim as coisas reais do tipo "como fazer X".

Os IDEs tornaram desnecessário memorizar nomes precisos e listas de parâmetros da maneira que costumava ser necessária, o que deixou muitas pessoas com preguiça, mas tudo bem.

Mas algo que você precisa para o Google? Para mim, isso geralmente não é sintaxe, é apenas algo que você realmente não conhece ou que está familiarmente passando.

É claro que isso não significa que é errado ter coisas com o Google - os idiomas podem ser bem amplos hoje em dia e poucas pessoas sabem tudo, mas eu diria que, se você afirma ser competente com um idioma, o Google deve ser a exceção e não a regra .

Para mim, a menos que você esteja fazendo algo relativamente incomum, ou talvez esteja enferrujado com o idioma depois de um período fazendo algo diferente, se você afirma "conhecer" um idioma, não deve pesquisar no Google mais de 10% das coisas no máximo, e isso deve ser realmente muito específico.

Em referência à idéia de que se trata de ter uma boa memória, não é realmente. É sobre o tipo de sentimento instintivo que você recebe por algo que realmente (e não superficialmente) conhece. Não considero o fato de saber cozinhar uma Melanzane Parmigiana sem receita, um sinal de que tenho boa memória, é um sinal de que entendo como cozinhar esse prato - são coisas sutilmente diferentes.

Além disso, pergunte a si mesmo: você esperaria entrar na cozinha de um restaurante e encontrar o chef constantemente olhando um livro de receitas? Ou para ver o mecânico trabalhando no seu carro folheando o manual Hayes para esse modelo? Se eu visse uma dessas coisas, ficaria muito desconfortável com o quão boa era essa pessoa.


Comentar para o voto negativo? Estou realmente interessado no que é esse desacordo.
Jon Hopkins

+1 - Boa chamadasyntax != api
Jeremy Heiler

3

Minha opinião é não. Não é a sintaxe que é importante, mas a sua lógica para solucionar um problema ou alcançar um objetivo. Se você supõe trabalhar em vários idiomas, é natural que em algum momento você não se lembre da sintaxe exata.


0

Sintaxe é apenas a visão sobre a semântica subjacente da linguagem, porque a programação é sobre o uso dos tijolos semânticos subjacentes para criar algo. Se você não entender os conceitos fundamentais que a linguagem usa, não importa o quão bom você memorize a sintaxe, seu código será uma bagunça horrível. Como alguém disse uma vez: "Bons programadores têm um intérprete e um compilador na cabeça". Observe como não há menção à sintaxe, porque não é aí que o trabalho real acontece.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.