I often think that people who ask: "Would you hire an architect to design a house for you without formal training?" don't read the newspapers.
One of the most visible engineering projects in Britain recently was the Millennium Bridge across the Thames which had to be closed the day after it opened because it was not stable. People with degrees and awards for Architecture and Engineering forgot to check the most basic things about a suspension bridge, stiffness and damping, and so made fools of themselves. The number of award winning architects that design buildings with leaky roofs (in Britain!) is too large to list.
I have spent a lot of time in the industry fixing other people's code, and have seen awful code written by people with advanced degrees in software and fine solid code written by self-taught amateurs. Often programmers only use their formal training for ways to deny the existence of errors in their programs. It seems to me that the most valuable traits are the knowledge that your are fallible, the determination to find your mistakes and fix them, and an attachment to the basics of the art.
In general, managers and teachers are more impressed by flashy add-ons than solid basics, and the results are programs, and bridges, that fall down on the job.
I often think that people who ask: "Would you hire an architect to design a house for you without formal training?" don't read the newspapers.
One of the most visible engineering projects in Britain recently was the Millennium Bridge across the Thames which had to be closed the day after it opened because it was not stable. People with degrees and awards for Architecture and Engineering forgot to check the most basic things about a suspension bridge, stiffness and damping, and so made fools of themselves. The number of award winning architects that design buildings with leaky roofs (in Britain!) is too large to list.
I have spent a lot of time in the industry fixing other people's code, and have seen awful code written by people with advanced degrees in software and fine solid code written by self-taught amateurs. Often programmers only use their formal training for ways to deny the existence of errors in their programs. It seems to me that the most valuable traits are the knowledge that your are fallible, the determination to find your mistakes and fix them, and an attachment to the basics of the art.
In general, managers and teachers are more impressed by flashy add-ons than solid basics, and the results are programs, and bridges, that fall down on the job.