7
dmonkey
1y

I need an opinion.

I want to learn something new. I consider myself a non-stupid person, and I am quite embarassed by the fact that the only tool I know well is Js+friends.

My options are:
- Java because money
- C/C++ because smartass
- Rust because yes
- some new shiny obscure shit like nim/zig/hare because lol

Currebtly I need money tbh. Java would seem a reasonable option, yet I'm scared by its huge ecosystem and I'm afraid that it would seriously take too long (like MANY years) to be confident enough to get a job.

Also, despite the common memes and crap, I fucking like Java.

Comments
  • 2
    Do Java?
  • 2
    Java is slow imho
    I don't know why people support it
    I say this using an Android phone twice as powerful as my earlier ones that runs slow as fuck most days

    A smattering of c/c++ is good.
    It lets you read oss and almost everything of value in one way or another is written in it

    So it's good to understand the build system for it that matters which is Unix like and to be able to read and modify the code with a reference

    But do you want this for what purpose? Contribution to existing projects? Rock on.

    I still don't see the point of rust
    I don't feel at looking over it that it's something you should learn at this point unless it's to contribute to it.

    They say it's being used in the kernel I ask for what ? A module ?

    Python is useful for small tasks
    For a better she'll scripting language imho and it's codebase is mature it's libs are many and mature better to learn that then rust
  • 3
    I wouldn't clutter your mind with the new shiny things yet
    The new shiny things may yet be abandoned
    Like I have no idea how node is surviving
    If it wasn't for electron I'd think it'd be abandoned I really feel it's a horrible tool
    The new shiny things like gremlin mongodb ruby etc tend to be shit
  • 5
    C c++ and a bit of asm will round you nicely for systems programming
  • 4
    Use the right tool for the job. Money is not a problem to solve with a language unless you sell a language.
    The best engineers i work with at least know 4 languages and are experts in two.
    Writing idiomatic code is something that will take time as does the getting familiar with ecosystem and toolchain.

    My advice is to look for a job that you would like to do and than learn the languages that suit that enough so you can land an interview. Rest you get to learn on the job.
  • 7
    Nobody wants to learn C++. A lot of software is still written in C++. Could be profitable.
  • 1
    Rust.

    But i heared, Kotlin is supposed to be a nice replacement for Java and can use libs written in Java - so if you want memory management to be fully automated, could try Kotlin first...
  • 2
    One of the commonly overlooked benefits of knowing c/++ is you are no longer bound to hosted development.

    You can easily hop to asm and start developing embedded systems for actual products like treadmills, children's toys, electrical gadgets, security systems, etc.

    If we were not in the middle of Gilligan's Island COVID detour I would love to switch careers and go into embedded solutions.
  • 0
    If you're into JS. Just go with node.
    Node + ts + nest.js = profit
  • 3
    counterintuitively, those who learn new things not because they want to plan their careers but because they want to make the most. I loved CSS, I learned the hell out of it. Right now I love Lisp, so I learn Lisp. I'm a CTO.
  • 1
    Learn whatever interests you, and don’t neccessarily limit yourself to one thing. If you’re strategic, you’d learn complementary things, and think not in the terms of a language per se, but ”how does learning X help my thinking / help me become a better and more well-rounded professional”. For example, maybe learn Java for OOP and the ecosystem, compliment it with Haskell for FP thinking, and slap on something else besides when you have bandwith for it. Or whatever floats your boat.
  • 0
    @john-doe in my country almost no company seeks node devs unfortunately.
    If that was the case I would just stick with it.
  • 0
    @Demolishun yeah but it's too cluttered. Stdlib has become hell somehow...
  • 0
    @hjk101 yeah but learning the most demanded langage in corps might be a good idea.

    Like my linkedin is cluttered by java job offers
  • 0
    @AvatarOfKaine rust because rust.

    And come on, java is not that slow. All the 90s IT business was built with java. It works, it does it well, and it's profitable.

    Your point on C is good. I actually know the system itself, I should just wrap my head around the different buold systems.

    I like zig. Yet shiny new things as you said are not used nor profitable. Maybe next year.
  • 0
    @100110111 I have too many crap to handle. I'm sure I won't be able to learn two langs at the same time. Yet, thanks for your advice
  • 0
    @dmonkey Java is easy to learn. You should find yourself with bandwith for the next challenge soon enough
  • 1
  • 0
    @AvatarOfKaine not sure how is Java slow. It had some problems with garbage collection in the past, but now it's still the one of the best options for performance-tight architectures in web services for examples. Still performs better than go, php, or nodejs in this regard.

    Also Android is a bloated OS on crack, some people thought it's a great idea to have ten thousand useless services (ads, some app notification you can't turn off, etc.) running in the background of constrained hardware. It's not java's fault (you could also blame the react native fuckery nowadays)
  • 1
    @100110111 replace rust with this rant

    Also since yesterday I have a slight suspect that I might loose my current job this summer. And rust won't help
  • 0
    @dmonkey aren't there job offers in your eventual searching area that could help you choose?
  • 0
    @dmonkey that’s an alien concept. Rust doesn’t help?
  • 0
    @100110111 Wait, what is an alien concept?

    And no, Rust doesn't help unfortunately
  • 0
    @dmonkey that Rust doesn’t help.
  • 2
    @dmonkey

    I would possibly look less at candidates.

    There are lot, mostly opinionated, choices.

    If you're from JS and only have experience in JS, then most of the language choices you present *MIGHT* require some hard rewiring in your brain.

    I say might as I know JS devs who have a good understanding of programming, programming concepts, algorithms. They could program in other languages if they learn the basics, not easy, but 3 months give or take and they can fulfill their role as basic dev.

    Then I know JS devs ... Who are ... Unwilling... To look at anything remotely looking non JS, theoretical background, algorithms etc. (I call them Jombies, aka Zombies who focus on JavaScript). If you belong to that category, don't bother. Might sound harsh, but its better for anyone else.

    Javas ecosystem is huge, yes. But Java is basically OOP on steroids. If you have good knowledge of OOP and algorithms, smart choice if you need money and can get a job - if you *love* OOP. If you don't love OOP, I'd disrecommend Java - because without love for OOP (in good and worse times eh implementation) Java will become unbearable for you.

    You said you like it - I'd recommend especially looking then at JDK 17… Records / Reactor / Stream|Flow|Source / CompletableFuture . If you can make sense of that, you're good to go, don't doubt yourself.

    C and C++ are two different beasts. Both require in my opinion - depending on how deep you go - an interest / focus on system architecture / hardware architecture. Without it, you can program without a doubt, but only up to an intermediate level. Stuff like optimization, packing, event handling, threads etc. require a certain depth of knowledge.

    Java is easier in that it hides a lot of it behind closed curtains.

    Rust... As most said, it's the new hype.

    But - it requires imho diligence. You have to keep an eye on the changing and growing ecosystem, be up to date and adapt to latest changes. Rust is still growing and changing.
  • 2
    Nim / Zig / Hare...

    I would see them as "side jobs".

    Good languages, but if you require money, I think not the smartest choice.
  • 1
    @IntrusionCM thanks for your answer.

    I think I made my mind.
  • 2
    @dmonkey np.

    Good luck on your endeavors, godspeed.
  • 1
    @dmonkey out of curiosity, why hare as an option? I read through the current language documentation and couldn’t think of what it has to offer as a new programming language, aka. why bother with it?
  • 0
    Onlyfans bussy
  • 1
    @100110111 it's just yet another modern compiled language. I like the syntax. Didn't put much effort in choosing the "new shiny obscure" list
  • 2
    https://harelang.org/blog/...

    The blog entry should clean it up
Add Comment