Do you actually like programming? Or is it just a means to an end for you?
31 comments
"I find it bizarre that people would find implementation inherently interesting. That would be like finding penmanship or grammar inherently interesting.
"
The analogies are flawed.
"Novel idea" in CS divorced from implementation would be like a non-playing musician coming up with "cool musical ideas ".
"I have this cool idea for a new musical genre but I am not interested in the actual playing of music" or "I have this cool idea for a novel but I don't want to sit down and type it up/ write it down". How much of a musician or writer would someone making such statements be? "Novelty" has to be made concrete by playing/writing/programming. It is in the process of writing/playing/programming that you discover if the "novel" idea makes any sense at all.
you say "I'm using implementation in a general way to not only include programming but also clever algorithm design, better software engineering practices, etc."
Ok if all those are "implementation" what's left? someone coming up with "cool ideas"?
"as you get older, you will find it easier to come up with novel applications and harder to come up with quality implementations"
Speak for yourself friend! I for one would be very leery of someone who has "cool ideas" but can't/won't implement them.
I encounter MBAs with this attitude every day. They all have these killer ideas they want me to "implement quickly".
The analogies are flawed.
"Novel idea" in CS divorced from implementation would be like a non-playing musician coming up with "cool musical ideas ".
"I have this cool idea for a new musical genre but I am not interested in the actual playing of music" or "I have this cool idea for a novel but I don't want to sit down and type it up/ write it down". How much of a musician or writer would someone making such statements be? "Novelty" has to be made concrete by playing/writing/programming. It is in the process of writing/playing/programming that you discover if the "novel" idea makes any sense at all.
you say "I'm using implementation in a general way to not only include programming but also clever algorithm design, better software engineering practices, etc."
Ok if all those are "implementation" what's left? someone coming up with "cool ideas"?
"as you get older, you will find it easier to come up with novel applications and harder to come up with quality implementations"
Speak for yourself friend! I for one would be very leery of someone who has "cool ideas" but can't/won't implement them.
I encounter MBAs with this attitude every day. They all have these killer ideas they want me to "implement quickly".
I do implement some of my ideas, but I don't find the implementation process particularly rewarding. It is the end result demonstrating my idea that is rewarding to me.
Plenty of people do find penmanship or grammar interesting! Personally I love programming. I love being able to solve problems in elegant ways and find immense satisfaction in refactoring old and smelly code.
The problem is really that the field isn't interesting in its current form. That is just your opinion. Just as I'm sure there are things you find highly interesting that I wouldn't. There are plenty of blog posts submitted every day that show a real passion and love for the subject of computer programming.
Computer programming is what drives the world we live in today. How could you not find that interesting?
The problem is really that the field isn't interesting in its current form. That is just your opinion. Just as I'm sure there are things you find highly interesting that I wouldn't. There are plenty of blog posts submitted every day that show a real passion and love for the subject of computer programming.
Computer programming is what drives the world we live in today. How could you not find that interesting?
Computer programming is what drives the world we live in today. How could you not find that interesting?
I find novel applications more interesting than quality implementations.
Also, as you get older, you will find it easier to come up with novel applications and harder to come up with quality implementations.
I find novel applications more interesting than quality implementations.
Also, as you get older, you will find it easier to come up with novel applications and harder to come up with quality implementations.
Programming is extremely interesting to me, and a lot of fun to do. In the same way, grammar is interesting to me as well. What do you think linguists study?
I think there's a certain kind of mind that would rather figure out how to do something than come up with that something in the first place. If you're interested in both, then all the better, but if you're only one, there's nothing wrong with that.
I think there's a certain kind of mind that would rather figure out how to do something than come up with that something in the first place. If you're interested in both, then all the better, but if you're only one, there's nothing wrong with that.
Linguists study the mechanics of creating sounds that we interpret as words, writing systems that represent language, semantic analyses of languages and the language acquisition process in humans, among other things that are not the study of grammar.
However, all of these can be related to to the study and application of computer sciences.
However, all of these can be related to to the study and application of computer sciences.
Traditional CS is important but you only need a small percentage of people with such skills. They would be the ones writing difficult libraries/frameworks to make implementation easy for everyone else.
I predict that in a few decades people will look back in bewilderment at today's computer science with its focus on implementation.
Today's Computer Science doesn't have a focus on implementation. Programmers have a focus on implementation, but computer scientists don't.
Today's Computer Science doesn't have a focus on implementation. Programmers have a focus on implementation, but computer scientists don't.
Considering the number of CS grads I've interviewed who can't seem to program anything at all, I thought it was very strange that he thought the field had a focus on implementation.
I'm using implementation in a general way to not only include programming but also clever algorithm design, better software engineering practices, etc.
By "implementation", I'm including clever algorithm design, software engineering principles, etc.
There are a few people who don't focus on implementation (e.g., the MIT Media Lab), but their work is not taken as seriously as traditional implementation-oriented CS.
There are a few people who don't focus on implementation (e.g., the MIT Media Lab), but their work is not taken as seriously as traditional implementation-oriented CS.
That's almost totally wrong, the Media Lab pretty much only implements stuff.
Yes, but the implementation isn't the point. What's implemented has to be novel.
Nah, the novel thing actually has to be implemented.
Most of the projects at the Media Lab are not as novel as they seem. They just take some existing idea or product and tweak it a little bit to seem more novel. SOME stuff is very novel but really not that much.
But it's all implemented. It wouldn't be very interesting to say that you're going to make an animatronic teddy bear or a robot DJ and then not make it.
I'm not really sure what you're getting at anymore.
Most of the projects at the Media Lab are not as novel as they seem. They just take some existing idea or product and tweak it a little bit to seem more novel. SOME stuff is very novel but really not that much.
But it's all implemented. It wouldn't be very interesting to say that you're going to make an animatronic teddy bear or a robot DJ and then not make it.
I'm not really sure what you're getting at anymore.
In traditional CS, you typically wait for others outside of CS to come up with a novel app (e.g., social networking) and then you try to make it better in some way.
Entrepreneurs come up with the big ideas. Computer scientists tweak those ideas and try to come up with faster, more memory efficient, secure, better structured, etc. implementations.
In fact, if a computer scientist is working on a novel app, then his/her work would not be considered important as he/she is not working on the solution to a well established problem.
Entrepreneurs come up with the big ideas. Computer scientists tweak those ideas and try to come up with faster, more memory efficient, secure, better structured, etc. implementations.
In fact, if a computer scientist is working on a novel app, then his/her work would not be considered important as he/she is not working on the solution to a well established problem.
In fact, if a computer scientist is working on a novel app, then his/her work would not be considered important as he/she is not working on the solution to a well established problem.
Not at all. Computer scientists invent new problems all the time.
Not at all. Computer scientists invent new problems all the time.
And their peers generally don't care.
Also, consider the criteria for having a paper accepted at a prestigious conference. Generally, there must be a non-trivial proof of some sort or strong empirical evaluation. This is a great way to discourage people from submitting novel ideas that are hard to evaluate.
Also, consider the criteria for having a paper accepted at a prestigious conference. Generally, there must be a non-trivial proof of some sort or strong empirical evaluation. This is a great way to discourage people from submitting novel ideas that are hard to evaluate.
Some means of demonstrating the fidelity of an idea - either through formal proof or empirical evaluation - is expected of all scientific and engineering papers.
There are lots of interesting ideas that don't work. The value of knowing an interesting idea does work is enormous. Evaluating ideas is the basis of the scientific method.
There are lots of interesting ideas that don't work. The value of knowing an interesting idea does work is enormous. Evaluating ideas is the basis of the scientific method.
I used to be quite interested in the bits and bytes of things, but I have to admit that over the years my interest has shifted to what programming lets me and others DO rather than the specific process of implementation and debugging. To use the penmanship example in the OP, I'm less interested in the pen, ink and paper and more interested in what ends up being written.
As the years go on I find programming less interesting. Or maybe it's that I find other things more interesting.
However the tone of your post seems to imply that programming is the boring part of computer science. The only interesting stuff happening in computer science has come out of people actually programming stuff.
However the tone of your post seems to imply that programming is the boring part of computer science. The only interesting stuff happening in computer science has come out of people actually programming stuff.
What do you mean by "interesting stuff"? Are you referring to novel apps or quality implementation?
Of course a novel app is more interesting if it is implemented. But the point is that implementation is necessary but not inherently interesting.
Of course a novel app is more interesting if it is implemented. But the point is that implementation is necessary but not inherently interesting.
This discussion has cropped up in quite a few places recently. Theres seem to be two camps and very little cross over in those I speak to: Programmers vs Scripters.
The Programmers take pride in the craftsmanship of their code and in the puzzle solving involved. They may do this in dynamic 'scripting' languages but they skew towards strongly typed languages.
The Scripters see it as a means to an end. They want to build some awesome stuff and the software is a means to an end. Any language or framework that makes it quick and straightforward to build with is preferred, preferring dynamic languages and frameworks with good documentation/examples code.
The Programmers take pride in the craftsmanship of their code and in the puzzle solving involved. They may do this in dynamic 'scripting' languages but they skew towards strongly typed languages.
The Scripters see it as a means to an end. They want to build some awesome stuff and the software is a means to an end. Any language or framework that makes it quick and straightforward to build with is preferred, preferring dynamic languages and frameworks with good documentation/examples code.
Perhaps the programmers are employees while the scripters are entrepreneurs?
BTW, my favorite language is actually Scala even though I'm more into novel apps than quality implementation.
BTW, my favorite language is actually Scala even though I'm more into novel apps than quality implementation.
Who's downvoting you everywhere? Sheesh, you've got some enemies.
Some people like fixing puzzles; other people like making things. They go well together. My cofounder loves coding things and making them work. I can do that stuff, but I prefer designing things and making really pretty stuff rather than working in the background.
Some people like fixing puzzles; other people like making things. They go well together. My cofounder loves coding things and making them work. I can do that stuff, but I prefer designing things and making really pretty stuff rather than working in the background.
I find both programming and grammar to be inherently interesting. Computational linguistics has some fascinating puzzles in it, and it's exciting to ponder how we might be able to make computers communicate in natural language.
It's always been a "means to an end" for me, as the real reason for me to program was always to be able to design video games down to the last detail. So it was a reluctant process at first, especially when it seemed like the only options(as a PC user in the early 90s) were between languages like QBasic(not powerful enough) and those like C(too many implementation details).
But when felt like I hit that goal I didn't stop learning, I actually got more into it because I wanted to learn ways of getting a better result in less time, and the obvious answer to that was to keep studying and soaking up knowledge.
But when felt like I hit that goal I didn't stop learning, I actually got more into it because I wanted to learn ways of getting a better result in less time, and the obvious answer to that was to keep studying and soaking up knowledge.
More than just solving the problem at hand, there can be an aesthetic appeal to some solutions. Similar to the way a writer can appreciate a particularly beautiful phrase, a programmer can enjoy a clever solution to a given problem. I, and many others, enjoy the art of finding these "beautiful" solutions.
Yes I love programming. My favorite "projects" are algorithm competitions and apps for mobile phones. Programming is a beautiful art form... imo doing enterprise IT work hides most of the artistic side just like high school math and college calculus hides much of the beauty of pure mathematics.
More, more interesting! It's like running, the more you do it the faster you're able to run and the more you want to run more often!
Programming is my Passion.
interesting, no one commented so far about the disproportion of men to women in the field... I think this should be a separate question in itself.
I predict that in a few decades people will look back in bewilderment at today's computer science with its focus on implementation.
And btw, it's also surprising when people are upset that few women major in CS. The problem is that the field isn't interesting in its current form. Perhaps one should complain more about men who like the field as is and want to preserve the status quo!