But programming by itself is not knowledge. It's a means to solve problems. It's a very important and critical skill and like any other, it's difficult to become a master, but how are you applying it?
For example, let's say you are trying to solve a problem in crystallography. You need to be a good programmer to come up with a nice refinement algorithm, but without a fundamental understanding of the problem you're trying to solve, you're not going to be able to solve it. The same goes for financial modeling, or some other kind of optimization problem.
In any field you have to keep teaching yourself new skills, since the technologies and approaches change. Even the foundational knowledge changes, but what education helps you get is a core understanding of depth that allows you to adjust. There will always be those who can do it without getting a good education, but those are rare, and in the worlds I've lived in, almost non-existent.
Yes exactly. It's easy to learn a new language or API. But it's not easy to learn CS on your own. It's not like you can just sit down and read Knuth from cover to cover. And it's not easy to learn domain knowledge on your own either, you have to be around practitioners.
You can just sit down and read Knuth from cover to cover. The problem is most people that don't get a CS degree also avoid reading Knuth on their own.
I think one of the large gaps between those groups on average is those without a CS degree think theory is useless. When you are forced to learn the theory you end up using it constantly. However, when you see a theory without the associated experience it seems useless. So it's hard to know what to study on your own. For most people it's the rigorous nature of a good CS program that forces them to put forth the associated effort.
You go to Knuth when you have already learnt the vocabulary, tho'. If you can't frame your problem in the language everyone else in your field uses, reference materials and search engines are of very limited use. You might not even be able to discuss it with your colleagues except by them basically taking over the problem and studying it from scratch themselves.
Right, and it seems most of the college hating HN crowd are focused on solving a problem that they can with the knowledge they already have, and then profiting from it, thus not requiring a college degree.
For example, let's say you are trying to solve a problem in crystallography. You need to be a good programmer to come up with a nice refinement algorithm, but without a fundamental understanding of the problem you're trying to solve, you're not going to be able to solve it. The same goes for financial modeling, or some other kind of optimization problem.
In any field you have to keep teaching yourself new skills, since the technologies and approaches change. Even the foundational knowledge changes, but what education helps you get is a core understanding of depth that allows you to adjust. There will always be those who can do it without getting a good education, but those are rare, and in the worlds I've lived in, almost non-existent.