Devo incluir `assembly` como linguagem de programação no CV? [fechadas]

15

Na resposta de uma pergunta, alguém escreveu isso assembly is not a language, it's a process. Eu concordo, pois a "linguagem" do assembly depende da arquitetura em que será executada, o que pode diferir bastante de uma CPU para outra.

Então, se você escreveu assembly para uma arquitetura, isso significa que você pode incluí-lo no CV apenas assemblycom outras linguagens de programação? Ou você diz explicitamente que escreveu a montagem para essa arquitetura específica?

EDIT: Alterado 'dabbled' para 'escrito'. O inglês não é minha língua nativa e eu não entendi o termo, pensando que significava que você o usava muito em vez de apenas um pouco.

gablin
fonte

Respostas:

22

Talvez eu esteja sendo pedante, mas "assembler" não é uma linguagem de programação, é um software para traduzir mnemônicos de instruções de montagem em opcodes para um processador específico. Se você quiser dizer que conhece a linguagem assembly , liste o Assembly Language para o processador XXX em seu currículo.

Dan Diplo
fonte
10
+1. Concordo plenamente. A menos que o OP realmente programada a parte interna de um "Assembler", usando Assembly Language for XXX processorseria o caminho a percorrer
Jagmag
2
+1: Essa é provavelmente exatamente a distinção que a citação da pergunta estava tentando fazer. Assembler não é uma linguagem; Assembly is. Entender errado provavelmente soa tão mal quanto dizer C + .
Doppelgreener
Sim, eu quis dizer montagem , não montador . Obrigado por apontar. Pergunta revisada. ^^
gablin
Caramba. Eu conhecia um cara da IBM que sempre a descrevia como escrevendo em "assembler". Ele era muito esperto.
Erik Reppen
12

Eu acho que a pergunta sobre se é tecnicamente uma linguagem é um pouco irrelevante, embora nunca seja demais para ser precisa (então sim, inclua a arquitetura específica se você a listar e provavelmente colocar a linguagem Assembly em vez do Assembler, embora eu tenha lido pessoalmente o mais tarde como uma taquigrafia razoável e não como um erro a ser penalizado).

As coisas que eu teria certeza de que estava pensando em mais do que isso são:

1) O principal: ajudará você a conseguir o emprego em questão? Você deve ajustar o seu currículo, dependendo do papel e, para cada um, pergunte a si mesmo se isso me faz parecer um candidato melhor para essa posição . Não existe absoluto, é dependente e o trabalho em questão.

2) Você está feliz em receber perguntas sobre isso em uma entrevista? Seu conhecimento é atual e está dentro de um bom padrão? Basicamente, se você colocá-lo em seu currículo, é um jogo justo para perguntas, portanto, certifique-se de estar feliz com isso e sentir que, no entanto, você escolhe apresentar que representa seu nível de conhecimento corretamente.

3) E depois disso, onde colocá-lo? Como você diz que se interessou talvez a melhor solução esteja na seção Outros interesses, você pode dizer "Tenho um grande interesse em tecnologia e passei meu tempo investigando uma variedade de idiomas e plataformas fora do meu conjunto de habilidades básicas, incluindo 6800 ( ou o que for) Linguagem Assembly.

Jon Hopkins
fonte
5

Eu não colocaria "assembler" pelo mesmo motivo que não colocaria "compilador".

Embora eu deva admitir que não tenho certeza se gostaria de incluir qualquer coisa em que acabei de "brincar".

De qualquer forma, meu currículo inclui "6502 assembly language". Curiosamente, não espero escrever novamente para o 6502 tão cedo (atualmente sou programador C # atualmente), mas o incluo porque ele comunica coisas interessantes sobre mim e minha experiência:

  1. Isso indica que eu sei como essas coisas de computador realmente funcionam em um nível bastante baixo. Isso significa que eu entendo o que está acontecendo quando escrevo códigos de alto nível, e esse conhecimento ainda é útil para resolver problemas e depurar códigos.
  2. Isso sugere que eu conheço técnicas de gerenciamento de memória, otimização, etc., que geralmente são perdidas em programadores que não lidaram com coisas nesse nível.
  3. Isso mostra que eu já estive por um tempo, com uma vasta experiência como desenvolvedor.
  4. Isso sugere que ainda posso fazer o trabalho, mesmo quando minhas ferramentas modernas me decepcionam (como costumam acontecer).
  5. Muitas vezes desperta interesse na entrevista.

Este último ponto é fundamental. Tive conversas interessantes e benéficas na entrevista, com base na minha menção ao 6502, normalmente onde o entrevistador também programou em linguagem assembly (de qualquer tipo, mas particularmente 6502). Isso certamente não me causou nenhum dano e poderia muito bem ter me ajudado a garantir minha posição atual.

Kramii
fonte
Ah, eu tive a impressão de que "brinquei" significava que você fazia muito. Pergunta revisada. Novamente. ^^
gablin
4

Eu arquivaria isso de alguma forma em 'experiência em arquitetura', talvez algo como isto:

"Portado com sucesso (kernel ou subsistema) para [arch], com profundo conhecimento da montagem [arch]."

Eu seria bastante conciso na sua área de 'objetivos', indicando explicitamente com o que você espera trabalhar. Seria péssimo se você fosse contratado e, em seguida, recebesse uma pilha de lixo velho que precisava ser transportado.

Tim Post
fonte
2

Escreva o assembler e inclua a arquitetura específica da CPU. Caso contrário, você indica que não entendeu o assembler. Considere também incluir o assembler, se for relevante para um novo trabalho.

Amir Rezaei
fonte
1

No seu currículo, você normalmente deve ter uma seção para linguagens de programação, outra para linguagens assembly (é claro, se você conhece a linguagem assembly) etc. Aqui está um exemplo:

Credenciais técnicas:
Linguagens de programação: Algol, COBOL, Pascal, Lisp
Linguagens de montagem: x86, x86-64

Apenas certifique-se de defender o que escreveu em seu currículo. Se você executou projetos específicos usando uma linguagem assembly, liste-o claramente na seção Detalhes do projeto . Eu também recomendo que você mencione algumas das instruções mais importantes que você usou.

Fanatic23
fonte
1

Eu acho que existem diferentes razões quase ortogonais para escrever assembler, e pode não haver muita semelhança além de ser passável familiar na linguagem assembler. Exemplos incluem:

(1) Criando um desempenho mundial melhor para os kernels matemáticos importantes. Conhece matemática, arquitetura de computadores etc.

(2) Escreveu muitos montadores para depurar novo hardware. Pode saber pouco sobre as características de desempenho de uma determinada máquina, mas sabe muito sobre a verificação de hardware.

(3) Pode ler o assembler gerado pelo compilador como uma ferramenta para depuração.

(4) Pode usar o assembler para obter recursos de HW não suportados por idiomas de nível superior.

(5) Grava backends do compilador e analisa o assembler gerado para ajustar os algoritmos de geração / otimização de código como parte da equipe do compilador.

Em geral, acho que a correlação de habilidades entre essas tarefas distintas provavelmente não é muito alta. Contrate alguém com experiência e habilidade demonstrada na tarefa M para um trabalho que exija a tarefa N, e você pode ficar seriamente desapontado com os resultados.

Omega Centauri
fonte
0

Assembly é um idioma, existe pelo menos um para cada conjunto de instruções.

Sim, coloque-o absolutamente lá, mesmo se você escrever aplicativos da Web em uma linguagem de script de alto nível.

Talvez onde eu trabalho seja a exceção, não a regra (o negócio de redes e o de chips / processadores), mas uma boa quantidade de nossos programadores conheça e escreva assembly, e mesmo se você estivesse procurando por um trabalho de portabilidade ou driver de dispositivo, veríamos a experiência de montagem, faça perguntas e tome decisões com base em suas respostas.

Como qualquer outra coisa no seu currículo que não se relacione com o emprego para o qual você está se candidatando, eles simplesmente o ignoram. esse não é um tipo de coisa "menos é mais". Se você realmente souber de alguma coisa, idiomas, processadores, protocolos, APIs, etc. Se você deixar as coisas de fora e esperar que o entrevistador leia sua mente ou seja forçado a adivinhar quais perguntas fazer para tentar extrair essas coisas, é a sua desvantagem. Eu preferiria ter um currículo / currículo de várias páginas para analisar ao entrevistar um candidato do que alguém que tentou enfiar o que podia em uma página e deixou de fora a "carne". Muitas vezes, um currículo como esse não passa pelo processo de pré-triagem. O RH frequentemente examina os currículos em busca de palavras-chave, palavras-chave suficientes e você sobe ao topo da pilha, insuficiente ou nenhuma e é descartado sem sequer uma entrevista por telefone. Em vez de menos é mais, mais é mais. Ao mesmo tempo, se você realmente não conhece o idioma ou frequentou uma aula na faculdade e faz muito tempo, você realmente não se lembra de nenhum detalhe, deixe-o de lado, chegando à entrevista com respostas como essas que incentivam seu currículo / currículo para chegar rapidamente ao triturador.

Sim, liste-o como uma linguagem de programação, é isso mesmo e especifique o processador (família).

C, C ++, Java, linguagem assembly (x86, ARM, MIPS), Python, Perl ...

Algumas pessoas listarão o assembler e não o idioma TASM, NASM, MASM.

old_timer
fonte