Low level vs high level programming languages

Hello everyone at Tek Syndicate and forum,

With the advancement in technology and programming languages, is there still a benefit or even necessary to learn low level languages (machine code/assembly) vs the higher level languages (C/C++, Java, Python)? Is there any advantage to programming in say assembly vs C++? I have learned a couple of the high level languages, but I want to know if it would be advantageous to learn a low level language.

Thanks and keep up the great content!

- EWS

Oh yes. I still see many of the lower level and/or older languages every day at work. I'm not going to preach and say that everyone should know assembly, that would take too much work. It all depends on what you want to do. How do you think they can go from Java 1.6 to Java 1.7. These languages have to be developed at the machine level so the higher level run time interpreted languages know what to tell the hardware to do.

That being said; if you only plan on doing web programing or game programing, then there is no need. But if you plan on doing any hardcore scientific calculations, you will probably run into things like Fortran 77 still in the wild (as I do to this day). If you want to change anything, you have to know what it's doing with the hardware... And with the pace of hardware architecture, I still see a need for things such as assembly and other compiled languages.

Plus, if you know things such as Fortran or Cobol, you can make a boat load of money in the real world.

... But that's just my opinion... man.

That's true. I forgot that compilers need to be written in Assembly or Machine Language to be correctly interpreted and communicate with the hardware. What type of Assembler languages do you typically run into or see people using? I know x86 is a fairly big one today, but i still see people shunning away from learning it, and one of the old assembler languages, 6502, is very much dead, though many people say that one is fun to learn.

Understanding how the low level languages work is a good thing to know, regardless of what language you use.  If you know how these languages work then you'll understand computers better, which will help you write better programs.

As far as career options, many companies are using higher level languages now since development is faster with them, but there will *always* be a need for low level languages, and for archaic languages like COBOL.  You'd probably be able to find something good whichever route you take.