To add to an already somewhat redundant argument, you obviously need the full spectrum of skills, you have to start with the basics of course, but to solve any complex problem you're going to need lots of advanced skills (distributed programming, networking, state machines, error handing, data...