A few things that I believe comes with development experience:
- Knowing the difference between a simple solution, and an easy solution. Just because a solution only consists of a few lines of code and can be written fast, doesn't make it simple to understand and maintain.
- Knowing when to start coding, and when not to code at all. As an inexperienced developer it can seem like a good idea to just start coding to try out some different solutions to see what makes sense. This is indeed a good idea, sometimes, but sometimes it makes sense to take the time to think through the entire solution before writing any code at all. It is also important to know when not to write code at all, but reuse existing code, maybe in the form of a third party dependency.