Slashdot Mirror


Great Programmers Answer Questions From Aspiring Student

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."

68 of 347 comments (clear)

  1. what? by darkchubs · · Score: 3, Funny

    I'm suprised they didnt say "go into sales kid".

    1. Re:What? by enos · · Score: 2, Informative

      The guy's Polish and "sztywny" means stiff.

      --
      boldly going forward, 'cause we can't find reverse
    2. Re:What? by rubycodez · · Score: 4, Funny

      Polish guy goes to the optometrist. Optometrist tells him to read the chart which starts with letters S-L-Q-W-J-Z-B-X etc. etc.. Polish guys stares and jaw falls open. Optometrist says, "what's wrong, you can't read the chart?". Polish guy goes "read it? I went to school with the guy!"

  2. What makes a programmer great? by muttoj · · Score: 5, Interesting

    What makes a programmer great? The software they produce? The influence they have in the markt? The money they earn?

    1. Re:What makes a programmer great? by Kranfer · · Score: 3, Insightful

      Personally, I believe it is their creative ability to solve the problem at hand in new and innovative ways. But thats just me.

      --
      -- Josh
      "Whoopie! Man, that may have been a small one for Neil, but that's a long one for me!" - Pete Conrad
    2. Re:What makes a programmer great? by b1ufox · · Score: 4, Interesting
      Well new and innovative ways are just one part of it.


      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.

      --
      -- "Genius is 1% inspiration and 99% perspiration" - TAE --
    3. Re:What makes a programmer great? by pyroflower · · Score: 2

      I'd have to agree with you there. I also find that it's the ability to use your language of choice to solve a problem in an efficient and innovative way. Just like speaking any foriegn language fluently...sort of.

      --
      If you are not part of the solution then you are part of the precipitate
    4. Re:What makes a programmer great? by Anonymous Coward · · Score: 2, Insightful

      http://en.wikipedia.org/wiki/Elegance

      "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 careful when calling a word you never heard before a "buzzword". It might be a legitimate term you just happen to never have heard before, and end up looking like a newb ;-)

    5. Re:What makes a programmer great? by CantGetAUserName · · Score: 2, Informative

      Apologies for the late post, but try this, from the Jargon File:

      elegant: adj.

              [common; from mathematical usage] Combining simplicity, power, and a certain ineffable grace of design. Higher praise than 'clever', 'winning', or even cuspy.

              The French aviator, adventurer, and author Antoine de Saint-Exupéry, probably best known for his classic children's book The Little Prince, was also an aircraft designer. He gave us perhaps the best definition of engineering elegance when he said "A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away."

      --
      Semper en excreta sumus solum profundum
    6. Re:What makes a programmer great? by The_Wilschon · · Score: 2, Insightful

      I'd say that you should be able to use any language, even one that you despise, or one that you have never ever heard of before, to solve your problem in an efficient and innovative way.

      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.

      --
      SIGSEGV caught, terminating

      wait... not that kind of sig.
  3. I can answer one of them by LiquidCoooled · · Score: 5, Funny

    or what makes certain programmers so much more productive than others

    The most productive programmers have slashdot.org pointed at 0.0.0.0 in their hosts file.

    --
    liqbase :: faster than paper
  4. no Knuth ? by dario_moreno · · Score: 3, Insightful

    without Donald Knuth this list is *SO* incomplete.

    --
    Google passes Turing test : see my journal
    1. Re:no Knuth ? by Bitsy+Boffin · · Score: 3, Informative

      Knuth doesn't use e-mail, so probably why not included.

      --
      NZ Electronics Enthusiasts: Check out my Trade Me Listings
    2. Re:no Knuth ? by nkv · · Score: 3, Funny

      Also, he forgot to ask Eric Raymond. The guy who wrote "How to be a hacker"! Man...

    3. Re:no Knuth ? by Reverend528 · · Score: 3, Funny
    4. Re:no Knuth ? by ray-auch · · Score: 2, Informative

      Exactly how was the guy supposed to get Turing or Knuth to do an email interview ?

    5. Re:no Knuth ? by amelith · · Score: 5, Funny

      No, without Godel it's incomplete but if you included him it would be inconsistent.

      Ame

    6. Re:no Knuth ? by 91degrees · · Score: 3, Informative

      This is largely because Tannenbaum was critical of Linux, and Linus was defending his creation. Just because he disagreed about the importance of certain fundamentals doesn't mean he didn't believe that Tanenbaum's opinion was worthless. Quite the opposite. If he didn't respect Tanenbaum's opinion, he wouldn't have responded.

      And it's a well known fact that Linux was heavily influenced by Tanenbaum's operating systems book.

    7. Re:no Knuth ? by gkhan1 · · Score: 2, Insightful

      This is indeed true. Both Torvalds and Tanenbaum are adults, they are grown up enough to realise that even if you disagree with someone on some issues doesn't mean he's an idiot. That's far to rare in modern discourse.

    8. Re:no Knuth ? by gkhan1 · · Score: 4, 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

      You would not get a high grade for such a design :-)

      including smiley, and then later

      Writing a new OS only for the386 in 1991 gets you your second 'F' for this term. But if you do real well on the final exam, you can still pass the course.

      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:

      Well, I probably won't get too good grades even without you: I had an argument (completely unrelated - not even pertaining to OS's) with the person here at the university that teaches OS design. I wonder when I'll learn :)

      Yeah, they really seem to hate eachothers guts.

      Just to ram my point home, this is how Torvalds ended his first message

      PS. I apologise for sometimes sounding too harsh: minix is nice enough if you have nothing else. Amoeba might be nice if you have 5-10 spare 386's lying around, but I certainly don't. I don't usually get into flames, but I'm touchy when it comes to linux :)

      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.

  5. Should've talked to Knuth by AEton · · Score: 4, Funny
    --
    We recently had heard in the office over one of the Yellow Machine that's made by Anthology Solutions.
  6. Torvalds plugs Tanenbaum! by Anonymous Coward · · Score: 2, Interesting
    For similar reasons, I have a soft spot for Andrew Tanenbaum's Operating Systems: Design and Implementation".

    Heh. I missed that the first time around.

  7. Interesting Responses by eldavojohn · · Score: 4, Funny
    - What do you think is the most important skill every programmer should posses?
    Guido Van Rossum:

    Your questions are rather general and hard to answer. :-) I guess being able to cook an egg for breakfast is invaluable.
    When writing a kernel, give me Torvalds. When authoring a book, give me Norvig. When making breakfast ... GIVE ME VAN ROSSUM.
    --
    My work here is dung.
    1. Re:Interesting Responses by Chapter80 · · Score: 4, Funny
      The classic answer to the question:
      - What do you think is the most important skill every programmer should posses?
      Steve Yegge:
      Written and verbal communication skills. [Like how to spell the word "possess"]
      I laughed my ass off!
    2. Re:Interesting Responses by TeknoHog · · Score: 2, Insightful

      I think it's a subtle reference to Python's conventional metasyntactic variables. Python was named after Monty Python's Flying Circus, and in the place of foo, bar, baz, quux, etc. it often uses spam, eggs, and sausage.

      --
      Escher was the first MC and Giger invented the HR department.
  8. What? by suv4x4 · · Score: 4, Funny

    Jarosaw "sztywny" Rzeszótko

    That's it... I resign!!

    - suv4x4's spellchecker.

  9. Re:a sample by AEton · · 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.

    --
    We recently had heard in the office over one of the Yellow Machine that's made by Anthology Solutions.
  10. It's not the questions that are important... by jackharrer · · Score: 5, Insightful

    ...it's all about answers. Those guys answered them - and everybody knows how busy they are. I think it shows something about them - their character, the way they treat other people, how helpful they're trying to be. When I was younger I met many times people who claimed to be good programmers, but every time I asked them any kind of questions answer was fairly the same: you noob go to books, online, and other abuse. That effectively prevented me from joining OSS club. If we want more good programmers, people with passion - we need to allow them to enter mainstream - by helping them, not rejecting. Everybody started some time ago, and all of us know how hard was to get over some, now basic, problems. If we show them positive way - they will learn it - and do the same to other. jackharrer

    --

    "an experienced, industrious, ambitious, and often, quite often, picturesque liar" - Mark Twain
    1. Re:It's not the questions that are important... by EvanED · · Score: 2, Interesting

      Not only that, but it shows something about the field of CS which to a large extent is unique, which is that many of the big names are still around and are emailable! I mean, you can't do that in math -- let's see you email Newton and ask him a question. Or ring up Einstein and ask about something in his paper. But just the other day I emailed an author of a paper I read with a question, and he got back in just a couple hours. It's really pretty neat.

      And yeah, you can do this with modern stuff in other sciences, but with CS *most* of the field is modern. (There are some notable exceptions of course.)

  11. Re:ADA by jrumney · · Score: 4, Funny

    She might have some difficulty answering the questions though, what with being dead for the last 154 years.

  12. Re:a sample by PinkyDead · · Score: 3, Insightful

    I think if there was anything I got from the interviews, it is that great programming skills come from individuals that have a broad background. (And what brings this out is the juxtaposition of the different viewpoints - which is a nice approach).

    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. And so on....

    These guys all come from different backgrounds and have made substantial efforts to keep their knowledge honed. They also have very open minds to new ideas - (Except for Bjarne who just sounds like a grumpy bugger).

    --
    Genesis 1:32 And God typed :wq!
  13. Re:History of CS 101 by FoamingToad · · Score: 2, Informative

    Edsger Dijkstra died in 2002.
    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...

  14. Re:History of CS 101 by PinkyDead · · Score: 5, Funny

    Everyone knows that dead people are shit at filling out questionaires.

    Great voters - but questionaires? It's just not their thing.

    --
    Genesis 1:32 And God typed :wq!
  15. Re:Experts?? by ray-auch · · Score: 4, Funny

    Where are Turing, Knuth and Parnas

    At least two of them are very definitely unavailable for email interviews...

  16. Re:An interesting observation by Aim+Here · · Score: 2

    Programming Pearls by Jon Bentley and Structure and Interpretation of Computer Programs by Sussman, Abelson and Sussman were both mentioned twice too.

  17. I wonder.... by JaJ_D · · Score: 3, Funny

    what Jarosaw "sztywny" Rzeszótko is worth at scrabble....

    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

    ;-]

    1. Re:I wonder.... by soliptic · · Score: 4, Informative

      Off-topic trivia - "z" is worth 10 points in scrabble in English, but only worth 1 point in the Polish edition.

  18. Re:An interesting observation by Eli+Gottlieb · · Score: 4, Insightful

    Brevity.

  19. Math by vadim_t · · Score: 4, Insightful

    An interesting thing I noticed is the disagreement of what is "math" when talking about programming. I think it's a matter where you come from. If you started with mathematics and went into programming, then I guess everything is math.

    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.

    1. Re:Math by Lars512 · · Score: 3, Interesting

      I think you're right, in many cases it's a matter of perception. In my experience (pure maths/software eng. combined degree grad), there was no part of what I did in maths which is directly relevant now to software. Most of it I don't even remember. Perhaps that would have been different if I'd done discrete maths instead. What I did find was that pure maths was a series of incredible mental exercises. You were reasoning about complicated systems, and the best proofs came from lateral thinking and reaching a deep understanding of the system you were studying. I think pushing your abstract reasoning abilities to that level helps to manage complexity and abstraction in software. As it is pointed out, the best programmers are able to turn a complex problem into a simple one [through reaching the right abstraction]. For me, that is why maths was helpful. Perhaps the experience is also different for different areas of maths. Discrete maths may be better for algorithms, pure maths for abstraction, applied maths/physics for ??? (scientific programming/game dev/very specific areas of software)...

    2. Re:Math by ursabear · · Score: 3, Informative

      Well said...

      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.

    3. Re:Math by MxTxL · · Score: 2, Insightful

      You may only need calculus-type math when dealing with programs with physics involved... games, simulations, navigation control etc.

      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 ways it is superior to the theoretical stuff that goes on at a university. Practical, real world solutions are what most people value. However, R&D is what drives innovation and this is the world where the theory is critical. If you think you can make an algorithm faster than quicksort or mergesort, you better have a damn good understanding of why they run in O(n log n)... These kind of problems are language-agnostic... it doesn't matter your mastery of C++, you can make solutions in pseudo-code for all anyone cares... it's the concepts that matter here not the language. The programming is just the implementation of it.

      Programming can be taught to anyone at ITT Tech or by Sam's 24-hour books. It's not that hard to do and that's why jobs are being shipped overseas. Anyone can do it. The hardcore, deep level theory stuff can't be done by just anyone. Personally, I can't even do it. A BS in computer science only get's you so far into the theoretical... but at least now I can really understand the value in it.

      As for the Linux kernel, I don't know if it does or doesn't have any superficial "real math" in it... (i haven't studied it) but I guaran-damn-tee you that it has cutting edge computer science concepts involved in it.... the developers may have themselves been innovative in using these or they may have been standing on the shoulders of giants, but trust me, to fully understand what happens in a modern OS you need some good math. It's a fact.

    4. Re:Math by Fahrenheit+450 · · Score: 2, Insightful

      Quite often. But then again, I don't limit myself to languages that treat recursion as a second class form of control.

      --
      -30-
  20. Re:ADA by Anonymous Coward · · Score: 2, Interesting

    Has anybody else noticed that Knuth looks like Yoda?

  21. Re:Notice the trend by Jekler · · 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.

  22. Re:a sample by rolfwind · · Score: 2, Insightful

    I don't understand "Lisp Hate" at all. Having used C and other C like programming languages since I learned programming, 9 years back - and having learned Lisp just last year - I always consider it approaching what programming should be much closer than an Algol descended language.

    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.

  23. ROTFL (was Re:An interesting observation) by Zero__Kelvin · · Score: 3, Insightful
    When asked about the their favorite book on programming, Linus spent a full paragraph explaining why K&R's /The C Programming Language/ is so impressive while Strousoup reply merely said `K&R.' I'll leave it as an exercise for the reader which of these answers shows a better understanding of C.
    Yes. Stroustrop couldn't have had a very strong understanding of the C language. I mean ... it is not like he invented a language that used C as a starting point and then gave serious thought to the pitfalls, and ways to enhance and extend it, until it was a language called C++ or anything ....

    It is better to remain silent and be thought a fool than to speak (write) and remove all doubt 8-)
    --
    Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
  24. Something I noticed about all their answers by porkThreeWays · · Score: 4, Insightful

    I noticed a commonality in some of their answers. More I guess the way they answered them. When they didn't know an answer, they said "I don't know". I think the ability to admit you actually don't know the answer to something is very important. How many actors, salesman, or politicians have you ever heard use those words? Not too many!

    --
    If an officer ever threatens to taze you, say you have a pacemaker.
    1. Re:Something I noticed about all their answers by Furmy · · Score: 5, Funny

      How many actors, salesman, or politicians have you ever heard use those words?

      I don't know.
      Good point, though.

    2. Re:Something I noticed about all their answers by TapeCutter · · Score: 2, Insightful

      That's a "test" I have used when interviewing programmers in the past, drill down on some esoteric crap until they say "I don't know", bonus points for saying "I would have to look it up". Bullshit answers means the interview will be short.

      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.

      --
      And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
  25. Re:Notice the trend by orasio · · Score: 2, Interesting

    Programming is very easy, and most people can learn it, like any kind of language.

    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 it's not just a gift.

    Aside from that, enjoying programming can go a long way, and probably has much more influence in the development of a programmer.

  26. Re:Experts?? by 32771 · · Score: 2, Funny

    D.E. Knuth is then indefinitely unavailable for an email interview.

    --
    Je me souviens.
  27. The two biggest omissions by Tyler+Durden · · Score: 4, Informative

    Knuth is great for his theoretical work, but I don't know if he'd rank up there as an important programmer. Although I suppose someone could make an argument for it based on his work on TeX.

    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.

    --
    Happy people make bad consumers.
  28. Larry Wall by Doc+Ruby · · Score: 5, Interesting

    He missed Larry Wall, creator of Perl. Not that Perl makes for great programs (though the fact that Perl works so much, so often, says a lot). But because Wall's C programming of Perl is some of the best programming out there. Perl, an interpreted language, runs faster than most equivalent C programs written by lesser programmers than Wall. It runs on more hardware than almost any language, including Java (and runs better on more HW than Java). Perl has the largest free, open source archive and one of the best FOSS communities, and has since before that was considered a feature of the language. Including the source to the language itself.

    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.

    --

    --
    make install -not war

    1. Re:Larry Wall by Black+Perl · · Score: 3, Informative

      He missed Larry Wall, creator of Perl. Not that Perl makes for great programs (though the fact that Perl works so much, so often, says a lot). But because Wall's C programming of Perl is some of the best programming out there.

      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'.

      --
      bp
    2. Re:Larry Wall by Doc+Ruby · · Score: 3, Interesting

      That's why I made the distinction between Perl code ("Perl") and Wall's C code that makes Perl work ("perl").

      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.

      --

      --
      make install -not war

  29. Lots of insight in that interview by CrazedWalrus · · Score: 4, Informative
    That was easily one of the best interviews I've read. The questions weren't overbearing, and the guys responding were generally conscientious in their responses. Some points that really struck me as I read some of the answers:

    • Communication is extremely valuable. Programming in large projects is a social activity. Good ideas must be adequately expressed, or they'll likely whither on the vine.
    • A good understanding of math concepts is valuable in that they teach the programmer to think about algorithms logically and coherently, not so much for their direct usage in programming. Dave Thomas even associated a musical background with good programmers.
    • Open your mind. Be a student of everything, not just technology. Read fiction, study music, be social, be curious about the world in general, and learn as much about it as possible. The best programmers tend to love learning and knowledge for their own sakes.
    • Good tools allow you to make them better.
    • Programmer + vague question = eggs for breakfast.
    • University education *is* valuable, but one shouldn't believe they've learned everything there. Programming is an artform that is refined over time with patience and experience.
    • Cultivate a sense of "value". Don't waste 90% of your time on the 5% of the work that doesn't really matter.
    • Develop good "taste" in how you attack problems. This is a bit esoteric, but I think part of what Linus was referring to is what I tend to call "elegance". Don't use a lot of code where a little will do. Don't overcomplicate. Use the right tool for the job. I think the other part was actually being able to recognize this quality in the work of others. Apologies to Linus if I misunderstood.
    • Don't worry about the Next Big Thing. Keep building fundamentals. When the Big Things come along, they're usually the product of lots of fundamentals put together in a creative way. More often, the future is shaped in small increments that people barely notice.
  30. Re:Notice the trend by Acy+James+Stapp · · Score: 3, Insightful

    "I think people are an infinite well of potential, their decisions shape their potential."

    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.

    --
    -- Too lazy to get a lower UID.
  31. Programmer productivity by SpinyNorman · · Score: 3, Insightful

    Interesting answers, but more because of the different take on things than any individual specifics.

    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.

  32. A question of style by 0xABADC0DA · · Score: 2, Funny

    I like how Linus says "taste" is the most important quality for a programmer, but then listens to "various classic-rockish things, ranging from Pink Floyd to the Beatles to Queen and The Who". I guess, like operating systems, there hasn't been anything good since 1980s?

  33. Re:Notice the trend by HeyPunk · · Score: 2, Funny

    Thank you Peter Pan.

  34. Re:An interesting observation by namekuseijin · · Score: 3, Insightful

    "I was surprised nobody mentioned the design patterns book"

    programmers program, designers design. that's why.

    --
    I don't feel like it...
  35. Re:Notice the trend by evil_Tak · · Score: 2, Insightful

    Spoken like a true non-programmer.
    Solving trivial problems poorly can be easy; solving interesting problems, or trivial problems in interesting and elegant ways, is not easy.
    My apologies in advance if you're a Turing Prize winner.

  36. Re:a sample by Fahrenheit+450 · · Score: 2, Funny

    Meh. I can write just as bad pseudo C...

    #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 = "I";

        init = new_answer();
        if (init == 0) failwith(BAD_ANSWER_INIT);
        quest = new_query();
        if (quest == 0) failwith(BAD_QUERY_INIT);
        st = new_statement();
        if (st == 0) failwith(BAD_STATEMENT_INIT);

        pack_query2(quest,me,"learn");
        pack_statement2(st,me,"program");
        append_statement_modifier(st,FINE_ST);
        wrap_statement_consternation(st,WTH_ST);
        wrap_statement_consternation(st,SERIOUSLY_ST);
        if (!is_valid_statement(st)) failwith(INVALID_STATEMENT);
        why(quest, st, "LISP", "C", ans);
        if (ans == 0) failwith (QUESTION_UNANSWERABLE);
        print_answer(ans)
        destroy_answer(ans);
        destroy_query(quest);
        destroy_statement(st);

        return 0;
    }

    --
    -30-
  37. C++ tied to Windows? by brokeninside · · Score: 2, Informative

    That is quite the old wive's tale that wasn't even true when it was much more common twenty years ago or so. The last C++ code I touched was a multi-tiered billing system engineered to run on Unix and only on Unix. Not to mention that all the large Unix vendors have been on board C++ for quite some time. IIRC the STL, as but one example, was built almost entirely work by SGI and HP.

  38. RMS by hackrobat · · Score: 2, Insightful

    No RMS, what a pity.

  39. Re:Notice the trend by pilkul · · Score: 4, Funny
    despite my huge intellect
    Not to mention humility!