Live data from Hacker News

The Stupid Programmer Manifesto

hasen.substack.com

21–30 of 239 posts

Re: The Stupid Programmer Manifesto

#21
post #3

I can't tell if this is an honest call to keep things simple, or if it's meant to ridicule that idea. Because I strongly, deeply agree with some of these points, and am absolutely horrified by some of the others.

Skeptical of the person who is "not smart enough to figure out docker", yet is smart enough to know about building a "web application into a self contained statically linked binary executable file". I think they are smart enough, they just don't want to, or don't see the value in it (even if they've made an uninformed decision)

Yeah, I'm not smart enough to figure out either. I'm smart enough to rely on the command line tools provided by the framework I'm using.

Re: The Stupid Programmer Manifesto

#23
> I’m not smart enough to figure out docker confiuration, so instead I compile my web application into a self contained statically linked binary executable file.

Good luck getting that to run in different environments because static or not, nearly every executable has dependencies.

> I’m not smart enough to figure out cloud services and auto scaling groups, so I just upload my static binary file using scp to a linux server I rent from a VPS provider.

Which of course you'll need to setup, patch, figure out how to restart apps when they go down and on and on. There's no easy out.

> I’m not smart enough to figure out how to setup all the databases and firewalls and load balancers, so I just embed the http server and data storage engine as libraries in my static binary.

And how do you back that up?

I get the gist of the article, but some things are not always replaceable with an easy alternative. Most alternatives also have disadvantages as well as their own learning curves.

Postgres, Docker, Infra as Code and Kubernetes are pretty much best practices on any development.

Don't kid yourself that the learning curve is not worth it.

Re: The Stupid Programmer Manifesto

#24
I’m stupid too. It’s hard to make sense of complexity when it’s senseless and doesn’t directly address a problem, instead being an inner abstraction. Every day there’s more things to learn in web development, and the scope of most engineering jobs is too large for most people to perform at a peak without burning out. I guess much more stupid is someone who doesn’t realize this and try to do everything and end up doing it badly. Of course you can spin up whatever layer in your stack, but maintaining and debugging it at large is a whole other problem. Usually people who prefer simplicity are the ones wise enough to see the big picture, software in its entire lifecycle. Being stupid has allowed me to deliver fast and secure software that I can explain to the next maintainer in a very short time, not to mention figuring out a problem just by its context in my head. There’s a whole set of principles that makes being a stupid programmer viable, such as Pareto and YAGNI, so much so that often people confuse you with a bright, productive programmer. It came to the point that I like being stupid, because by focusing on the bare minimum, software can be shipped really fast and with great quality overall.

Re: The Stupid Programmer Manifesto

#26
post #3

I can't tell if this is an honest call to keep things simple, or if it's meant to ridicule that idea. Because I strongly, deeply agree with some of these points, and am absolutely horrified by some of the others.

Yeah, I really can't tell if it's satire. Especially things like this:

> I’m not smart enough to figure out how to transform data between different layers of the system, so I just don’t. I use the same represetnation in the UI layer and the storage layer.

OK, well then you might need to gather a little more work experience and meet the repercussions of decisions like this one.

Or maybe the OP is a contractor and never has to deal with the repercussions of their actions.

Re: The Stupid Programmer Manifesto

#27

This post is the programmer equivalent of teenage girls posting photos of themselves captioned with "I'm so ugly" to farm praise from their friends. I have come to dislike this growing trend that celebrates mediocrity and failure. Posting proudly that you are stupid, terrible and incompetent seems to result in applause and high praise. Why? Why is that a good thing? I hope this was intended to be a parody.

It's a much needed coping mechanism, because the tech buzzword churn prescribed with an imperative tone is the equivalent of media setting unrealistic expectations for teenage girls.

You may be experienced, but a large part of people in our industry are just out of school and don't have the experience to sort through it.

Re: The Stupid Programmer Manifesto

#29
For someone who's "too stupid" to understand these techs, they certainly can explain them and their drawbacks and alternatives well.

This reminds me of a bit of advice from Austin Kleon that I've used frequently -- "Make bad art, too"[^1]:

> “Good” can be a stifling word, a word that makes you hesitate and stare at a blank page and second-guess yourself and throw stuff in the trash. What’s important is to get your hands moving and let the images come. Whether it’s good or bad is beside the point. Just make something.

This is a perspective I have to come back to, as an engineer building enterprise-scale things, when I'm working on small-scale projects. I don't need to use the same tools I use at work, I can pick "bad"[^2] architecture, I just need to build _something_.

[^1] https://austinkleon.com/2020/04/15/make-bad-art-too/ [^2] "Bad" in that I know precisely how and when and what would bite me in the ass when I try to scale it.

Re: The Stupid Programmer Manifesto

#30
post #2

How can you store program state on disk like that? You'd need serialization and deserialization. A DB might be easier.

> How can you store program state on disk like that? You'd need serialization and deserialization. You need serialization and deserialization when interacting with a DB, too. You're trusting a library to do most of that for you. This is the difference between a junior engineer and a senior engineer. As a junior engineer, you don't trust your own judgement and use a library. As a senior engineer, you don't trust the l…

> As a junior engineer, you don't trust your own judgement and use a library. As a senior engineer, you don't trust the library writer's judgement, so you write it yourself.

What? No. As a senior engineer you realize that loading data from a database is a solved problem, has nothing to do with the core use cases you're addressing, and would be a massive waste of time to build yourself.

Post reply on HN