Loading ...
Sorry, an error occurred while loading the content.

Re: [hackers-il] What are the levels of professionalism of star programmers?

Expand Messages
  • Omer Zak
    ... Maybe because the descriptions need to be reviewed by the public and revised and scored and assigned to their correct levels. Then, some scoring method
    Message 1 of 3 , Jul 24, 2000
    • 0 Attachment
      On Mon, 24 Jul 2000, Ira Abramov, ever so insightfully critical, wrote:

      > On Sat, 22 Jul 2000, Omer Zak, ever so originally thinking, wrote:
      > > Are there recognized levels of expertise in programming?
      > you're right... they even have certificates in sysadministration for
      > Noell, Sun, Cisco, Red Hat, etc. but nothing in programming that I know
      > of :)
      > > How can they be described in one's resume?
      > doubtly. I have found myself in the decriptions you gave for all four
      > levels, does that make me average? or maybe because in some category I'm
      > still stuck at first stage I'm only a level-I programmer?

      Maybe because the descriptions need to be reviewed by the public and
      revised and scored and assigned to their correct levels.

      Then, some scoring method would be invoked to assign a level to a
      programmer, based upon the number of descriptions form each level which
      fit him. Probably the lowest level in which there are descriptions which
      fit him.

      > > How do employers/clients recognize (or don't recognize) the different
      > > levels of expertise?
      > grill you at the job interview. ask Chen what they put her through in
      > Mercury. apperently Resume is not enough, tests are always more
      > meaningful, that's how people get ahead.

      I doubt that tests can really test a programmer's ability to manage
      complexity and to do clean design which meets messy&detalied

      > > 1. Wet behind the ears.
      > >
      > > Computer Science graduate and/or graduate of Visual BASIC course and/or
      > > child prodigy.
      > > Engages in religious wars about tools, has a favorite language.
      > > His coding style is spaghetti and his programs are not modular.
      > > He does not document his programs.
      > > He reads Microsoft Press literature.
      > a. how do you compare a CompSci graduate to a VB course pihead?

      Simple. Both of them know to solve exercises and write toy programs.
      None of them have proven their ability to keep their programs modularized,
      clean and bug-free in the face of escalating complexity.

      > b. religious wars and favorite language can still infect even level-4
      > programmers :-)

      Not by definition. A programmer who indulges in religious wars is far
      from being level 4 or even level 2.

      > c. spaghetti code can carry to higher levels too. more often than not it
      > is the unconventional thinking of a "mad scientist" kind of hacker that
      > cuts through structures and tortures interpreters that produces the
      > ugliest yet fastest/tightest code. (if what I heard is true, ask OmerM
      > for samples of his code :)

      OK, I'll amend what I said above and correct to:

      "His coding style is spaghetti and his programs are not modular,
      even though there is no special reason for this."

      Because excellent programmers know when to break rules. Of course,
      they religiously document the gory details. This reminds me of the
      American war movie (whose name was forgotten) about the ship captain who
      was obsessed with trifling matters while his ship was in grave danger.
      His lieutenant consulted some experts in maritime war law and they advised
      that in such circumstances, it is legal to commit mutiny - BUT ONE MUST BE
      documentation of law-breaking expert programmers is the equivalent of the
      court marital(SP?).

      > d. many beginner programmers have "document! document! document!"
      > brainwashes at college, I heavily use remarks in shell/perl and my
      > Javadocs are full and detailed since the day I started programming 17
      > years ago. lack of documentation is usually the realm of the
      > self-advocates who had years of bad personal-developped practices before
      > they got any official education. it doesn't mean they are bad
      > programmers.

      For toy programs, which solve simple problems, and would not need
      maintenance in the future - non-documenting programmers might be OK.
      But for projects, in which Complexity wins, they are disaster.

      > e. what's wrong with mickySoft press? I heard they have some good books
      > too.

      Yes, books like "Code Complete", "Writing Solid Code", "Debugging the
      Development Process". OK, can anyone suggest a better way to characterize
      the literary habits of different levels of programmers?

      > * number of languages used well, and spreading of their types (following
      > the schematic that Assembly, Perl, Scheme and Python/Java are the four
      > far corners of the language "map", are his well-versed languages
      > concentrated closer to one corner or two, or spread around all four?)

      Nice idea! What about non-procedural languages like SQL and the
      "languages" used by Lex/Yacc?

      The following suggestions are good. Anyone willing to characterize levels
      of programmer's professionalism according to the following criteria?

      > * how many "types" of programming has he touched? System, GUI,
      > communication protocol, compiler/interpreter, etc.
      > * how well does he use abstraction and encapsulation in OO? how well
      > does he avoide redundancy and other sicknesses in PP (procedural
      > programming)?

      I suppose this falls under the general category of "how well does he
      handle exponentially escalating complexity".

      > * ever invented his own topical language for a specific task? wrote a
      > self printing program? wrote a self-changing program? wrote a
      > script-generating script? (those are in the perl purity test AFAIR)

      Narrowly-specified. How about generalizing them:
      - Participation in programming contests having various laws.
      - Trimming an instruction from a very tightly optimized critical loop
      which is 7 instructions long.

      > * knows how to document his code well for others to maintain if he is
      > ever asked to, even if he doesn't do it on his own.

      I believe this falls under the category of handling complexity.

      > * knows how to design a project, seperate modules for team work, define
      > clean extendable APIs, has broad views of system requirements, these are
      > all tied to experiance I suppose.
      > * knows his OS, hardware and some system too, helps for optimizing code
      > and system resources. Design patterns and Data structures are nice in
      > theory but need to be optimized in practice.

      --- Omer
      There is no IGLU cabal. Especially not for wet-behind-the-ears

      By sending me unsolicited commercial/political/religious E-mail message/s
      (known also as "spam"), you irrevocably agree to pay me US$500.- (plus any
      legal expenses incurred by my trying to collect the amount due) per
      unsolicited commercial/political/religious E-mail message - for the service
      of receiving it.
    Your message has been successfully submitted and would be delivered to recipients shortly.