Signs of an Immature Software Developer
pragmaticsoftwareengineering.com
Signs of an Immature Software Developer
1–10 of 100 posts
Re: Signs of an Immature Software Developer
#2Preach 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
#3Edit: 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
#4Staffing and code maintenance are business problems. The tech matters at various levels of concern.
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.
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
#6Only 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
#76. 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.
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
#8Re: Signs of an Immature Software Developer
#9This 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
#10I 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…
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’.