So I'm a programmer who works in telecom. I'm currently in school as well and I'm also an avid gamer (shocker). I said this to form my question: Take a big game title such as DotA 2 - how do you know when you're ready to work on a system that complicated?I work on web applications at work, but they aren't all that complicated. From my perspective, the little errors I make in web dev would never fly in a company like Valve when their game reaches 11 million people monthly. This could apply to any large company with products whose code must hold up at all times. After all, big errors in the code could mean a loss of big dollars.What I'm asking is, how does one get confident enough to know that code I'm writing is robust enough to not have an insane error show up, while working on a huge system like an online game? How does one approach coding in the midst of incredibly complex systems while producing minimal to no errors?
How do you build the confidence to work on large projects?
programming practices
Two things:Split software into manageable pieces, each of which is simple and intuitive on its own. Most software that actually works is already like this to some degree, and usually you only need to work in one part at a time, so it's a lot more doable than it might seem at first. When something really is too hard to understand, that doesn't mean you suck, it means the code needs refactoring.Get in all the cliche good software development habits. Write automated tests. Use a bug/issue tracker. Automate build/deployment stuff as much as possible. Document your public interfaces. Design things before hacking away at the code. Follow YAGNI and SOLID to the degree that they make sense. Even if you're the only one working on a project, all these things help you in the long run, and when you start seeing those long-term benefits kick in, that's a massive confidence boost.