Great Programmers Answer Questions From Aspiring Student 347
NathanBFH writes "Many of the questions that make it to the Ask Slashdot pages come from young and aspiring programmers wanting to know the role math and education play in the profession, or what makes certain programmers so much more productive than others, or what the future of the craft will look like. One young programmer by the name of Jarosaw "sztywny" Rzeszótko decided to ask these types of questions (and more) to the programmers he admired the most who also, it turns out, happen to be some of the most influential computer scientists and programmers of the last several decades. The result? Most of them happily responded. The results include the following: Linus Torvalds (Linux), Bjarne Stroustrup (C++), James Gosling (Java), Tim Bray (XML, Atom), Guido Van Rossum (Python), Dave Thomas (Pragmatic Programmer), David Heinemeier Hansson (Rails Framework), and Googlers Steve Yegge and Peter Norvig."
ADA (Score:2)
Re:ADA (Score:5, Funny)
Re: (Score:2)
Re: (Score:2, Interesting)
Re: (Score:2)
OMG!!... paint him green and he'd be a ringer...
Though, it is Knuth after all... when it comes to CS he pretty much is one with the force
Re: (Score:2)
me: ooohhhhhhhhhhhmmmmmmmmmmmmmmmmmmmmmmmmm...........
ada: *whispers* imhere
me: Ada! Tell us, what do we need to know about programming?
ada: m
me: yes?
ada: micro
me: yes? tell us!
ada: microsoft!
me: well?
ada: is
me: yes??
ada: da
me: huh?
ada: 3v1l!!!!
me: whoa!
what? (Score:3, Funny)
Re: (Score:2)
Re: (Score:2)
What makes a programmer great? (Score:5, Interesting)
Re: (Score:3, Insightful)
Re:What makes a programmer great? (Score:4, Interesting)
It is the ability to choose a very simple and elegant solution from a wide possibility of solutions available, which makes a progammer great.The situation may require choosing a little cumbersome solution but mostly its the simple ones.
programming as such doesnot definetly mean mastering a language.
tools, language are of no use if you are a horrible programmer.
People like Brian Kenighan, Dennis Ritchie, Ken Thomson are people who are a perfect example of what a great programmer is. The simplicity of C, Unix and family is a concrete example of what a simple solution can do.
Re: (Score:2, Insightful)
"recent"? I have been hearing (and using) that term at least since the 80s. Even back then, it was so common that even in the "Max Headroom" series, the computer hacker-type characters exclaimed "elegant!" when looking a well crafted system.
Believe me, "elegant" is neither a new fad nor a buzzword. It's simply a generic term used to mean "simple, clean, performant, comprehensible and maintainable"; that is, everything you said, but with less waste of bandwidth
Be caref
Re: (Score:2)
Re: (Score:3, Insightful)
There's a difference between knowing how to program and knowing a language. If you really know how to program, then learning a new language basically amounts to finding a syntax reference for that language.
Re: (Score:2)
Something I noticed about all their answers (Score:5, Insightful)
Re:Something I noticed about all their answers (Score:5, Funny)
I don't know.
Good point, though.
Re: (Score:3, Insightful)
You don't have to know everything to use this test, every programmer carries several API's around in their head that they used last week or whatever, thing is: it's unusual for two programmers to carry the same API's at the same time.
I can answer one of them (Score:5, Funny)
The most productive programmers have slashdot.org pointed at 0.0.0.0 in their hosts file.
Re: (Score:2)
no Knuth ? (Score:4, Insightful)
Re:no Knuth ? (Score:4, Informative)
Re: (Score:3, Funny)
Re: (Score:3, Funny)
Re:no Knuth ? (Score:5, Funny)
Ame
Re: (Score:2)
Re: (Score:2)
Re: (Score:3, Informative)
And it's a well known fact that Linux was heavily influenced by Tanenbaum's operating systems book.
Re: (Score:3, Insightful)
Re:no Knuth ? (Score:5, Insightful)
You are taking the quotes completely out of context, Torvalds wrote that minix was brain-dead, not him. It's hyperbole, not a personal attack. Tanenbaum obviously made the grade comment in jest. The actual quote is
including smiley, and then later
He was trying to be light and funny, Tanenbaum isn't an idiot. He knew linux was a solid OS, he just disagreed with how it was made, the philosophies behind it. Ohh, and by the way, this is how Torvalds responded:
Yeah, they really seem to hate eachothers guts.
Just to ram my point home, this is how Torvalds ended his first message
Two smart people having a debate. They have different philosophies, true, but they do have respect for eachother. Torvalds even says in Just for Fun that one of the major inspirations for Linux was Tanenbaums work.
Dude, if you are going to bring out the "have you even read..."-argument, make sure that YOU actually have read it. Otherwise, there is a big chance that you will look stupid, and no one wants that.
The two biggest omissions (Score:5, Informative)
The real great programmers omissions I see are Ken Thompson and Dennis Ritchie. It's hard to top creating the most influencial programming language and the most influential OS of all time. (C and Unix, obviously).
When it comes to the OS, Thompson would be a thousand times more interesting to talk to than Torvalds.
Re: (Score:3, Informative)
Should've talked to Knuth (Score:5, Funny)
a sample (Score:2)
He asks such age-old questions as, "Why am I forced to learn the LISP programming language? Seriously? What the hell? I can program in C just fine."
Re:a sample (Score:5, Funny)
(and
(why? (am (forced 'I (to-learn (language (programming 'the-LISP))))))
(seriously?)
(what? 'the-hell)
(can 'I (program (in 'C) 'just-fine)
)
Fixed that for you.
Re: (Score:2)
Re: (Score:3, Funny)
#include "reason.h"
#include "answer.h"
#include "query.h"
#include "statement.h"
#include "failure.h"
void why(query* question, statement* declaration, char* lang1, char* lang2, ANSWER* ans) {
REASON *reason;
reason = forced_reason_lookup(person,question,lang1);
ans = modify_reason(reason,declaration,lang2));
}
int main() {
ANSWER *ans;
query *quest;
statement *st;
char * me =
Re: (Score:3, Insightful)
I'm sure you can program fine in C. But knowing low-level assembly or even machine code can make the difference between a mediocre C programmer and a brilliant one. Similarly, knowing LISP makes you think differently about how lists work within your C programs.
Re: (Score:3, Insightful)
Maybe Lisp shouldn't be a first language in college, so the people who do come to it can appreciate it more. That way they have the fundamentals that occur in any programming language well out of the way.
Torvalds plugs Tanenbaum! (Score:2, Interesting)
Heh. I missed that the first time around.
Interesting Responses (Score:5, Funny)
Re:Interesting Responses (Score:5, Funny)
Re: (Score:3, Insightful)
What? (Score:5, Funny)
That's it... I resign!!
- suv4x4's spellchecker.
Re: (Score:3, Informative)
Re: (Score:2)
Re: (Score:2)
'Jaroslaw 'sztywny' Rzeszotko'
Now, here, I fixed it for you.
Re:What? (Score:5, Funny)
It's not the questions that are important... (Score:5, Insightful)
Re: (Score:3, Interesting)
And yeah, you can do this with modern stuff in other scie
Re: (Score:2)
gosh, i wonder how much time these fellows would have in their hands once they got past well 2:00PM just answering provocative emails and trollish forum threads defying their theories...
No Eric?!! (Score:4, Funny)
http://geekz.co.uk/lovesraymond/archive/show-them
http://catb.org/jargon/html/S/suit.html [catb.org]
http://www.self-gov.org/celebrities/images/eric-r
http://pepelucho.blogsome.com/images/eric_raymond
http://www.sacred-texts.com/bos/bos086.htm [sacred-texts.com]
http://www.catb.org/~esr/writings/sextips/sexy.ht
Notice the trend (Score:2, Interesting)
That everybody on the list just started programming, and most enhanced programming with education.
I firmly believe that programming is something that you are born with, and can do or pretty much can't do. Like everything else, its something where you can always learn more tricks, tips, and techniques, but I don't believe that it is something that can really be "learned". The attention to detail, troubleshooting, and all of those little skills that are necessary to program are tough.
To put it another way,
Re:Notice the trend (Score:5, Insightful)
I believe the opposite. I think people are an infinite well of potential, their decisions shape their potential. I think whether or not you become a great artist is almost solely a function of how much you choose to dedicate yourself to it. People shape themselves into great things all the time, and things they never actually intended to be nor thought they had any potential for.
I think it's a matter of mental blocks. If a person believes they can't be an artist, then they're not going to put in the necessary effort to make it happen. They won't spend anytime contemplating things like form and composition, not because they inherently lack the capacity to understand it, but because they refuse to. If they lift that mental block and purge the self-defeatist mentality, they can become as great an artists as anyone else, regardless of where their prior talent was.
Re:Notice the trend (Score:4, Insightful)
Not true. Some people are clearly more gifted in certain areas than others. Peoples' brains develop differently and different task competencies arise from parts of the brain that are more or less effective in different people.
While it's true that in many fields one can become an expert through years of hard work overcoming natural limits or through years of easier work in a field they are gifted in, only someone who is naturally gifted and a hard worked can aspire to and achieve recognition as a genius in their field.
Given your example, despite my huge intellect, no matter how much I studied I would still not have the skills of composition and form of Rembrandt or Michaelangelo. I'm sure, however, that I could be a quite accomplished painter but I don't have the genius for it that these men do.
Let me close with by stating that the Standard Social Science Model (where all intellectual skills are culturally determined) is bunk. Just as some people are taller or shorter, blacker or whiter, faster or slower, some people are smarter or dumber. Just as some people have stronger upper bodies or stronger lower bodies, are faster runners or swimmers or rowers or powerlifters, the brain is modular and people are better or worse at math, music, logic, spirituality, face recognition, self-control, and many of the other functions of the brain. These genetic differences in intellectual ability are just as important as the intellectual environment and need to be aligned with it in order to achieve genius-level work.
Re:Notice the trend (Score:5, Funny)
Re: (Score:3, Interesting)
Of course, it's much easier if you learn as a kid, because your language skills are starting to form, but it can be taught the same way that difficult languages can.
I would compare learning programming to learning a foreign language that is fundamentally different from yours, like a western person learning chinese. You need new structures in your head, and obviously there are people that do that kind of thing more easily, but
Plastics (Score:2)
I wonder.... (Score:4, Funny)
cat and lister playing scrabble
cat places sztywny on the board
Lister: is that a word?
cat : yes it's a cat word for when you get you privates caught it your zip
Lister: is it in the dictionary
cat: could be if you're reading it in the nude and close it quickly cat demostrates the action and result
With appropriate apologies
;-]
Re:I wonder.... (Score:5, Informative)
Math (Score:5, Insightful)
On the other hand, a self-taught programmer often sees pretty much everything as "programming". "Math" is then algebra and all that boring stuff they learned in school like trigonometry, which they never use when coding. From this point of view, graphs, trees, recursion, etc are just programming concepts and not seen as necessarily related to the underlying mathematics.
This seems to explain the confusion that occurs when a student asks "do I need math?" to an experienced professional. The student understands math as in elementary algebra, trigonomery, derivation and matrices, and wonders what's the point all of all that when probably nowhere in the Linux kernel there's any need to derivate anything.
Re: (Score:3, Interesting)
Re: (Score:2)
Math is needed... some of the time. (Score:2)
Re:Math (Score:4, Informative)
The debate over whether or not Math is fundamentally important to programming rages on... I've heard both sides of the argument said very well. My impression is that it is the understanding of math algorithms and problem solving capability, not the math itself, that is (one of the) keys to good programming/software development. I'm sure many will disagree... but I must say that being able to see the bigger picture, solve puzzles, and have a good method of making simple solutions to solve complicated issues seem to be very important to the production of good software.
I thought it was interesting that one of the interviewees spoke of music and programming. I am one of many musicians with whom I work - all of whom write software, and the software we write is pretty successful. Composing a score is so very similar to marshalling pieces of an API or programming systems.
Re: (Score:3, Insightful)
In university, however, calculus is what is used to prove that you have what it takes to succeed in Discrete Mathematics or Matrix and Linear Algebra. Admittedly it doesn't take these courses to 'program', but they are essential if you want a deep understanding of why 90% of computer science theory is the way it is.
Programming is all some people aspire to... and in a lot of wa
Re: (Score:3, Insightful)
Bjarne's favorite band: The Dixie Chicks..? (Score:2)
Gotta say that I didn't see that one coming.
Larry Wall (Score:5, Interesting)
Wall also wrote rn, which was equivalent to Usenet for thousands of people for many years, and patch, on which practically everyone outside the MS programming world depend.
These programs are long-lived and popular because Larry programmed them so well to do their essential function. And since he's had to deal with so many obfuscated Perl programs, even winning the Obfuscated C Programming Contest twice, I expect he has a lot of wisdom to deliver to aspiring programmers with question.
He's also probably still available to answer these questions.
Re:Larry Wall (Score:4, Informative)
Heh... this comment reminds me of the O'Reilly convention a couple years ago, when they called Larry Wall on stage for a Lifetime Achievement Award. The award goes to the author of an indispensable software tool. They got him on stage and presented him with the award... for 'patch'.
Re:Larry Wall (Score:4, Interesting)
Not only has perl demonstrated its extreme effectiveness at solving the most general class of real-world problems, it has proven to be maintainable by generations of distributed volunteers. Wall is a great programmer. So great that even terrible programmers benefit from calling his excellent C code by means of cruddy Perl code.
Lots of insight in that interview (Score:5, Informative)
Programmer productivity (Score:4, Insightful)
However, I wasn't too impressed with the answers to the productivity question.
While general intelligence doesn't hurt, I think the real key to productivity comes down to maintaining an interest/passion in the craft of designing and writing code. If you care about it then you will always be trying new techniques and paying attention to lessons that can be learned. At the neurological level, one only learns (lays down new memories) for something if one is paying attention to it, and form the strongest memories when there is emotion attached to the experience (totally different areas of the brain are used for emotional memories).
A "blah" programmer just trudges through his/her work without ever really paying attention and trying to learn - they just want to get the job done and go home. A programmer more likely to climb the productivity curve will be always be excited about what they are doing, trying to do it in the best/most consise way (I'd even say correct - many probloems do have minimal solutions that can be found), trying new techniques, etc.
It's too bad that the reality of difference in programmer producticvity isn't better understood, or there might be less outsourcing. The whole premise of outsourcing is that programmers are equivalent and therefore cheaper means better value... Personally I'd prefer to seek out the programmers who are 10-20x more productive than the herd and pay them 2 x normal rather than outsource to some Indian college graduate and pay them 1/3 x normal.
A question of style (Score:3, Funny)
RMS (Score:3, Insightful)
No RMS [google.com], what a pity.
Re: (Score:2, Redundant)
I don't think i've seen it on /. yet (but I may very well err). Your feeling is more likely to exist because this thing's several month old (23rd of july)
So it's less of a dupe and more of a "slow news day" thing.
Re: (Score:2)
Re: (Score:2, Informative)
Alan Turing committed suicide in 1954.
Charles Babbage and Ada Lovelace died in the 19th century.
I'm sure you _could_ ask questions of each of these people, but getting the responses may prove problematic...
Re: (Score:2)
Honary mention perhaps? I don't know, to have a list described as "most influential computer scientists" should include some dead people, even if they can't talk back.
Re:History of CS 101 (Score:5, Funny)
Great voters - but questionaires? It's just not their thing.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re:Experts?? (Score:5, Funny)
At least two of them are very definitely unavailable for email interviews...
Re: (Score:2, Funny)
Re: (Score:2)
Re: (Score:2)
Who knows. I've never heard of him before, but I know I'm getting old for sure. His answer on how he learned programming:
Pedantic (Score:2)
Re: (Score:2)
someone else will have to get it for me
Re: (Score:3)
Re: (Score:2)
Re:An interesting observation (Score:4, Insightful)
ROTFL (was Re:An interesting observation) (Score:4, Insightful)
It is better to remain silent and be thought a fool than to speak (write) and remove all doubt 8-)
Re: (Score:2)
Re: (Score:2)
Re:An interesting observation (Score:4, Insightful)
programmers program, designers design. that's why.
Re: (Score:2)
Re: (Score:2)
This is a beauty... always nice to hear that all the work I did the last couple of years is trivial.... do me a favour, and keep this insight under wraps.... I have a family to feed.