Fui contactado para realizar alguns trabalhos de controle remoto de displays de LEDs sobre TCP / IP, mas minha experiência e preparação são principalmente sobre linguagem de programação de alto nível. Eu disse isso à pessoa que me contatou sobre o trabalho e ele me disse que:
"se você se considera um programador, deve saber todas essas coisas"
Um programador deve realmente conhecer os detalhes da programação de baixo nível? Ou posso tratá-lo como um conceito de caixa preta, como conhecimento teórico, mas não necessariamente fazendo isso ou implementando soluções de linguagem de baixo nível, tendo em mente que a programação de baixo nível não é minha especialidade?
low-level
high-level
trabalho
fonte
fonte
Respostas:
Seu contato não sabe do que está falando. Existem muitas linguagens, metodologias, tecnologias etc. que uma única pessoa não pode conhecer muito bem todos os detalhes necessários. O que você precisa saber como programador é como aprender o que precisa para fazer o trabalho e ter uma abordagem de solução de problemas que você pode aplicar para chegar a uma solução, independentemente da linguagem de programação que você precise usar.
Admitir o que você não sabe é bom, mas você também pode provar que é capaz de aprender o suficiente para alcançar o resultado desejado, independentemente do que estiver enfrentando. Bons programadores são simplesmente bons solucionadores de problemas que podem implementar suas soluções em várias linguagens de programação.
Eu não estaria trabalhando para alguém que tenha a atitude de seu contato.
fonte
Discordo totalmente desta afirmação. Seria como pedir a um chef para cozinhar qualquer coisa, um motorista para operar qualquer tipo de veículo a motor ou um médico para conhecer todas as doenças, o que é uma suposição ridícula.
Para ser um programador, é preciso saber como fornecer software de gravação em algum idioma para executar alguma tarefa de maneira automatizada. As linguagens e tarefas variam de programador para programador, exatamente como os pratos que um chef sabe fazer, o motorista sabe como operar ou o médico sabe diagnosticar, dependendo da especialidade que se deseja em cada profissão.
fonte
Falou como uma pessoa que nunca escreveu uma linha de código em sua vida. Será a mesma pessoa que achará que você poderá fazê-lo na metade do tempo que citar. Não discuta com um idiota.
Você mostrou muito mais conhecimento e caráter ao conhecer suas limitações. Essa pessoa fala sobre coisas que não sabe de nada.
Acho que todo carpinteiro deve saber esculpir uma peça de mobiliário ornamentada. Se um piloto pode pilotar um avião, ele pode pilotar todos eles.
fonte
A maioria dos programas de CS na escola fornecerá algum conhecimento em programação de baixo nível. Eu, por exemplo, tive classes assembler usando o processador 8088 (OK ... então isso me data um pouco). Penso, no entanto, que muitas escolas de comércio hoje em dia ignoram esse conhecimento - com um comentário, se isso não for verdade.
Resumindo, é sempre bom saber o que acontece no nível do chip - além disso, seus idiomas de alto nível acabarão lá quando forem executados.
No entanto, ter alguém lhe dizendo que você não é um programador, porque atualmente você não sabe que a programação de baixo nível é ignorante. Se você precisa ter essas habilidades para o projeto atual, deve ter inteligência ou motivação suficiente para aprender as habilidades necessárias e aplicá-las.
Eu teria que considerar seriamente não aceitar esse projeto se o cliente já estiver falando com você dessa maneira - você nunca sabe para onde isso poderia ir.
fonte
Eu realmente desprezo quando as pessoas dizem "Você precisa conhecer o X para se chamar um programador". Verdade? Bem, algumas pessoas trabalham em COBOL o dia todo e adoram. Eles podem ter ficado tão bons nisso e no domínio de seus problemas que, ao lado deles, somos todos fingidores.
Sério, respeite as pessoas por resolverem os problemas que enfrentam de maneiras interessantes e interessantes. Entenda que a grande solução de problemas vem de uma diversidade de origens. Não se eles dominaram uma suposta "lista de verificação" de habilidades que todos deveriam saber para que todos possam pensar da mesma maneira. Esse é o exato oposto do que queremos. A "lista de verificação" de todos é e deve ser diferente. Quanto mais diferente, melhor. Programação é a solução de problemas nos dias de hoje. Respeite aqueles que o fazem bem e entenda que todos vêm à mesa com forças diferentes. Essa é a única maneira de ajudarmos um ao outro a trabalhar efetivamente em equipe. Só porque conhecer "C" ou algo realmente ajuda esse cara a ser incrível, não significa isso porque você não
fonte
Eu sugiro que você leia isto:
http://www.joelonsoftware.com/articles/LeakyAbstractions.html
Como explicado, quando você usa uma abstração, o nível mais baixo sempre influencia o que você está fazendo. Isso pode ter desempenho, causa de falha, motivos de segurança e assim por diante.
Então, definitivamente, você deve agora sobre esses animais. Não sendo especialmente um especialista em arquitetura asm ou CPU. Mas saber o suficiente para se documentar quando precisar saber mais é, de fato, um item obrigatório.
fonte
Seu argumento é um bom exemplo da falácia lógica de No True Scotsman .
No entanto, a diferença entre programação de baixo e alto nível não é a linguagem, é o domínio do conhecimento do aplicativo. Atribuir um valor como true pode significar acender um LED ou ativar eventos de clique do mouse em um widget. A linguagem não se importa.
Por exemplo, dê uma olhada nesta biblioteca para trabalhar com uma matriz de LED em um arduino. Não é ciência do foguete aqui, e realmente qualquer programador seria capaz de entendê-lo com um pouco de esforço se não apresentasse um "baixo nível, oh não!" bloqueio mental.
fonte
Cada linguagem de programação tem seus próprios prós e contras. Aprender alguns daria a você uma ótima percepção sobre o que usar e como usá-lo efetivamente quando receber um projeto.
Como programador, você pode se especializar em um PL específico, usando-o como sua única ferramenta para resolver qualquer problema, também pode conhecer muitos PL, mas se especializa em nada e muito mais entre esses extremos.
Talvez a pessoa que lhe disse que "Frase" esteja frustrada, talvez você não tenha sido a única pessoa de contato com quem ele falou.
conhecer o problema e saber qual conjunto de habilidades é necessário para ser capaz de resolver o problema efetivamente é uma boa característica de um programador. Infelizmente, no seu caso, como você não possui o conjunto de habilidades necessárias, talvez você possa encaminhar sua pessoa de contato para outro programador com o conjunto de habilidades necessário.
Felicidades,
custódia
fonte
Ter o conhecimento teórico é bom. Ser capaz de aprender o idioma de baixo nível quando necessário é muito importante.
Mas quanto a "se você se considera um programador, deve saber todas essas coisas", quem pode saber tudo sobre tudo? Antes que eles façam?
fonte
Vou reformular
PARA
fonte