4 ms·
How do you come to the conclusion that a coder's projects have nothing to do with previous experience? Docco comes straight from literate programming and the En
by Detrus 15y ago
How do you come to the conclusion that a coder's projects have nothing to do with previous experience? Docco comes straight from literate programming and the English major is a major influence at least in project choice. It's not about CS insights, it's the non-CS insights at work here. Underscore is nothing new in CS, it's just well crafted, has a good API. How come similar projects by CS majors went nowhere? I think the ugly syntax did them in.
Code quality probably isn't influenced by unrelated experience, but the decision making, what projects to choose, how extensive they should be, what's important, is heavily influenced by outside experience.
Look at the example of startups. Often engineers who start them focus on cool technology, lose sight of the business, customer needs, can't come up with reasonable product ideas etc. They need guidance from people who ran a software business, made these mistakes and understood what's important.
It's the same with any other additional discipline, if you major in English prior to programming you're better positioned to make a word processor or document startup. I think you'd also be better at designing clear APIs and readable code, documentation for others. So many CS-only majors are horrible there. If you majored in design, better at making design tools.
Sure you can pick up skills after getting a CS a degree and the startup approach could give you that. But is that a better approach than majoring in art then picking up CS?
When you have too many college grads coming into a field, taught similar curriculum and Java, you have narrow group think. A person that comes at CS from a different angle will make a bigger difference in CS than those grads. It's an outside perspective, helps in any field.
Another example who isn't a CS major is Ryan Dahl, maker of Node.js. Lots of CS graybeards laugh at his naive efforts and spaghetti, but for some reason his project is popular. Perhaps those who weren't brainwashed by college CS tend to stand out? Let's do a study on that.
- irahul 15y ago> How do you come to the conclusion that a coder's projects have nothing to do with previous experience? Docco comes straight from literate programming and the English major is a major influence at least in project choice. I didn't say previous experience doesn't play a part - I said his English major doesn't play a part in his writing good code. I might be wrong - only Jeremy can answer this. And how do you come to the conclusion English major is a major influence in Docco? Knuth is credited as conceiver of literate programming and for all we know, Jeremy just liked it and ported it. > It's not about CS insights, it's the non-CS insights at work here. Underscore is nothing new in CS, it's just well crafted, has a good API. From Jeremy's attributions, underscore.js is largely a port of Ruby's Enumberable and Python's itertools. The api, more or less, is loyal to the source. > Look at the example of startups. Often engineers who start them focus on cool technology, lose sight of the business, customer needs, can't come up with reasonable product ideas etc. They need guidance from people who ran a software business, made these mistakes and understood what's important. Yes, need guidance from people who have experience in running software business and undestand what is importance. They don't need guidance from people with irrelevant background. > It's the same with any other additional discipline, if you major in English prior to programming you're better positioned to make a word processor or document startup. There are products which were designed to serve the creator and were a big success. There are products which the creators didn't design for themselves which still managed to succeed. All we have here is anecdotes. I don't agree with your definitive assertion that English majors are better positioned to make a word processor. > I think you'd also be better at designing clear APIs and readable code, documentation for others. So many CS-only majors are horrible there. Pretty much everyone is horrible at designing good apis. Again, I don't follow how and why English majors would be better at designing apis. > If you majored in design, better at making design tools. I am not contesting relevant experience helping you being good in a particular domain. > But is that a better approach than majoring in art the picking up CS? To each its own; for me, majoring in CS and picking other things later is better. > When you have too many college grads coming into a field, taught similar curriculum and Java, you have narrow group think. A person that comes at CS from a different angle will make a bigger difference in CS than those grads. It's an outside perspective, helps in any field. May be it does. But you are generalizing a lot here. CS programs aren't a narrow group think you make them out to be. To make a bigger difference, it doesn't just take someone with outside perspective - it takes someone who knows all the rule better than anyone by heart and then breaks the rules he doesn't find proper. You need to understand the inside perspective and why things are the way they are before injecting outside perspective. > Another example who isn't a CS major is Ryan Dahl, maker of Node.js. Lots of CS graybeards laugh at his naive efforts and spaghetti, but for some reason his project is popular. Ryan Dahl isn't a CS major but he clearly understands CS. I am not saying someone who doesn't have a degree in CS can't do anything proper with CS; that was never the point. From his reddit AMA, he has put a lot of work towards his CS education. He just didn't write Node.js because his non cs background gave him some unique insights. And the CS greabeards have done a lot as well. Just that they don't agree with Ryan Dahl doesn't mean anything - both groups have done good work. > Perhaps those who weren't brainwashed by college CS tend to stand out? Let's do a study on that. Again, how does CS brainwash? And how do you propose we do the study? I don't think Jeremy Ashkenas would like to come over and participate in a polarized discussion.
- Detrus 15y agoYou'd do the study by finding out people's educational background and seeing what kind of projects they made. Popular vs large but unpopular projects for example. Popularity might not seem like a CS metric, but it's progress in another direction. Literate programming and writing essays in English major is the connection. He appreciated Knuth's ideas enough to seriously use them. Any large scale educational curriculum "brainwashes." It makes lots of people think the same, have the same ideas. How many CS grads make their own CMS early on? And we're all generalizing here, these textwall discussions will go nowhere. My point was after a certain amount of time and progress, after a certain number of people join a discipline, progress in it slows. It's a law of diminishing returns. When large numbers are attracted to an industry because of high salaries, it seems to hurt the discipline. Same idea as too many cooks in the kitchen, too many programmers on a single project, only on a different scale. Maybe that's why CS and software hasn't made much progress this last decade. You need to add more disciplines after a certain point.