Of course, you have to learn about languages, databases, APIs, file management and so on. There is literally thousands of stuff to learn. But knowing all this does not make you a good software developer.
The be good, you have to follow those simple rules:
- Write your code so it's easy to understand without comments
- Think about the implication of your modification: Is it a patch or a real fix?
- Have a design or a framework. Behind every good source code, there is a philosophy
- Validate that it is working, in all cases, in all impossibles situations
- Check your code against these 4 operations: Add, Modify, Save, Delete
- Do not re-invent the wheel
- Read about others projects and why they are using specific technologies
- The latest is not always the greatest
- Think Object!
The key is to implement a framework that will help you and your team add new features without compromising the quality of your code. It's not about creating a complex source code using all the twists available in your preferred language. You have to put in place a canvas that is easy to follow, easy to understand and easy to work with.
Ensure that there is only one way to execute an operation. Avoid having functions that will do everything by having optional parameters. If there is only one way to do an operation, it will be easier to debug in the future.
You may fully understand your code. Everything is in your head. Have you think that others do not have access to your brain? Ensure that others will understand how it works easily. Source code is not meant for your eyes only. It's a piece of work that is meant to be shared with team mates.
If you're the only one understanding your code, you're not smarter than the others, you just are a bad software developer...
A good software developer is a good communicator.
Have a great day!