Source: Programmer’s Life (ID: coder_life)
Hello everyone, I am Tiger.
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 precise, but it is not very friendly to programmers—it is hard to remember, 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 lacks readability, development efficiency, and portability.
👉 Click to receive the Python interview question manualPython from beginner to advanced knowledge manualTherefore, we naturally feel: In 2022, surrounded by many high-level programming languages, is there still someone who considers assembly as the first programming language for beginners? Yes, recently a Reddit user (referred to as “Little R”) posted: “My uncle, a former programmer, suggested I start with assembly language…“
Reason for the suggestion: You should first tackle the hardest “nail”Little R expressed that they recently developed an interest in learning programming, so they asked their uncle, who used to be a programmer, for beginner advice. The 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 skills in just 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 mastered were completely useless in learning C language.“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 first tackle the hardest ‘nail’, using assembly or C as your first language, so that you can easily learn anything afterward.”No need to avoid high-level programming languagesClearly, the uncle’s remarks contradict the choices of most programmers in reality, and Little R was thus confused and posed the question to the vast number of netizens: “What do you think about this?”Some netizens believe that such a viewpoint from an “uncle” must come from an older programmer:
-
“He is telling you to do something he himself has never tried, and this viewpoint seems to come from 30-40 years ago.”
-
“Your uncle is too old-fashioned. If he graduated before 1980, it can be understood, as assembly was very common at that time. But after 1990, there were gradually more options available.”
Some netizens jokingly said that this learning method is too much about ‘going back to the source’:
-
“It feels like saying that before you drive a car, you must 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 then computer architecture, which would better showcase your uncle’s ‘greatness’.”
That said, every programming language that has survived to this day must have its significance, and assembly is no exception; it still has a presence in modern operating systems. The assembly language, which is disliked by many programmers, is more suitable for low-level hardware, such as microcontrollers, industrial control, and real-time control, as it is more streamlined and has higher operational efficiency.
Two years ago, a programmer who had learned assembly shared:
“I also learned assembly, and writing a program requires many commands, and the thought process must be clear, which demands a very high IQ from programmers. In my previous workplace, there were several programmers who graduated in the 1980s, and their IQs were indeed very high. Programming today is really dumbed down; even those who have never learned programming can quickly self-learn programming in a short time.”
To be fair, mastering assembly can indeed lead to a deeper understanding of the underlying principles of computers, but that does not mean one must avoid high-level programming languages—nowadays, the development efficiency and applicability of high-level programming languages far exceed that of assembly, aligning more with the efficiency that companies pursue today.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 just engaged in software development, you can at most have a basic understanding of 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/
Programmer Technical Exchange Group
As the number of readers increases, I, Tiger, have also created several technical exchange groups, where 90% is about technology and 10% is about snow and wind. Interested students are welcome to join us.
You can long-press to recognize the QR code below. Please pay attention: city + nickname + technical direction, according to the format, you can more quickly enter the group by selecting content.
▲ Long press to scan
Read more
-
Several lines of Python code to crack MySQL database
-
After 37 years, Windows 11 changes the system’s default terminal!
-
Using Python to implement a tool for pushing messages to WeChat — pushplus
Life is short, I use Python
【Mystery Gift Acquisition Method】
Recognize the QR code at the end of the article and reply: 1024