Getting back to Junior vs. Mid vs Senior...
Elegance is one thing and that's partially subjective. Even the GoF design patterns book illustrates ambiguities like - when do you switch from the proxy DP to the mediator DP?
IMHO: the big difference is this, verbatim for the PHPUnit documentation, 2nd sentence: "The difference between a good programmer and a bad programmer is that the good programmer uses tests to detect his mistakes as soon as possible."
See: https://www.phpuni...
--- On Wed, 1/27/10, Alan Puccinelli <[address removed]> wrote:
> From: Alan Puccinelli <[address removed]>
> Subject: Re: [php-139] skills of a programmer
> To: [address removed]
> Date: Wednesday, January 27, 2010, 1:51 PM
> I'd agree with your simple
> categorization for the most part with the
> exception that a "God" in my view is one who is intimately
> involved in
> developing the language itself. eg people contributing to
> the
> development of PHP6 and there should be something
> in-between that and
> a hacker.
>
> On Wed, Jan 27, 2010 at 1:42 PM, james <[address removed]>
> wrote:
> > seems to come down to an old hacker pyramid/image i
> saw a few years back:
> >
> > script kiddie -- knows how to make websites in
> dreamweaver (lol) [which
> > applies to some junior level from what i've seen
> described on this list]
> > hacker -- junior to mid level programmer that can
> modify scripts
> > god -- senior level that writes the scripts
> >
> > ? jms.
> >
> > On Wed, Jan 27, 2010 at 12:31 PM, ambert ho <[address removed]>
> wrote:
> >>
> >> And to better answer your question, James,
> "elegant" is subjective and
> >> case-dependent.?For example, it would be ugly for
> me to write varying
> >> amounts of comma separated values into a DB table
> instead of normalizing the
> >> table. However this would be an elegant solution,
> if I was optimizing the
> >> database for fast writes.
> >> For code examples,
> >> - the Zend codebase is pretty elegant, if you're
> looking for a great
> >> reference on how to do OO php
> >> - I thought the piwik codebase was pretty cool?https://piwik.org/
> >> - for javascript, the major libraries represent
> elegant code to look
> >> through (jQuery, prototype, YUI, etc.). In general
> stuff posted on
> >> www.ajaxian.com will be legit-ly elegant
> >> - in general anything on github tends to be
> elegant (or at least cool),
> >> because in general that community (and that of the
> users of git) is only
> >> comprised of people who really, really care. And
> people who really, really
> >> care tend to write elegant code
> >>
> >>
> >> On Wed, Jan 27, 2010 at 12:16 PM, ambert ho <[address removed]>
> wrote:
> >>>
> >>> Well ugly vs. elegant is a very a "zen" kinda
> thing. You'll have to get a
> >>> feel for what is:
> >>> - simplest (as in few lines of code)
> >>> - DRY (don't repeat yourself)
> >>> - easy to read
> >>> - easy to understand by another developer who
> has no idea what the hell
> >>> you are doing
> >>>
> >>> But off the top of my head a random example is
> like: say you make a bunch
> >>> of ajax calls to load in content, but one of
> the pages you want the logic to
> >>> do something different (for example execute
> javascript functions instead of
> >>> just loading up the page). How to
> differentiate the logic if on the
> >>> clientside all you can do is make page
> requests?
> >>> - An ugly way would be to set something at the
> beginning of the page and
> >>> do a substr() or regex match for it. It's
> hackey for numerous reasons (like
> >>> it would break if that string at the beginning
> of the page were changed, and
> >>> also it's not clear to another developer what
> you are trying to do)
> >>> - An elegant way would be to set something in
> the header to make its way
> >>> into the returned transport object, and in
> your ajax handler do something
> >>> like ( ? ?if
> responseText.handleThisPageDifferently, doThis() ? ) <--
> this
> >>> is more robust, and it's also clear to other
> developers what you are trying
> >>> to accomplish
> >>>
> >>> The reason I know this example off the top of
> my head is b/c I'm doing
> >>> the ugly way hahaha
> >>> Ambert
> >>>
> >>>
> >>> On Wed, Jan 27, 2010 at 11:59 AM, james <[address removed]>
> wrote:
> >>>>
> >>>> okay, so now i'm getting a better grip on
> this.
> >>>>
> >>>> i read about "elegance of a solution" a
> LOT but i don't see many
> >>>> examples of that.? i have a pretty
> limited exposure, admittedly.
> >>>>
> >>>> can anyone point to some code bases that i
> can look over to get an
> >>>> impression of "ugly" vs "elegant"??
> that'd be pretty sweet.
> >>>>
> >>>> thanks everyone!
> >>>>
> >>>> ? james.
> >>>>
> >>>> On Wed, Jan 27, 2010 at 11:51 AM, Mike
> Arace
> >>>> <[address removed]>
> wrote:
> >>>>>
> >>>>> I think that figuring out baseline
> skills for each development level is
> >>>>> impossible since each job is so
> different. The different levels correspond
> >>>>> more (in my opinion) to the speed with
> which a developer will be able to
> >>>>> solve a given problem, and, more
> importantly, the elegance of their
> >>>>> solution. As a rough guide, junior
> people can hack together scripts, mid
> >>>>> level people know of and utilize
> frameworks or existing code libraries, and
> >>>>> senior people write their own
> frameworks.
> >>>>>
> >>>>> Sent from my Nokia phone
> >>>>> -----Original Message-----
> >>>>> From: james
> >>>>> Sent: ?01/27/[masked]:34:51 AM
> >>>>> Subject: ?Re: [php-139] skills of a
> programmer
> >>>>>
> >>>>> there are some things that should be
> quantifiable.
> >>>>>
> >>>>> you should be able to crank through 1
> million lines of text spread
> >>>>> across
> >>>>> 20,000 documents and find xzy.
> >>>>> should be able to refactor an active
> database without loss of data.
> >>>>>
> >>>>> that's the kind of stuff i'm trying to
> understand.
> >>>>>
> >>>>> i agree that not all projects are
> created equal but there's a baseline
> >>>>> skill
> >>>>> set that people should have for each
> level.
> >>>>>
> >>>>> interesting discussion so far. ?i
> hope we can get more info on this.
> >>>>> ?:)
> >>>>>
> >>>>> ?james.
> >>>>>
> >>>>> On Wed, Jan 27, 2010 at 10:54 AM,
> emily blanchard
> >>>>> <[address removed]>wrote:
> >>>>>
> >>>>> > FWIW-Theses breakdowns make sense
> in a general way but Jr. Mid Sr. Is
> >>>>> > relative to the type of
> development work you have been doing. All PHP
> >>>>> > projects are not the same
> (obviously) the Jr. Person may have
> >>>>> > experience
> >>>>> > with something a Sr. Person
> hasn't worked much with and vise versa.
> >>>>> > Value is
> >>>>> > determined as much by what skills
> are listed on a resume as to how
> >>>>> > when
> >>>>> > where and what you did with them
> yourself. Explain what you have done
> >>>>> > vis a
> >>>>> > vis what the project needs are
> and sell your value based on specific
> >>>>> > expeience. Not just that you have
> 3 or 6 yrs PHP. What did you
> >>>>> > do/work on in
> >>>>> > that time. We are people- and not
> to be purchased like off the shelf
> >>>>> > items
> >>>>> > in a grocery store- last I check
> I couldn't buy a 6 pack of PHP with
> >>>>> > a loaf
> >>>>> > of MSQL and a bag of Zend.- ;-)
> >>>>> >
> >>>>> > Sent via BlackBerry by AT&T
> >>>>> > ------------------------------
> >>>>> > *From: * ransom1538 <[address removed]>
> >>>>> > *Date: *Wed, 27 Jan[masked]:26:52
> -0500
> >>>>> > *To: *<[address removed]>
> >>>>> > *Subject: *Re: [php-139] skills
> of a programmer
> >>>>> >
> >>>>> > In my humble opinion:
> >>>>> >
> >>>>> > Junior: someone right out of
> school, who may have one or two years
> >>>>> > experience
> >>>>> >
> >>>>> > Mid level: anyone over three or
> so years experience with solid
> >>>>> > development
> >>>>> > experience, but hasn't had a
> chance to lead a team
> >>>>> >
> >>>>> > Senior: people able to run and
> lead three or more developers,
> >>>>> > experienced
> >>>>> > in delegating
> >>>>> >
> >>>>> >
> >>>>> > On Wed, Jan 27, 2010 at 10:09 AM,
> james <[address removed]>
> wrote:
> >>>>> >
> >>>>> >> so, after all the rate
> discussions of late, i started thinking about
> >>>>> >> what
> >>>>> >> constitutes the different
> levels/pay-scales of a programmer.
> >>>>> >>
> >>>>> >> can someone describe the
> skill set of a 'junior programmer', a
> >>>>> >> 'mid-level'
> >>>>> >> and 'senior level' --other
> levels/statuses that i'm not mentioning?
> >>>>> >> ?putting
> >>>>> >> this in terms of PHP would be
> nice since this is a php group but
> >>>>> >> describing
> >>>>> >> languages known, capabilities
> within known languages, etc would be
> >>>>> >> really
> >>>>> >> helpful and interesting to
> me.
> >>>>> >>
> >>>>> >> thanks everyone!
> >>>>> >>
> >>>>> >> ? james.
> >>>>> >>
> >>>>> >>
> >>>>> >>
> >>>>> >>
> >>>>> >> --
> >>>>> >> Please Note: If you hit
> "*REPLY*", your message will be sent to
> >>>>> >> *everyone
> >>>>> >> * on this mailing list ([address removed])
> >>>>> >> This message was sent by
> james ([address removed])
> from The San
> >>>>> >> Francisco PHP Meetup Group
> <https://www.sfphp....;.
> >>>>> >> To learn more about james,
> visit his/her member
> >>>>> >> profile<https://www.sfphp....;
> >>>>> >> To unsubscribe or to update
> your mailing list settings, click
> >>>>> >> here<https://www.meetup...;
> >>>>> >>
> >>>>> >> ?Meetup, PO Box 4668 #37895
> New York, New York[masked] |
> >>>>> >> [address removed]
> >>>>> >>
> >>>>> >
> >>>>> >
> >>>>> >
> >>>>> >
> >>>>> >
> >>>>> > --
> >>>>> > Please Note: If you hit
> "*REPLY*", your message will be sent to
> >>>>> > *everyone*on this mailing list (
> >>>>> > [address removed])
> >>>>> > This message was sent by
> ransom1538 ([address removed])
> from The
> >>>>> > San
> >>>>> > Francisco PHP Meetup Group <https://www.sfphp....;.
> >>>>> > To learn more about ransom1538,
> visit his/her member
> >>>>> > profile<https://www.sfphp....;
> >>>>> > To unsubscribe or to update your
> mailing list settings, click
> >>>>> > here<https://www.meetup...;
> >>>>> >
> >>>>> > ?Meetup Inc. PO Box 4668 #37895
> New York, New York[masked] |
> >>>>> > [address removed]
> >>>>> >
> >>>>> >
> >>>>> >
> >>>>> > --
> >>>>> > Please Note: If you hit
> "*REPLY*", your message will be sent to
> >>>>> > *everyone*on this mailing list (
> >>>>> > [address removed])
> >>>>> > This message was sent by emily
> blanchard ([address removed])
> >>>>> > from The
> >>>>> > San Francisco PHP Meetup Group
> <https://www.sfphp....;.
> >>>>> > To learn more about emily
> blanchard, visit his/her member
> >>>>> > profile<https://www.sfphp....;
> >>>>> >
> >>>>> > To unsubscribe or to update your
> mailing list settings, click
> >>>>> > here<https://www.meetup...;
> >>>>> >
> >>>>> > ?Meetup, PO Box 4668 #37895 New
> York, New York[masked] |
> >>>>> > [address removed]
> >>>>> >
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> --
> >>>>> Please Note: If you hit "REPLY", your
> message will be sent to everyone
> >>>>> on this mailing list ([address removed])
> >>>>> https://www.sfphp....
> >>>>> This message was sent by Mike Arace
> ([address removed])
> from
> >>>>> The San Francisco PHP Meetup Group.
> >>>>> To learn more about Mike Arace, visit
> his/her member profile:
> >>>>> https://www.sfphp....
> >>>>> To unsubscribe or to update your
> mailing list settings, click here:
> >>>>> https://www.meetup...
> >>>>> Meetup Inc. PO Box 4668 #37895 New
> York, New York[masked] |
> >>>>> [address removed]
> >>>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> --
> >>>> Please Note: If you hit "REPLY", your
> message will be sent to everyone
> >>>> on this mailing list ([address removed])
> >>>> This message was sent by james ([address removed])
> from The San
> >>>> Francisco PHP Meetup Group.
> >>>> To learn more about james, visit his/her
> member profile
> >>>> To unsubscribe or to update your mailing
> list settings, click here
> >>>>
> >>>> Meetup, PO Box 4668 #37895 New York, New
> York[masked] |
> >>>> [address removed]
> >>
> >>
> >>
> >>
> >>
> >> --
> >> Please Note: If you hit "REPLY", your message will
> be sent to everyone on
> >> this mailing list ([address removed])
> >> This message was sent by ambert ho ([address removed])
> from The San
> >> Francisco PHP Meetup Group.
> >> To learn more about ambert ho, visit his/her
> member profile
> >> To unsubscribe or to update your mailing list
> settings, click here
> >>
> >> Meetup Inc. PO Box 4668 #37895 New York, New York
>[masked] |
> >> [address removed]
> >
> >
> >
> >
> > --
> > Please Note: If you hit "REPLY", your message will be
> sent to everyone on
> > this mailing list ([address removed])
> > This message was sent by james ([address removed])
> from The San Francisco
> > PHP Meetup Group.
> > To learn more about james, visit his/her member
> profile
> > To unsubscribe or to update your mailing list
> settings, click here
> >
> > Meetup, PO Box 4668 #37895 New York, New York
>[masked] |
> > [address removed]
>
>
>
> --
> Please Note: If you hit "REPLY", your message will be sent
> to everyone on this mailing list ([address removed])
> https://www.sfphp....
> This message was sent by Alan Puccinelli ([address removed])
> from The San Francisco PHP Meetup Group.
> To learn more about Alan Puccinelli, visit his/her member
> profile: https://www.sfphp....
> To unsubscribe or to update your mailing list settings,
> click here: https://www.meetup...
> Meetup Inc. PO Box 4668 #37895 New York, New York
>[masked] | [address removed]
>
>