1,373 karma · joined October 29, 2014
Running https://devscoach.com sam@devscoach.com
Cant say I would call these specs “hobby” at all
loop() { NUM=$1 shift for i in {1..$NUM}; do "$@" done }
EVERYTHING HAS TRADEOFFS. Every single thing has tradeoffs. Obviously you should not write terrible, brittle code. The reason DRY is important is because when you start duplicating code, having 30 different serialization methods littered throughout your code, 5 different ways of calculating the same value, etc etc you see why it really matters. Its a GUIDELINE used to as a general rule. And as guidelines and general rules go -- its useful for juniors and people who don't have the experience to see the best way to write the code.
Its a good default, and like YAGNI, and 100 other programmer acronyms it has its ups and downs. Your pizza example is not "coincidental repetition" -- it is actual repetition -- you just abstracted it in a really poor way to make a strawman.
But if its a negative experience or something where you are trying to actual support someone or relate to them in a time of trouble, then empathizing by expressing a similar experience is actually helpful. In the depths of grief it is nice to be able to relate to something, because in those times it can feel very very lonely.
Anyway, I am not saying the author is wrong. I think it's important to know the difference, but I am wary of the advice saying to never share your similar experiences in conversation.
The number 1 thing I hate about IDEs and will always hate about IDEs is that you open a "workspace" you cannot access all of your files at once. So often I am working with multiple git repos or various things scattered around my computer. In emacs I can simply open the file and have all the syntax highlighting, linting, etc just work. Instead of waiting for 10s for a whole new IDE workspace to open. And then not even have the ability to switch between them easily.
Anyway, I don't think I am Luddite and I try to love modern IDEs and editors because everyone says how much more productive they are in them. I honestly have to think that editors are not whats holding back software development, and seems disingenuous to say shying away from them is somehow negative.
It seems obvious from the start this is never going to go anywhere. You already are using 4 languages at this company (PHP, Go, Python, JS/TS) ? Adding another is essentially a waste of time and a huge distraction away from the core function of a engineer which is delivering value to the customer.
You are not going to be hired as new grads to be writing proofs using turing machines. You are going to be thrown into the grinder of (most likely) web application development & software engineering (which you may have taken a class on, but is nothing like the actual experience). Working as a professional software engineer requires so many things not taught in school that the only way to learn this stuff is through experience.
I am not trying to sound like a old bastard but you are over-valuing your hand. Competitive programming, FAANG internships, are all great but its not the same as actually having a job. The hiring shortage is mainly senior engineers and if you were offering an app for senior engineers to find a job together I could see that really paying off, but for new grads I don't see the employers going for it.
Again, obviously this person should be behind bars, but this method of manufacturing scenarios seems somewhat insane to me. Maybe I am misinterpreting the release but thats the way it seems.
Is the workflow: Build app in rust, compile it down to WASM, and then run it on a server with wasmtime? I think I am missing some step.
Also since this is a beta product, I am doubting that you would hit too many problems with any deployment solution at this point. Why are you using Aurora + serverless + event bridge at all? Its magical because you are all using the same dependencies as prod, but why are you using these dependencies at all? All you need is a single postgres database (easily spun up on any developer machine) + crud app (easily able to use full stack typescript with nextjs or the like).
Word of caution about having this many moving parts, they will bite you in the ass. Now it seems all rainbows and magic but there is a reason people on this website preach simplicity -- because when shit hits the fan the simple solutions are easy to debug and fix without spending 1000s of dev hours. The complicated magic solutions are the ones that cause 24+hr downtimes and need to be re-architected. You are a customer service tool, not a devops company, the choices here don't make too much sense.
i guess stack overflow has a similar problem but at least there people provide documentation, explanation, and helpful links. this just force feeds you some code. i dont see this as a positive movement for our industry as a whole