[Haskell-cafe] Haskellers.com skills list moderation?
wren ng thornton
wren at freegeek.org
Tue Oct 19 23:30:46 EDT 2010
On 10/19/10 9:32 AM, Michael Snoyman wrote:
> There are 11 skills I'm leaning towards dropping, all because they
> fall in the too vague/too general category. Your input is requested on
> these. They are:
> Attribute Grammar
> Categorical Programming
> Denotational design
> Proving observational equivalence between Haskell programs
Taking all these together, they seem like they're trying to make more
specific what someone means when they say they know "mathematics".
Bisimulation, denotational semantics, category theory, and AG are all
popular mathematical techniques for writing robust functional programs.
Perhaps they should be renamed to be a bit clearer to the uninitiated,
but I see no reason to remove them. Perhaps something about domain
theory should be added to the list.
Definitely too general IMO. Do we mean analytical mathematics (calculus,
analytic geometry,...), discrete mathematics (sets, automata,...),
algebraic mathematics (group theory, rings,...), or what? It might be
worth having my more specific examples for folks who want to advertise
having mathematics degrees, but just "Mathematics" is too vague.
> Cabal, packaging, build and distribution tools
This seems like a good one to keep. There's a difference between knowing
a language itself, and knowing the ecosystem well enough to be an
effective developer in a team setting. This is the kind of skill that
employers really like to see, since it distinguishes "hobbyists" from
folks who have used the language in a professional setting.
For example, I've known Java well enough to write programs in it for a
long time. But I've only recently learned how to use Ant, PMD, FindBugs,
TestNG, etc. Knowing those latter skills is what makes me a "Java
developer"; not knowing the language. Similarly, one could consider
knowing C++ vs knowing Boost etc.
> UNIX Scripting and Tool Authoring
I think this one absolutely needs to stay. *nix scripting is a whole
field of work, even though it's not generally recognized as such. This
is what *nix sysadmins do all day (when they're not fighting fires). And
it's one of the reasons why current NLP/SMT research is so painful (the
lack of people writing the appropriate tools). Half of web development,
in practice, often ends up being about this kind of thing too.
More information about the Haskell-Cafe