manhobby wrote:
I am so curios in this topic because I like the subject and I've heard that assembly code is extremely expensive, if it's true that assembly code is extremely expensive, I'll try to make lots of money programming in assembly.
Most likely they meant that it was time consuming to do and therefore it costed more development and maintenance hours for which the company has to pay. That is why it is avoided in general. It costs too much.
manhobby wrote:
Currently the experienceds Assembly programmers are paid especially well compared to the high level programmers?
Let's consult an arbitrary UK
job index. UK is not my country of residence, in case you are wondering, so I cannot attest for the data, not to mention that it may not translate to your area's job market. This is from a google query for "job distribution assembler programming" - third item in my case.
The highlights are - roughly 15 in 10,000 programming jobs indicate desire for assembler competence from the applicant, 2/3rds of which also indicate they additionally expect a C and/or C++ competence (scroll towards the middle). In other words, at most 5 in 10000 programming jobs are pure assembler development, at a very optimistic best. But most likely less than that. You can check the "Assembly Language Vacancies" and the 1st job - "Test Technician" - involves electronic wiring and mounting skills. Also, it actually involves mostly interpretational, not coding assembler skills. A lot of the other jobs have embedded C/C++ as their primary or secondary requirements. That is, coding in assembler is rarely the sole or primary activity for the job title.
The median and 90th percentile (highest paying) salaries are slightly below the industry average. The long term trend for the number of jobs is consistently decreasing (see the plot they offer on that page), while the same trend for the salaries in the job offers is increasing. This includes all jobs that have assembler language skill as one of their requirements. The site does not seem to have exclusivity filter or statistics (, probably because they think it is pointless, for any kind of competence, not just assembler.)
manhobby wrote:
Currently the novices Assembly programmers are paid especially well compared to the high level programmers?
Assembler code produced by a novice programmer is more expensive to make (requires more time and troubleshooting) than C/C++ code (especially C) produced by a novice. It also has lower performance in most cases, since a novice programmer would not take into account all architecture specifics, such as alignment, cache effects, pipeline effects, etc. And without taking into account
all architecture specifics (which is difficult even for experienced programmers), they will botch the job. Thus, unless the company has money to burn on HR strategies and offers an internship of sorts, it is unlikely that anyone would hire such a person to turn a profit.
manhobby wrote:
Brendan, the Schol-R-LEA said that "amore reputable company might have what would be essentially an assistant or apprentice position training under a master assembly programmer, to try and train the newbie up for when the master retires, but it would be very rare to find something like that, and would earn trainee salaries for at least a few years".
Probably, the hint was that a person already working for a company in a different position (say, embedded C) and has demonstrated some affinity to the hardware architecture concepts for the target platform, may be transferred in the nuts-and-bolts development department of the company (, where they do
some/more assembler development), under the tutelage of a senior. A just-graduated developer is extremely unlikely to get a "junior assembler developer" job. (Consult the source above.)
manhobby wrote:
Currently the experienceds machine code programmers are paid especially well compared to the high level programmers?
manhobby wrote:
Currently the novices machine code programmers are paid especially well compared to the high level programmers?
If you consult the job index I quoted, you will find that they do not feature such category at all. That is because assembler and machine code are for the most part, the same competence. This is like saying that being a novel author using word and being a novel author using notepad are different occupations. The requirement in both cases is that you understand the target architecture and the performance variables in its operation. The actual language skills and tools are simplistic when compared to higher-level languages, where they actually matter. And second, this relates to another point that was already made - there is no such thing as assembler programming competence in general. It is very platform specific. We are not talking at the instruction level, but the hardware architecture level, which changes from chip generation to the next.
manhobby wrote:
If not, why?
Imagine you were a manager or company director. Why would you commission assembler development positions in your company? Why would you do so in preference to C/C++ ones? Especially, since many C/C++ developers can program some assembler if required. My point is, how much differential advantage will the exclusive specialist offer to the company, or value to the customer, and how much monetization will result from it, in order to justify the salary of that person, compared to a more versatile employee?