• 0 Posts
  • 42 Comments
Joined 2 years ago
cake
Cake day: July 3rd, 2023

help-circle
    1. Supposedly there’s a way to install nix without root access, but I can’t speak to it as I’ve never tried. Ofc it doesn’t require sudo to install packages or anything, though.
    2. I don’t think it does this right now, largely because it’s super fucking complicated (as is basically everything Apple) and homebrew casks themselves have had a ton of headaches around it. But nevertheless, I think home-manager has some workarounds it uses itself to enable many common GUI apps on MacOS.
    3. Not sure exactly what you mean, but I think it does that?

    If you want to install packages purely by name, you can use nix-env -i hello or whatever. But it’s pretty janky and not really a recommended way of doing things.




  • Not sure if serious or not, but yeah I use interactive rebases every day, many times a day (it’s nice for keeping a clean, logical history of atomic changes).

    It’s very simple to recover if you accidentally do something you don’t intend (git rebase --abort if the rebase is still active, git reflog to find the commit before the rebase if it’s finished).




  • Unless you’re writing Scala or something (which is probably the one exception to the rule), if you are using a language that supports OOP, you’re not really doing functional programming. Functional-esque features that have made their way into imperative languages like map are only a tiny fraction of the functional toolbox.

    There’s a bunch of features you want in a language to do functional programming, and imperative languages don’t really have them, like purity by default (and consequently, an orientation towards values rather than references) ergonomic function composition, algebraic data types, pattern matching, support for treating everything as first class expressions/values, etc.

    Perhaps this is presumptious (and I apologize in advance if so), but I’d wager you haven’t truly programmed in the functional paradigm. What imperative programmers tend to think of functional programming is very surface-level and not really reflective of what it actually is. It’s an entirely different beast from imperative programming. It requires a shift of your mindset and how you think about programs as a whole.

    Source: Senior software engineer writing Haskell full time for the last 4 years. Will avoid OOP until my dying breath.





  • expr@programming.devtoProgrammer Humor@lemmy.mlWhat the F#
    link
    fedilink
    arrow-up
    4
    arrow-down
    1
    ·
    2 months ago

    For Haskell:

    1. I’d say this is definitely a wtf. Tuples should have never been given Foldable instances and I’d immediately reject any code that uses it in code review.

    2. I actually didn’t know, so TIL. Not surprising since common wisdom is that a lot of the type class instances for Doubles are pretty weird/don’t make a lot of sense. Just like in any language, floating point needs special care.

    3. This is jjust expected syntax and not really a wtf at all. It’s very common for languages to require whitespace around operators.

    4. Agreed as wtf, the NegativeLiterals should be on by default. Just would be a pretty significant breaking change, unfortunately

    5. Not a wtf… What would you expect to happen? That operation is not well-defined in any language



  • The system has a lot of problems for sure, but IME as a senior software engineer, people without degrees are often lacking in core CS skills and are much less comfortable with the more conceptual aspects of the field like graph theory, systems design, DSLs, etc. Usually database skills aren’t quite as strong either due to not having studied relational algebra and other database concepts.

    None of this is to say that someone without a degree can’t be a valuable part of the team, but at the higher levels of seniority, you do want people who have really strong foundations so you can ensure that you actually are building strong foundations. A degree doesn’t guarantee these qualities, but it certainly makes a person much more likely to have them. Not saying someone without a degree can’t possibly achieve this on their own, but it’s quite rare and requires much more self study than most actually do.


  • First off, videos on tiktok aren’t really worth taking seriously. There’s just too much fake garbage on there.

    But anyway, the cost of education is absolutely a huge problem. It should be free or very low cost.

    That being said, it’s simply demonstrably false to claim that a degree is useless or doesn’t help you get a job. There are many fields where a degree is an absolutely a requirement, like medicine, law, engineering, etc. The specific degree does matter a lot, though, and there are other important job hunting skills that you need to develop in order to actually get a job.

    Speaking from personal experience, every job I’ve had thus far (as a software engineer) has listed a 4 year degree as either a hard requirement or strongly preferred. I do not believe recruiters would have given me the time of day were it not for my degree, because they are looking to match as many requirements as possible and are filtering people out. And when applying for jobs, ATS programs routinely filter out job applications with resumes that don’t list a degree.

    Job seeking is an extremely gameified system and you have to learn the game in order to beat it. It sucks big time and I loathe doing it, but it’s what you have to do if you want to get high-paying jobs. That, or know someone at a company that can get you a job.





  • expr@programming.devtoProgrammer Humor@lemmy.mlI love Rust
    link
    fedilink
    arrow-up
    9
    arrow-down
    1
    ·
    4 months ago

    Don’t need the Ord instance for equality, just Eq is sufficient. Ord is for inequalities.

    The point of the post is that most mainstream languages don’t provide a way to automatically derive point-wise equality by value, even though it’s pervasively used everywhere. They instead need IDEs to generate the boilerplate rather than the compiler handling it.