Live data from Hacker News

Signs of an Immature Software Developer

pragmaticsoftwareengineering.com

1–10 of 100 posts

Re: Signs of an Immature Software Developer

#2
> 5. Happy Path Focused

Preach it!

I am dealing with this now, having taken over a project from someone who thought this way. Yes it works, but is full of bad error handling, cryptic exceptions, race conditions (particularly TOCTOU bugs), non-atomic database updates, and more.

"But it works" they say, which is true. But a simple SQL query shows duplicate or missing data where there shouldn't be and other violations of basic assumptions.

Looking at code and knowing what could possibly go wrong is an extremely useful skill. Unfortunately it usually takes running head first into those issues to actually learn and comprehend those lessons (which I have done more than my fair share of :))

Re: Signs of an Immature Software Developer

#3
6. Posting click bait titles to your programming blog.

Edit: here's a real critique.

> Best practices are non-negotiable

Have you ever argued about which practice was best? I have, many times. They are endlessly negotiable, and there is no canonical list of best practices.

Re: Signs of an Immature Software Developer

#5

> Focus on the business problem, not the code Staffing and code maintenance are business problems. The tech matters at various levels of concern.

The code can have the least amount of technical debt, be written in the most simplistic way and be abstracted enough to allow the business to evolve but if the business runs out of money nobody cares about the rest because it won't matter.

Staffing and code maintenance are a business problem but I see software developers early in their journey put too much weight on these compared to bottom line value to the company.

Re: Signs of an Immature Software Developer

#6
I take issue with point 4 "Rejecting of Best Practices". The article states "Simply put, best practices are non negotiable.". Problem is, "best practices" is large body of rules-of-thumb which are almost always context dependent and often contradictory. Often they lead to worse code overall when applied outside of the relevant context. So I would reformulate as:

Only reject a "best practice" if you understand why it was there in the first place.

Maybe I'm just being immature, though!

Otherwise some good points in the article. I'd say a good sign of maturity is that you understand you job isn't to write code, your job is solving problems for the business.

Re: Signs of an Immature Software Developer

#7
post #3

6. Posting click bait titles to your programming blog. Edit: here's a real critique. > Best practices are non-negotiable Have you ever argued about which practice was best? I have, many times. They are endlessly negotiable, and there is no canonical list of best practices.

Non negotiable best practices does not mean it’s not arguable which practices are best.

What it means is whatever you or your company decides are best practices as well as agreed upon industry best practices must be followed every time.

Re: Signs of an Immature Software Developer

#9
> Simply put, best practices are non negotiable

This here is a sign of immaturity.

Following Best Practices to the letter without knowing why is fine if you're a student or a junior developer, or if your work is not much off the beaten path.

But as soon as you're doing anything more complicated than stringing libraries together you have to know what you're doing and why you're doing it. You have to know the tradeoffs and benefits. This means discussing and yes, negotiating what are considered "best practices", and sometimes rejecting them if they're getting in the way of having a good product.

Re: Signs of an Immature Software Developer

#10
post #6

I take issue with point 4 "Rejecting of Best Practices". The article states "Simply put, best practices are non negotiable.". Problem is, "best practices" is large body of rules-of-thumb which are almost always context dependent and often contradictory. Often they lead to worse code overall when applied outside of the relevant context. So I would reformulate as: Only reject a "best practice" if you understand why it…

How do we know what the ‘best’ practices are?

Presumably everyone thinks their own practices are the best, otherwise they wouldn’t be doing them.

‘Accept best practices’ just sounds like ‘do it my way because it’s the best’.

Post reply on HN