Live data from Hacker News

Advice for new software devs who've read all those other advice essays

buttondown.email

201–210 of 361 posts

Re: Advice for new software devs who've read all those other advice essays

#201
post #6

Earlier quoted context omitted.

> 1. Software does not make money. Not ever. Sales makes money. Software only costs money. When your developer peers get confused, distracted, or lost on this matter you better hope your employer is either too big, too stupid, or too wealthy to care. I feel like people exagerrate this idea to prove a point that, ultimately, sales is the gateway to money. Which is fair and important to keep in mind. But, worded like t…

What’s the point of even replying to comments like grandparent. Those points are phrased as person-specific dogmas, not advice.

What's the point of replying to any comments? Sometimes people claim to want advice and then cry and whine if its not reaffirming what they already believe. Sometimes people just want to feel smart more than be smart. There was an actual Standard study on this and the difference in output was striking.

Re: Advice for new software devs who've read all those other advice essays

#202

> But also don't worry too hard about getting "tricked" or learning "the wrong thing". Did I learn TDD when it was hip? Yes. Do I use TDD? No. But did TDD teach me how to write better code? Yes. Same with languages I've learnt but not ended up using professionally. Everything teaches you something. You can't find a good middle ground without stepping a bit too far in both directions.

I think we all do a bit of TDD, just not the extreme kind. If you already have the code and now you're trying to extend it, thinking about how this is going to be done and writing a few tests around the usage makes sense. It also makes sense if you don't have the code but you do have a way to structure the code in your mind and you can figure out what parts you can build and test first.

So while it's not TDD in the pure sense (it's more like Test Assisted Development) it is leveraging the spirit of TDD.

Re: Advice for new software devs who've read all those other advice essays

#203
post #102

Earlier quoted context omitted.

That's just wrong. 1. It's tautological that you can't make money without some form of sales. And it's tautological that if you're employee you cost money. Sure you can sell anything even a rock (see "Pet Rock"), but if the company is making money by selling software, then yes, the software makes money, otherwise your company would have its sales trying to sell rocks. 2. Games aren't for automation. They're for playe…

I have heard this all before. Its excuses to qualify low effort and mediocrity. 1. You are either actively generating money directly with your activity or you are contributing to something else that does but you are only doing a single thing at any given moment. Everything else is just pandering to justify your existence. 2. Games can be anything. You don't need a computer to play Sudoku. What separates video games f…

> What separates video games from paper games is automation. Nobody has so far proven this wrong.

That's because it's not even wrong

Re: Advice for new software devs who've read all those other advice essays

#204

I've been working with one junior and one not so junior programmer on a hobby project recently, and they are both "Right Way Guys". For a roughly 300 LOC project with a discord bot and some rust code that only we will be running for now, they insisted on complete documentation, separate VMs for QA and "prod", systemd deployments, a templating system for a few strings, an ORM layer for four (4) SQL queries.. this is a…

I'd argue that they're not completely wrong in doing those things.

Many of those things you list really don't take too much time to do, like writing systemd units or using an ORM. But they really help when anyone needs to take a look at things in the future or someone else wants to contribute as well later on. Besides, they're easier to do when things are still fresh in the mind, and these kinds of chores rarely get done later on when a project has grown.

This being a hobby project may also be a reason why the other programmers want to do things right; they may get satisfaction and learn new things by doing it this way!

Re: Advice for new software devs who've read all those other advice essays

#205
post #72

Earlier quoted context omitted.

I think this is explained by the fact that most business logic is dry, and most abstractions are interesting (until you get bored of them). So you wrap your actual code in fun code to make the job bearable.

This is the likely cause - most software development is dreadfully boring. But at some point in a developer's career, they will have touched the monolith and everything is full of stars, and instead of saying "I'll just hook you up with Magento", they're like "I will build you an event-driven microservices architecture in a custom made C# framework" and disappear for six months while they work late nights. (I wish I…

New life goal: become CTO.

Re: Advice for new software devs who've read all those other advice essays

#206
post #98

Earlier quoted context omitted.

This is so hard in practice. I just had a junior dev rewrite some of my code so that: a builder calls a constructor which instantiates a builder factory which builds a builder then that second builder creates the object. This whole system only builds one type of object. He thinks that his solution is better because it’s more extensible. I can’t make him see why it’s bad.

Every abstraction for extensible code implicitly assumes certain kinds of extensions and makes other kinds harder. Make him extend it in one of the harder directions :D

Good idea

Re: Advice for new software devs who've read all those other advice essays

#207
post #72

Earlier quoted context omitted.

I think this is explained by the fact that most business logic is dry, and most abstractions are interesting (until you get bored of them). So you wrap your actual code in fun code to make the job bearable.

> I think this is explained by the fact that most business logic is dry I don't think that business logic is dry per se. The problem in my opinion rather is that in other parts of the software project, there is much more openness with respect to - trying out new things in new ways - making the code more elegant - seeking abstractions - ... than in the business logic area. Believe me: for the kind of business logic th…

[deleted]

Re: Advice for new software devs who've read all those other advice essays

#208
post #72

My best bit of advice for any programmer at any level: "Don't make stuff more complicated than it has to be!" Software is complicated. Large, feature rich software is even more complicated. That's hard enough to manage as it is. The last thing you want to do is to throw a million of abstraction layers, frameworks, libraries, precompilers, transpilers, build steps, validation hooks, style checkers etc. into the mix. E…

I think this is explained by the fact that most business logic is dry, and most abstractions are interesting (until you get bored of them). So you wrap your actual code in fun code to make the job bearable.

I'll upgrade my original comment: I think the business code is the present, and the abstraction is the wrapping. It looks pretty on the surface, and you have to do a bit of unwrapping to see what's actually there!

Re: Advice for new software devs who've read all those other advice essays

#209

My 1¢ of advice: State is the enemy. Minimize state wherever you can. This includes state as in your code, state as in how many things you need to hold in short term memory to do your job, state as in how many project specific details you need to remember, all of it. State is the enemy. If you can derive it from first principles, always try to do so.

I cannot stress enough how much you can reduce "how many things you need to hold in short term memory to do your job" by just keeping a notebook (or file, or wiki, or whatever works for you) and writing things down.

So, don’t derive it from first principles each time?

Re: Advice for new software devs who've read all those other advice essays

#210
post #72

Earlier quoted context omitted.

I think this is explained by the fact that most business logic is dry, and most abstractions are interesting (until you get bored of them). So you wrap your actual code in fun code to make the job bearable.

> I think this is explained by the fact that most business logic is dry I don't think that business logic is dry per se. The problem in my opinion rather is that in other parts of the software project, there is much more openness with respect to - trying out new things in new ways - making the code more elegant - seeking abstractions - ... than in the business logic area. Believe me: for the kind of business logic th…

It seems to me that if you can see elegant simplifications (or really any significant improvements) but are unable to implement them, you are either positioned too low in the hierarchy, or in the wrong organization.
Post reply on HN