Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This definitely does seem like the Top 10 Traits of a Rockstar Java Developer. Agile, unit tested, gang of four patterns, refactored, usability-engineered.

I guess my favorite part is that it ends in "knows basic computer science". Yeah, that's good to know. Also, the rest of computer science can come in handy. But definitely, read Getting Things Done and Refactoring first; that'll definitely be more helpful than LALR parsing for getting forms hooked up to databases.



For once I agree with you. This reads like a description not of the rockstar but of the "team player" that big companies look for.

Not only are many of the items on this list wrong ("Uses design patterns" should be replaced by "Laughs at the phrase 'design patterns'"), it's missing the defining quality of the really great programmer: Redefines the problem.


For your snarky "for once" comment, you owe me a response to this: withholding distaste for the term "rock star", rock star devs:

1. Can estimate accurately.

2. Can solve problems involving graphs.

3. Can frame and solve problems compiler-theoretically, including parsing, domain-specific languages, and virtual machines.

4. Can code bare metal and understand the memory hierarchy well enough to know when that makes sense.

5. Can assess whether a problem is going to be compute bound or IO bound and plan accordingly.

6. May or may not write code that is easy to read ("maintainable"), but tend to write code that is extensible.

7. Understand caching, load balancing, and compression.

8. Can work with large data sets.

9. May or may not formally unit test, but can debug fast and can design code to be debugged.

10. Steal ideas from other strong projects (implying also that they read and evaluate other people's code).

Obvious caveats: I'm not one, but lists like this are always biased. "A rock star developer looks exactly like the ideal me!". Like with the original list, I could easily put a book to each of these.

A comment thread with nothing but people's lists would be fun to read.


Great programmers I've known seem to have a narrow rather than a wide sort of ability. They tend to be unbelievably great at some things but maybe know nothing about others. What they all have in common is the ability to have good new ideas, and to write code that works.

All the things on your list seem reasonable, except for numbers 1 and 5. In my experience, great programmers know that the world is so surprising that they tend to avoid even trying to estimate things. They may try to predict at a coarse granularity, but beyond that they just try to set things up so they can easily change their minds later when their predictions turn out to be wrong.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: