Should Beginners Start Learning Assembly Language?

Should Beginners Start Learning Assembly Language?

Organizer | Zheng LiyuanProduced by | Programmer’s Life (ID: coder_life)

Should Beginners Start Learning Assembly Language?

According to the “2021-2022 China Developer Survey Report”,the historically significant Assembly language is the most disliked programming language among programmers (37%), followed by C++ (17%) and C (16%).

As a machine-oriented programming language, Assembly language is indeed very detailed, but it is not very friendly to programmers—it is hard to memorize, and there is no concept of pointers; all variables and functions are replaced by offset addresses on the stack or heap. Compared to high-level programming languages, Assembly clearly has shortcomings in readability, development efficiency, and portability.

So, we naturally think:In 2022, with so many high-level programming languages available, will anyone still suggest Assembly as the first programming language for beginners?

Some do. Recently, a Reddit user (hereafter referred to as “Little R”) posted:My uncle, a former programmer, suggested I start with Assembly language…

Should Beginners Start Learning Assembly Language?

Reason for the suggestion: You should tackle the hardest “nail” first

Little R expressed that they recently developed an interest in learning programming, so they asked their uncle, who used to be a programmer, for some beginner’s advice, and their uncle immediately said: “You must stay away from those simple high-level programming languages like Python or Ruby.”

The uncle explained to Little R that when he first learned basic coding, he thought he was a genius because he mastered the new skill well within a few days. It wasn’t until he encountered C language that his self-perception was completely overturned—he was “severely” challenged for a while, and the foundational skills he had previously learned were completely useless when studying C.

Simple programming languages clearly won’t teach you anything about how programming and computers actually work. You are still young, with a ‘sponge brain’ that can absorb a lot of knowledge, and there are many internet guides to refer to. You should tackle the hardest ‘nail’ first, starting with Assembly or C as your first language, so that you can learn anything easily afterward.”

Should Beginners Start Learning Assembly Language?

(Image downloaded from Vision China)

There’s no need to avoid high-level programming languages

Clearly, Little R’s uncle’s statements contradict the choices of most programmers in reality, and Little R thus confusedly posed the question to the broader internet community: “What do you all think about this?”

Some netizens believe that such an opinion likely comes from an older programmer:

  • “He tells you to do something he himself hasn’t tried, and this viewpoint seems to come from 30-40 years ago.”

  • “Your uncle is too old-fashioned. If he graduated before 1980, it’s understandable, as Assembly was quite common back then. But after 1990, there were gradually more options available.”

Some netizens jokingly remarked that this learning method is too “back-to-basics”:

  • “This feels like saying that before you drive a car, you should first know how every part works.”

  • “If that’s the case, then learn semiconductor physics first, then transistors, then CMOS logic, then logic gates, then digital circuits, and finally computer architecture. That would better showcase your uncle’s ‘greatness’.”

That said, every programming language that has persisted to this day must have its significance, and Assembly is no exception. It still has a presence in many operating systems. The Assembly language, which many programmers dislike, is more suitable for low-level hardware, like microcontrollers, industrial control, and real-time control; it is more streamlined and has higher operational efficiency.

Two years ago, a programmer who had learned Assembly shared:

“I also learned Assembly; writing a program requires many commands, and the thought process must be clear, which demands a very high intelligence from programmers. In my previous workplace, there were a few programmers who graduated in the 1980s, and their intelligence was indeed very high. Today’s programming is really simplified; even those who have never learned programming can quickly self-learn within a short period.”

To be fair, mastering Assembly can indeed lead to a deeper understanding of the underlying principles of computers, but that doesn’t mean one should completely avoid high-level programming languages— nowadays, the development efficiency and applicability of high-level programming languages far exceed those of Assembly, aligning more with the efficiency sought by modern enterprises.

Finally, quoting a netizen’s suggestion: “If you want to become a compiler developer or a hardware engineer, you can study Assembly well; but if you are only engaged in software development, you can at most understand a bit about Assembly according to your own abilities.”

So, as a programmer, what was the first programming language you encountered and learned?

Reference link: https://www.reddit.com/r/learnprogramming/comments/wedgo2/my_uncle_a_former_programmer_has_recommended_that/

END

Official site: www.linuxprobe.com

Linux Command Directory: www.linuxcool.com

Should Beginners Start Learning Assembly Language?

Teacher Liu Chuan QQ: 5604241

Linux Technology QQ Group: 3762708

(New group, actively adding members…)

Readers who want to learn the Linux system can click the “Read the Original” button to learn about the book “This is How Linux Should Be Learned”, which is also very suitable for professional operation and maintenance personnel to read, becoming a high-value toolbook to assist your work!

Leave a Comment