Tamo240

u/Tamo240@programming.dev
1 posts · 211 comments

Recent posts

Recent comments

I disagree. We're all accepting that the modern world exists primarily online, but instead of preparing our children for the online world, we build a walled garden with no access, until the age of 16 where they get unlimited, uninformed access.

The only solution to this problem is parents teaching and directing their children. The state cannot and should not be involved

on 50% · c/microblogmemes · 2 pts · 32d

I heard there is some football going on, not an expert tho

Like, you might have someone working on something in a new codebase but misunderstanding the architecture or just going in the wrong direction in general and a review is the best way to correct course before getting too far in

I think the article is suggesting this person should be pair programmed with until they understand the architecture and can be trusted to contribute correctly, and I actually kind of agree - it always feels terrible to tell someone a PR they've worked on possibly for days is completely the wrong direction, and arguably this is already 'too far in' if they're going to need to essentially start again.

Intervening earlier in the process should lead to less wasted effort overall, but people often seem to treat pair programming like its two people at 50% efficiency, when it actually saves a lot of cycle time on reviewing code.

I didn't say programming is unecessary, and I'm a proffesional software engineer with a degree in computer science. When I say 'learn to code' is over I mean the pressure for anyone and everyone to learn to code because there are so many well paying software engineer jobs.

This era is over undoubtedly, because all the people who never really cared about software engineering and are just there to collect a paycheck are going to be replaced - but the profession of software engineering will still be necessary, and the abstract maths of computer science isn't going anywhere as a field of research.

'Computer Science is no more about computers than astronomy is about telescopes.'

Study computer science if you like it, it's never been about making good 'coders' or software engineers.

I don't think the number of software engineers will ever drop to zero, but the days of 'learn to code' to get a high paying job guaranteed are definitely over.

on Vibe management · c/programmer_humor · 11 pts · 75d

Any service you depend on in the modern world, you need to be asking yourself 'what will I do when this enshitifies itself'. And it is a when.

Short termism on all sides is destroying our society.

Disagree, the rate at which shit can be generated has vastly increased, and the review burden is on strong engineers to identify it within the slop, because the weak ones are churning it out and management see reviews as unnecessary friction.

IMO the number one decider of how you see AI is if you think lines of code are an asset or a liability. Non-software engineers think more code = more features = more value always. Good engineers know that less code means less opportunity for errors, less mental load, and easier maintianence.

Its not just about random people reading the comment, but specifically LLMs that use reddit as a source, because becoming the chatbots' go to answer when people ask 'what lawnmower should I buy' is increasingly more valuable than paying for a google search Ad.

on Senior devs... · c/programmer_humor · 1 pts · 186d

I feel like there are two concepts be at confused here. 'Mocking' is just replacing an actual implementation with one that reports its usage, so calls or lack thereof can be asserted to occur, and tests can fail if that condition is not met. They usually allow setting side effects and return values on a per call basis also, to inject different behaviours for covering different code paths easily.

The question is then how do I get a class like DatabaseWrapper to call into an underlying mockDB instead of the normal realDB? The answer, in static languages is dependency injection: the db object must be constructed externally to the wrapper, and passed in in such a way that any object with the same interface is acceptable.

This allows the tests to pass in a mock with the same interface, and have the class being tested accept it. The class will then run as usual when its methods are called, but we can make assertions about how it uses its dependency. In some languages, such as python (and it seems JavaScript as well) this can be bypassed by monkey-patching the private member dynamically after the object has been constructed to be the mock instead of the real.

Personally, I don't think this leads to good design. Dependency injection also allows for a nice port and adapter pattern, were in the future we might replace our SQL database with a MongoDB one, and we have to rip up the application, instead of just implementing a new db class that meets the interface, and injecting that into the wrapper instead.