Setting state variables after contract deployment?

Hi, I'm still a beginner Solidity dev so bare with me. I don't want to hardcode any state variables such as external addresses and other state fields. Instead I plan to set them as public and then after deployment I will initialize these variables. Then I plan on renouncing ownership so no one can update the variables again.

Is this bad practice?

Speaking of which, are there any complete guides for best practices? It seems all the pitfalls, traps and bad security patterns are spread about among various blog posts, tweets, youtube vides. I wish there was a definitive location for everything for beginner devs. I know the official solidity docs have a section for best practices and some common contract patterns to use but it seems incomplete in terms of the various ways that contracts can be constructed.

Any guidance is appreciated and will be explored fully, I promise. :slight_smile: