DEV Community

Discussion on: How little we know about software development?

Collapse
 
ashleyjsheridan profile image
Ashley Sheridan

The really great minds in software engineering tend to agree that blindly following any particular set of rules, like Robert Martin (Uncle Bob), the author of Clean Code. He mentions in his books that the rules are there to be followed most of the time, but there are sometimes ocassions where they don't fit.

There is no single set of golden principles for anything, possibly beyond writing code that you can understand at some arbitrary point in the future. Things like SOLID and DRY principles are meant to help developers reach that point with all code they write. A good senior developer has the experience to know when rules can be bent or broken.

Consider the example of regular expressions. By their nature they are not easily readable, so we sometimes need to describe them in code comments. This flies in the face of making code clean and readable, yet there are times when regular expressions far outperform other methods, and do make the overall code much cleaner.

As an overall group, software developers do know a lot about software development, but obviously, we're all at different levels. The field is so diverse now, that it's incredibly easy to spend years focusing on one part of it and never having any experience of other aspects. A lot of the problem there for more junior developers then is actually being able to sift through the vast array of information available and know what parts are more important than others.

That's not something that just happens overnight. It takes time and experience. I would say the following things are important:

  • Learn the language over the framework. So, instead of focusing heavily on React, or jQuery, spend the time learning Javascript. Frameworks and libraries come and go and are fairly easy to pick up, but languages stick around and languages often shape their tooling.
  • Learn about DRY/SOLID/etc principles. Try to follow them in code you create. This process will not happen overnight, again it takes practice. It will take a lot longer to write code at first, but we will save that time down the line when we have to come back and fix bugs or implement new features.
  • Find good sources of developer advice to follow. Blog posts on Medium these days seem to contain a lot of clickbait titles with little substance, but posts on Dev.to tend to be far higher quality. Look out for some specific names of developers for advice to follow. Eventually, this will help you identify good quality advice from other developers you don't know.
  • Write about what you know. You must be just starting to learn about something, and you might not know a whole lot about a subject, but by writing about it you solidify what you do know, and you might have an interesting viewpoint on it that helps someone else understand the subject more easily.
Collapse
 
stereobooster profile image
stereobooster