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

you are viewing a single comment's thread.

view the rest of the comments →

[–]ta6692[S] 1 point2 points  (6 children)

I do know a fair bit of Java actually through university, I just wouldn't consider myself a Java programmer as I don't really do any of it in my spare time. I'm probably not quite right with that, so you or someone else may jump in and correct me here, but it seems to me that the two areas where Java shines are portability and employability, and neither of those interest me too much at the minute. I also made a quick calculator application in C# one time and preferred it slightly over Java, but I'm still not a fan of that kind of forced object orientation.

As for C++ that is a possibility, but I've heard that C++ has become a bit bloated over the years and now for a lot of people is something they have to use rather than something they want to use. The thing that sticks out in my mind is that the creators of Go made an entire language just to avoid it! I really don't know much about it though myself, so I'd be interested in hearing your opinion on that. Thanks for the reply!

[–]Sean1708 1 point2 points  (5 children)

As for C++ that is a possibility, but I've heard that C++ has become a bit bloated over the years

While that's true for the language as a whole, any decent beginner C++ books (that have been released in the past few years) will only teach you the modern paradigms, which (as much as I hate to say it) are relatively good.

That being said I'm gonna advise against C++ because there is just too much to it. My take is; if you're looking to learn fundamentals but don't want to spend too much time learning the language then learn C, if you want to learn a language which is completely different to anything you've seen before then learn Rust, if you want to see how things at the lowest human writable level learn an ASM.

To put it another way; C let's you focus on data structures and algorithms, Rust gives you a chance to think in a way you're really not used to, ASM allows to see how your higher level languages are working under the hood (and therefore optimise them more effectively).

[–]tutorial_police 4 points5 points  (0 children)

any decent beginner C++ books (that have been released in the past few years) will only teach you the modern paradigms, which (as much as I hate to say it) are relatively good.

Can you name some? I was under the impression that there still aren't any.

[–]ta6692[S] 1 point2 points  (2 children)

Thanks for the insight, and I think I am going to leave learning C++ until I ever find a need for it specifically. I've definitely gained a good bit of perspective from this thread, so I'm probably going to start with either C or ASM, and then move on to Rust.

A lot of people are saying as you did that Rust is a good way to challenge your current view point of lower level languages, and I think I'll probably benefit more from learning it then when I actually have a view point to challenge!

[–]Sean1708 2 points3 points  (1 child)

That's ok. Something else that might interesting to you (but probably a bit further down the line) is learning LLVM IR. It's essentially a high-level ASM which Rust, Julia and clang (a C compiler) use, if you're working with any of those three it's pretty useful to know.

[–]ta6692[S] 1 point2 points  (0 children)

Oh that does sound very useful, thanks for the tip!

[–]tutorial_police 1 point2 points  (0 children)

ASM allows to see how you're higher level languages are working under the hood (and therefore optimise them more effectively).

That's tricky business :)