I think every programmer should be made to do 2 years of tech support as part of getting a CS degree. It gives you a very different view of software.
Oh, doesn't it! So does QA. I would quibble with the two-years figure, perhaps, but I'd include both tech support and QA as requirements for coding. Next, maintaining other people's code, and working on a team where you cannot dictate everything... both of these teach lessons so valuable that I'm glad they happen to occur early in a lot of programmers' careers.
no subject
Oh, doesn't it! So does QA. I would quibble with the two-years figure, perhaps, but I'd include both tech support and QA as requirements for coding. Next, maintaining other people's code, and working on a team where you cannot dictate everything... both of these teach lessons so valuable that I'm glad they happen to occur early in a lot of programmers' careers.