Skip to content

Comment on jj init – getting serious about replacing Git with Jujutsuparent

Comments

In the article, it's pointing out that the go-to advice when someone's struggling with tech is often "you need to understand how it works." But honestly, having to know the ins and outs just to use something isn't really practical.

I mean, I personally geek out over the details, but let's be real: most folks, especially those not in software development, don't work like that. Even for us developers, you don't need to know the nitty-gritty of machine code to whip up some Python scripts. Sure, some of us love diving into that stuff, but it definitely shouldn't be a must.

Except these are _developers_, people who are, ostensibly, computer experts. Yes, computers are hard! And version control is a hard problem. I don't expect grandma to learn git, but nobody suggested otherwise. If we can't expect software developers to learn their basic tools, then I really don't know where we go from here.

Let's stop making excuses for mediocrity.

Do you expect that everyone who uses a database should know all the internals of the data structures stored on disk, journals, ram cache, etc. before they try to do basic SQL? That’s the comparison you’re making: anyone who can’t write a database engine from scratch is mediocre and therefore is lazy.

P.S. > “developers_, people who are, ostensibly, computer experts”

It’s laughable to me that people have this impression. It’s extremely rare to find a developer who has any knowledge at all on how to do basic computer things like installing an operating system, troubleshooting a network, understanding DNS, or being able to do anything outside of their programming environment.

Before they try to do basic SQL, no. If their job involves writing SQL every week? Yes, of course I expect them to learn how databases work rather than forever treating it as a black box.

(not OP)

Do you expect that everyone who uses a database should know all the internals of the data structures stored on disk, journals, ram cache, etc. before they try to do basic SQL?

Honestly? Yes. Knowing the basic data structures stored on disk helps you understand why having an index is important, and just creating tables and doing queries on them is going to lead to extremely slow queries. Understanding journals helps you understand transaction isolation levels, which helps you understand why you can’t just have N web workers all doing write queries at the same time and they don’t necessarily see each other’s writes right away if they haven’t committed a transaction. RAM cache helps you understand why journaling is important in the first place if the database crashes.

I absolutely do believe that anyone who calls themselves a professional should be armed with such understanding before they go writing SQL code in a production context. Playing with it as a toy in your spare time? Go nuts, learn in any order you want. But if you’re writing code for an app that we’re shipping to users and that your coworkers’ livelihood depends on, you should get the friggin’ basics down.

It’s laughable to me that people have this impression. It’s extremely rare to find a developer who has any knowledge at all on how to do basic computer things like installing an operating system, troubleshooting a network, understanding DNS, or being able to do anything outside of their programming environment.

I agree with you, but I would frame this as a lament. It really fucking sucks that my coworkers sometimes show now desire whatsoever to understand why their code doesn’t work on a machine with IPv6 enabled. Or don’t bother to care about why their ABI-breaking change caused missing symbol errors when downstream clients tried to run against the new build. You want my opinion? These people should leave the industry, and we’d be better off.

There’s a difference between a developer and an engineer. I think this thread shows that divide pretty well already. Web Developer? I don’t expect you to be an expert. Software Engineer? You better believe I expect it.

"But honestly, having to know the ins and outs just to use something isn't really practical."

This is why we have buffer overflows...

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.