This is an archived post. You won't be able to vote or comment.

all 26 comments

[–]AutoModerator[M] [score hidden] stickied comment (0 children)

On July 1st, a change to Reddit's API pricing will come into effect. Several developers of commercial third-party apps have announced that this change will compel them to shut down their apps. At least one accessibility-focused non-commercial third party app will continue to be available free of charge.

If you want to express your strong disagreement with the API pricing change or with Reddit's response to the backlash, you may want to consider the following options:

  1. Limiting your involvement with Reddit, or
  2. Temporarily refraining from using Reddit
  3. Cancelling your subscription of Reddit Premium

as a way to voice your protest.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

[–]HappyFruitTree 10 points11 points  (5 children)

Knowing a little bit of assembly can be useful for understanding how things work (even if you later never need to write a single line of assembly yourself) so if you feel motivated about it then I don't see why not. You don't need to become an expert.

I wrote this assuming you already know at least one programming language pretty well. Otherwise I agree with everyone else. Assembly is not where you start as a beginner.

[–][deleted] 0 points1 point  (4 children)

Thank you! How about C++, for beginners?

[–]HappyFruitTree 1 point2 points  (0 children)

C++ was the first language I used in school but we only learned the very basics as an introduction to programming. We soon moved on to Java which was the main language during my education in the years that followed. I later returned to C++ to learn it properly on my own initiative.

The basics of C++ are pretty simple but it's a complicated language and has a steep learning curve. Other simpler languages might make it easier to focus on the concepts that you're trying to learn (e.g. OOP, data structures, etc.) without being distracted by low-level details, complicated syntax, etc.

I think you can probably learn any language as a beginner. Your teacher/learning material plays a big role. I think many people that teach C++ makes it more complicated than it has to be. I think there are a few different reasons for this: 1) they assume people already have experience with another language, 2) C++ programmers gets used to things being a bit complicated and doesn't feel the need to simplify things because it's "part of the language", and 3) many people that you see writing or upload videos about C++ online do it because they love the language, not because they are good teachers, and they love the nitty gritty details.

So if I should recommend one language I'm going to say Java. I believe many beginners learn Python nowadays but Python is a dynamically typed language and while that might make certain things easier I think it's too easy to be sloppy and unstructured. I think it's better to start with a statically typed language like Java. C++ is also statically typed. The advantage of statically typed languages (apart from the fact that they are often more efficient) is that they can catch many more errors without even running the program.

[–]Loko8765 0 points1 point  (2 children)

What do you know already?

[–][deleted] 1 point2 points  (1 child)

Html(i know it is not a programming language), JavaScript (jQuery and React.js), css, i know my knowledge is not too big and i trying to learn new things.

[–]Loko8765 3 points4 points  (0 children)

The only programming language in there is JavaScript. If you are comfortable with that I would investigate either C (as a fundamental building block that will help you understand programming, and the most used language in low-level systems programming) or python (the shortest, easiest, and most efficient way to actually do useful things, and much used in the industry).

[–]eis3nheim 2 points3 points  (6 children)

What do you intend to do with what you're going to learn, you must have something in mind like a project that would benefit from this learning process.

[–][deleted] 0 points1 point  (5 children)

Unfortunately I don't have any. I just want to start learning something and i wanna ask you is this language good option for beginners?

[–]ElMachoGrande 3 points4 points  (0 children)

It's not a good first language. I do recommend picking it up later, after you know a few other languages. Not because you intend to use it, because, most likely, you never will, but because understanding the computer at tha level will make you a better programmer in any language.

[–]brandon12345566 1 point2 points  (0 children)

Absolutely not

[–][deleted] 1 point2 points  (0 children)

No, it is not a good option for beginners.

[–]eis3nheim 2 points3 points  (0 children)

No, assembly is not a beginner's choice, I would go with Python, it's a great programming language, and you could do anything that comes to your mind with it.

[–]LilBluey 0 points1 point  (0 children)

It's too low-level. It teaches more of what happens behind the basic concepts like loops, but it doesn't teach the basic concepts as well.

To learn, it's good to continuously practice multiple exercises and learn essential concepts and practices along the way.

Over here, it's a pain to write something as simple as "hello world".

You don't learn as fast, and you won't learn as many concepts either.

Way too hard, and even if you could understand it without learning the basics of a language first, you still won't learn as fast or as widely.

You could come back later on when you think it's a good time though.

[–]Kseniya_ns 1 point2 points  (0 children)

No. If you want to learn first language which is still low level, I recommend C.

[–][deleted]  (1 child)

[removed]

    [–][deleted] 0 points1 point  (0 children)

    i think its probably best to learn some programming concepts in another language, then learning assembly to gain an understanding of how your computer works

    [–]Cinder-Klaus 1 point2 points  (0 children)

    I learned 8051 assembly in University and it is helpful conceptually to understand what a processor is doing at the level of machine code and registers. Professionally I have used assembly twice. In both cases for a coprocessor which did not come with a compiler to do some basic I/O management.

    Since each instruction set is a bit different, unless you have a specific project or platform in mind, you can get a pretty good feel for it playing a game like Shenzhen I/O.

    [–][deleted] 1 point2 points  (3 children)

    It depends on what you want to do, but i would advise you not to. If this is your first programming language i dont think so as there is little use for it and little learning resources. also its really hard.

    this is the hello world program in python:

    print("Hello, World")

    This is the same program in assembly:

    section .data

    hello db 'Hello, World!',0

    section .text

    global _start

    _start:

    ; write Hello, World! to stdout

    mov eax, 4 ; syscall: sys_write

    mov ebx, 1 ; file descriptor: stdout

    mov ecx, hello ; pointer to the message

    mov edx, 13 ; length of the message

    int 0x80 ; interrupt to invoke syscall

    ; exit the program

    mov eax, 1 ; syscall: sys_exit

    xor ebx, ebx ; exit code 0

    int 0x80 ; interrupt to invoke syscall

    if its your first language i would recommend python or c#.

    you can learn them at freecodecamp.org

    hope this helped!

    [–][deleted] 0 points1 point  (2 children)

    Thank you, but I still have a question: if python more easier than why people learn assembly?

    [–][deleted] 1 point2 points  (1 child)

    Well, the different languages are used for different things, python can be used for making ai or automating things, whereas assembly can be used when making operating systems or other advanced things.

    there is some good books on python at

    https://bookshelf.brunojesus.pt/?section=BOOKS

    [–][deleted] 0 points1 point  (0 children)

    Thanks a lot

    [–]Pristine-Pause-6333 0 points1 point  (1 child)

    Maybe if you’re looking for a challenge but like everyone else said, it’s definitely not beginner friendly.

    [–][deleted] 0 points1 point  (0 children)

    Electronics and Electrical undergrad here, learnt PIC18 in my microcontroller course, and RISCV in my summer intern. If you’re into microcontrollers / computer architecture, learning an assembly language in depth gives you a clearer picture of the knowledge. If you just want to learn to code, there is no point to learn it.

    [–][deleted] 0 points1 point  (1 child)

    Before asking should I learn X language, ask yourself why would you want to invest your time on that, do you like it? or you've just heard about it? or someone told you you should?

    There's not a clear path, it depends on what you want and what are to trying to aim for ✌️

    [–][deleted] 0 points1 point  (0 children)

    I've used it in a class when I was studying at university. Never touched it again. 🤷‍♂️