14

In the answer for one question someone wrote that assembly is not a language, it's a process. I tend to agree, since the assembly "language" is dependent on the architecture it will run on, which may differ quite a bit from one CPU to another.

So if you've written assembly for one architecture, does that mean you can include it in the CV under merely assembly along with the other programming languages? Or do you explicitly say that you've written assembly for that particular architecture?

EDIT: Changed 'dabbled' to 'written'. English isn't my native language and I misunderstood the term, thinking it meant that you've used it a lot instead of just a bit.

8 Answers 8

22

Maybe I'm being pedantic, but "assembler" isn't a programming language, it is a piece of software for translating assembly instruction mnemonics into opcodes for a particular processor. If you want to say you know assembly language, list Assembly Language for XXX processor in your CV.

4
  • 10
    +1. Totally agree. Unless the OP actually programmed the internals of an "Assembler", using Assembly Language for XXX processor would be the way to go
    – Jagmag
    Dec 23, 2010 at 11:38
  • 2
    +1: This is probably exactly the distinction the question's quote was trying to make. Assembler is not a language; Assembly is. Getting it wrong probably sounds as bad as saying C+. Dec 23, 2010 at 12:20
  • Yeah, I meant assembly, not assembler. Thanks for point it out. Question revised. ^^
    – gablin
    Dec 23, 2010 at 13:11
  • Yikes. I knew an IBM guy who always described it as writing in "assembler." He was very smart. Dec 5, 2013 at 20:05
12

I think the question about whether it's technically a language is a little irrelevant, though it never hurts to be accurate (so yes include the specific architecture if you do list it and probably put Assembly Language rather than Assembler, though I'd personally read the later as a reasonable shorthand rather than a mistake to be penalised).

The things I'd make sure I was thinking about more than this are:

1) The main thing: will it help you get the job in question? You should tweak your CV depending on the role and for each one ask yourself does this make me look a better candidate for this position. There's no absolute, it's dependent and the job in question.

2) Are you happy to be asked questions about it in an interview? Is your knowledge current and up to a good standard? Basically if you put it on your CV it's fair game for questions so make sure you're happy with that and that you feel however you do choose to present it represents your level of knowledge correctly.

3) And following on from that, where to put it? Given that you say you've dabbled maybe the best solution is in an Other Interests section you can say "I have a wide interest in technology and have spent my own time investigating a range of languages and platforms outside my core skills set including 6800 (or whatever) Assembly Language.

0
5

I wouldn't put "assembler" for the same reason I wouldn't put "compiler".

Although I must admit I'm not sure I would want to include anything in which I have just "dabbled".

Anyway, my CV does include "6502 assembly language". Interestingly, I don't expect to write for the 6502 again any time soon (I am primarily C# programmer these days) but I include it because it communicates interesting things about me and my experience:

  1. It indicates that I know how these computer things actually work at a fairly low level. This means I understand what is going on when I write high-level code, and this knowledge is still useful for solving problems and debugging code.
  2. It suggests that I know about techniques for memory management, optimisation, but-twiddling etc. that are often lost on programmers who have not dealt with things at this level.
  3. It shows that I've been around a while, with a wealth of experience as a developer.
  4. It suggests that I can still get the job done even when my modern tools let me down (as they do sometimes).
  5. It often elicits interest at interview.

This last point is key. I have had interesting and beneficial conversations at interview based on my mention of the 6502, typically where the interviewer has also programmed in assembly language (of any kind, but particularly 6502). This certainly hasn't done me any harm, and might well have helped me secure my present position.

1
  • Ah, I was under the impression that "dabbled" meant you've done it a lot. Question revised. Again. ^^
    – gablin
    Dec 23, 2010 at 13:34
4

I'd file that somehow under 'architecture experience', perhaps something like this:

"Successfully ported (kernel or subsystem) to [arch], in depth knowledge of [arch] assembly."

I'd be quite concise in your 'goals' area, explicitly indicating what you hope to work with. It would suck if you got hired, then got handed a stack of ageing junk that had to be ported.

2

Write assembler and include the particular CPU architecture. Otherwise you give indication that you didn't understand assembler. Also consider to including assembler if it's relevant for new job.

1

In your resume, you should typically have a section for programming languages, another one for assembly languages (of course if you know assembly language that is) etc. Here's an example:

Technical Credentials:
Programming Languages: Algol, COBOL, Pascal, Lisp
Assembly Languages: x86, x86-64

Just make sure you can defend what you have written in your CV. If you have done specific projects using an assembly language, list it out clearly under a Project Details section. I'd also recommend that you mention some of the more important instructions that you've used.

1

I think there are different nearly orthogonal reasons for writing assembler, and there may not be much commonality other than being passable conversant in the assembler language. Examples would include:

(1) Creating world beating performance for imporatnt math kernels. Knows math, the computer architecture, etc.

(2) Wrote lots of assembler in order to debug new hardware. May know little about the performance characteristics of the given machine, but knows a heck of a lot about hardware verification.

(3) Can read compiler generated assembler as a tool for debugging.

(4) Can use assembler to get at HW features unsupported by higher level languages.

(5) Writes compiler backends, and looks at generated assembler in order to tweak code generation/optimization algorithms as part of the compiler team.

In general, I think the correlation in skills among these distinct tasks is probably not very high. Hire someone with experience and demonstrated skill at task M for a job that requires task N, and you may be seriously dissapointed in the results.

0

Assembly is a language, there is at least one for every instruction set.

Yes, absolutely put it on there even if you write web applications in a high level scripty language.

Maybe where I work is the exception not the rule (the networking business, and chip/processor business) but a fair amount of our programmers know and write assembly, and even if you were looking for a linux porting or device driver job we would see the assembly experience, ask you questions about it and make decisions based on your answers.

Like anything else on your CV that doesnt relate to the job you are applying for they will just skip over it. this is not a "less is more" kind of thing. If you really know something put it down, languages, processors, protocols, apis, etc. If you leave things out and expect the interviewer to read your mind or be forced to guess at what questions to ask to try to draw this stuff out, it is to your disadvantage. I would rather have a multi page CV/resume to look at when interviewing a candidate than someone who tried to cram what they could on one page and left out the "meat". Often a resume like that doesnt make it through the pre-screening process. HR often scans the resumes for key words, enough key words and you rise to the top of the pile, not enough or none and you get discarded without even a phone interview. Instead of less is more, more is more. At the same time if you dont really know the language, or took a class in it in college and it was so long ago you really dont remember any details, leave it off, getting to the interview with answers like that encourages your resume/CV to make its way quickly to the shredder.

Yes list it as a programming language, that is what it is and specify the processor (family).

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

Some folks will list the assembler not the language TASM, NASM, MASM.

Not the answer you're looking for? Browse other questions tagged or ask your own question.