• 0 Posts
  • 19 Comments
Joined 2 years ago
cake
Cake day: January 28th, 2023

help-circle




  • If you don’t already, use version control (git or otherwise) and try to write useful messages for yourself. 99% of the time, you won’t need them, but you’ll be thankful that 1% of the time. I’ve seen database engineers hack something together without version control and, honestly, they’d have looked far more professional if we could see recent changes when something goes wrong. It’s also great to be able to revert back to a known good state.

    Also, consider writing unit tests to prove your code does what you think it does. This is sometimes more useful for code you’ll use over and over, but you might find it helpful in complicated sections where your understanding isn’t great. Does the function output what it should or not? Start from some trivial cases and go from there.

    Lastly, what’s the nature of the code? As a developer, I have to live with my decisions for years (unless I switch jobs.) I need it to be maintainable and reusable. I also need to demonstrate this consideration to colleagues. That makes classes and modules extremely useful. If you’re frequently writing throwaway code for one-off analyses, those concepts might not be useful for you at all. I’d then focus more on correctness (tests) and efficiency. You might find your analyses can be performed far quicker if you have good knowledge about data structures and algorithms and apply them well. I’ve personally reworked code written by coworkers to be 10x more efficient with clever usage of data structures. It might be a better use of your time than learning abstractions we use for large, long-term applications.


  • catacomb@beehaw.orgtoMemes@lemmy.mlCurious
    link
    fedilink
    English
    arrow-up
    1
    ·
    10 months ago

    Good to know the name, I’ve seen it invoked a few times.

    In fact, I had this recently at work where I questioned a decision only for them to retort with one similar characteristic which a prior suggestion of mine shared. This was also a modal fallacy as they only used that one characteristic to come to a conclusion about both.

    You also see it all of the time in politics unfortunately, a lot of “yeah but you also…” where we should be hearing good justifications.






  • To be honest, I agree they should be able to be larger at times.

    I had a lot of disagreements when I was on a new codebase, knew what I was doing and I was able to push a lot of code out each day.

    The idea is to have them small, easily readable with a tight feedback loop. I argued that bootstrapping a project will have a lot of new code at once to lay the foundations and my communication with the team was enough feedback. If I split it up, each PR would have been an incomplete idea and would have garnered a bunch of unnecessary questions.

    That said, I think it’s generally pretty easy to put out multiple PRs in a day, keeping them small and specific. As you say, half of the job is reading code and it’s nicer to give my coworkers a set of PRs broken down into bite sized pieces.



  • Yeah, this is one of those things which sounds great on paper but also introduces problems. I’ve seen people get really annoyed when exception messages are translated because it makes them harder to search for online. That would need to be solved too.

    I’ve had huge issues collaborating on a spreadsheet with a Spanish client. It tries to open the sheet in your locale and then can’t find the functions. Insane that Microsoft didn’t even add some metadata to allow me to work on it in Spanish.



  • Exactly. I used PHP for years, I haven’t “not used it.” It was the first programming language I seriously learned. Writing good code was tedious if not impossible and that became even more obvious as I expanded to C#, Java, Python and C++; none of which tolerated any of the bad and unconventional practices I’d inevitably picked up. Keep in mind, I was actively trying to avoid bad practices and pay close attention to types but still got kicked to the curb hard when I tried other languages. I haven’t had that since.

    I appreciate it’s changed since, I’m happy to see it’s not the same dumpster fire it once was, I also don’t care. I don’t actively trash it, I just think there’s usually a better option.





  • I think it’s a maturity thing. You eventually see so many trends come and go, peaks and troughs of hype cycles and some developers (probably including yourself at least once!) overusing certain new tech.

    You eventually discover what works with current tech and then you can become healthily critical of anything new. You see it more for where it can fit and where it can’t.

    If you have something small and stateless then serverless is easy and, more importantly, scalable. It was a little easier to see its role once the hype fog had lifted and I had a problem to solve with it.