I think you have some great material and ideas here. Please ping this
list again when you've finished your post -- I've stopped checking the
site for updates.
I enjoy the anecdotal "things". For me, the book could have done with
more of these. Your story about resizing images rings very true. It's
a specific example of the general point you want to make, but I think
you should concentrate on the specifics, and allow the reader work out
the general point.
In other words, why not flesh out the story? I think it would fit the
97 Things format very well.
(Now you've mentioned it, I've remembered a similar tale from the code
face, which I must write up some day. It involved a developer, a Linux
post install script, and lots of DVDs ending up in the bin.)
Anyway, these are just my thoughts,
> --
> To view or edit your contributions, visit
> http://programmer.97things.oreilly.com
> To post to this group, send email to 97things-...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/97things-programmer?hl=en
>
> To unsubscribe from this group, send email to
> 97things-programmer+unsubscribegooglegroups.com or reply to this email with
> the words "REMOVE ME" as the subject.
>
--
Thomas Guest
http://wordaligned.org
--
The junior developer will hack away on live systems late at night to
add some new feature and then find out the next morning (afternoon?)
that his brain wasn't working that brilliantly at 3am causing the
system to crash. Of course no copies of the working version were
kept, so the users of his system are tearing their hairs out while the
programmer is trying to repair what he damaged.
The experience developer uses some version control system so that he
can allways find out what was changed by whom and why, and allows him
to retrieve olders versions of the software, should that be necessary.
JC
--
___ __ __________________________________________________________________
|/ \
| Jan Christiaan van Winkel j...@oreo.nl
__/ \__/ __________________________________________________________________
This is what I believe is the essential difference between a Junior programmer and a Sr. Programmer.Sr. Programmers not only believes they are fallible, they are certain they will make mistakes and so the Sr. Programmer takes precautions to limit the impact of those mistakes. The Jr. Programmer does not take these precautions.
On Tue, Mar 30, 2010 at 4:00 AM, Bill de hOra <bi...@dehora.net> wrote:A junior v senior distinction is a red herring.
Bill
Braithwaite, Keith wrote:
The experienced developer won't hack on live systems under any circumstances, nor do any work at 3 am.
________________________________________
From: Jan Christiaan van Winkel [j...@oreo.nl]
Sent: 29 March 2010 18:50
To: Timothy High
Cc: 97things...@oreilly.com; 97things-...@googlegroups.com
Subject: Re: [97things-programmer] Jr. vs Sr. Developers
There’s a 97 things blog?From: Michael Loukides [mailto:mi...@oreilly.com]
Sent: 30 March 2010 15:28
To: Richard Monson-Haefel
Cc: Bill de hOra; Braithwaite, Keith; Jan Christiaan van Winkel; Timothy High; 97things...@oreilly.com; 97things-...@googlegroups.com
Subject: Re: [97things-programmer] Jr. vs Sr. Developers
It's bad management that results in a programmer needing or wanting to work on a live system at 3 am. And bad programming to do it. An experienced (where the experience has lead to learning, anyway) programmer doesn't want to work on live systems at 3 am and won't do so if asked.
At which point the bad manager will fire the experienced programmer for not being a "team player".
But I do think it's characteristic of inexperience programmers that they don't mind so much hacking on live systems at 3 am. They might even think it up themselves. They just aren't the only bad thing about the situation.
Keith
________________________________________
From: John T Davies [Jo...@JohnTDavies.com]
Sent: 30 March 2010 10:39
To: Braithwaite, Keith
Cc: Jan Christiaan van Winkel; Timothy High; 97things...@oreilly.com; 97things-...@googlegroups.com
Subject: Re: [97things-programmer] Jr. vs Sr. Developers
To be honest I'd have to question the manager rather than the
programmer if anyone's working on a life system or at 3am and has no
SCM system. That wouldn't be a programming issue at any level, that's
crap management and that's usually where crap programmers end up.
-John- (on the road or in the air)
Tel. : +44 7770697272
http://www.johntdavies.com
Twitter: @jtdavies
Skype: john-davies
On 30 Mar 2010, at 08:59, "Braithwaite, Keith" <k...@zuhlke.com> wrote:
> The experienced developer won't hack on live systems under any
> circumstances, nor do any work at 3 am.
> ________________________________________
> From: Jan Christiaan van Winkel [j...@oreo.nl]
> Sent: 29 March 2010 18:50
> To: Timothy High
> Cc: 97things...@oreilly.com; 97things-
> Subject: Re: [97things-programmer] Jr. vs Sr. Developers
>
| Sure, in so long as you're not actually making the problem worse. Sometimes the quick short-term fix is a huge -1 in the long-term. Accrue enough -1s and the technical debt becomes impossible to break free from. You see this is all sorts of modern endeavors, for instance politicians making new laws each time something bad happens. Laws only work if people remember them and abide by their 'wisdom'. If there are too many, and they're not reasonable, then they are just gumming up the works instead of making things better. We live in a stupidly complex world that is only getting more stupidly complex. Paul. --- On Tue, 3/30/10, John T Davies <Jo...@johntdavies.com> wrote: |
|
To: "Paul W. Homer" <paulw...@gmail.com> |
Enthusiasm is a valuable trait though, inexperienced pragmatism over professional procrastination any day.
On 30 Mar 2010, at 15:35, Paul W. Homer wrote:
While this sounds like "slower and more cautious" it's not really...
more often that not, the "experienced" approach gets things done
right the first time, and when there is a problem, it causes less down
time.
Having said that, "years working" doesn't always map to to this kind
of self-reflection. (and some work environments reward the
late-nite-solo hero type of work style so people of all levels will be
practical and do what's rewarded....)
These are all generalizations of course :)
Steve
On Mon, Mar 29, 2010 at 12:50 PM, Jan Christiaan van Winkel <j...@oreo.nl> wrote:
> * Timothy High (timoth...@gmail.com) [100326 02:29]:
>> Can you think of any examples that clearly show the difference between how
>> an experienced developer and a junior one attacked a problem? I'm looking
>> mostly for anecdotes, but any information will do (especially if there are
>> in-depth studies out there). I'd like to get some very specific examples,
>
> The junior developer will hack away on live systems late at night to
> add some new feature and then find out the next morning (afternoon?)
> that his brain wasn't working that brilliantly at 3am causing the
> system to crash. Of course no copies of the working version were
> kept, so the users of his system are tearing their hairs out while the
> programmer is trying to repair what he damaged.
>
> The experience developer uses some version control system so that he
> can allways find out what was changed by whom and why, and allows him
> to retrieve olders versions of the software, should that be necessary.
--
Steve Berczuk | steve....@gmail.com | http://www.berczuk.com
SCM Patterns: Effective Teamwork, Practical Integration
www.scmpatterns.com
Anecdotally, the programmers I know who really embrace agile
(including the testing and refactoring practices and the philosophies
of transparency and being willing to fail) tend to be more willing to
try naive and simpler approaches... and sometimes they work.
I'm wondering if the "experienced v junior" dichotomy we're speaking
of is actually misleading....
Following up Michael's comment about how to discuss this and spread
the 97 things word, maybe Timothy should just blog something, and
anyone who has something longer to say can blog as well, and put that
link in a comment to the original?
--
I'm on this mailing list exclusively for the "97 Things Every Programmer
Should Know" book we all collaboratively wrote with O'Reilly and Kevlin
Henney.
I feel that this mailing list was created for news and information
pertaining to that effort. If I'm mistaken, I'll just unsubscribe - no
worries. Kevlin has email and I'm easy enough to locate.
Thank you.
Regards,
Jason P Sage
Jegas, LLC
9 West Road FL#1
Ellington CT, 06029
http://www.jegas.com - Home Page
http://www.jegas.net - Hosting, Domain Names, Email etc.
http://www.linkedin.com/in/jasonpsage - Linked-In Profile
860-871-6691 Home Office
860-338-4565 Mobile
This communication, including attachments, is for the exclusive use of
addressee and may contain proprietary, confidential and/or privileged
information. If you are not the intended recipient, any use, copying,
disclosure, dissemination or distribution is strictly prohibited. If you
are not the intended recipient, please notify the sender immediately by
return e-mail, delete this communication and destroy all copies.
-------- Original Message --------
Subject: Re: [97things-programmer] Jr. vs Sr. Developers
From: Greg Colvin <gr...@colvin.org>
Date: Tue, March 30, 2010 1:20 pm
To: 97things-...@googlegroups.com
What comes to mind first is the saying: "Good judgment comes from
experience, and experience comes from bad judgment."
So the problem when managing junior programmers is to keep their bad
judgment from damaging the enterprise, and in some of the anecdotes so
far I would not blame the junior programmer.
The upside of junior programmers is that they can't judge what's
impossible, and therefor do it sometimes.
E.g. some years back our team at Oracle had submitted plans to write a
just-in-time compiler for our Java system. The plans would have kept
most of our team busy for a year, and management said NO, Java
performance isn't worth that much to us. Then we hired a puppy. He
looked at our plans, saw a much simpler solution, and quietly
implemented it on his own time evenings and weekends. Thus rendering my
own work to speed up the interpreter useless...
On Mar 25, 2010, at 7:28 PM, Timothy High wrote:
Hey folks,I was just about to write a blog post off the top of my head
Corollary: Finding no humor in the last statement is a sign of a Junior developer.>+1 Bill i.e. 'A junior developer will try to find arbitrary criteria to create a misleading classification of developers, in that they always mysteriously end up on top' :)
As I've got email replies from someone who has taken my last response as a personal insult (I checked, they really did, so I apologized) then let me expand on why I think it's the exercise is a red herring. Disclaimer: If I disagree with you that doesn't mean I'm insulting you (see corollary above).I am personally uncomfortable with dividing people into classifications of junior and senior developers because often it comes down to a 'young vs old' set of observations where years of experience is the yard-stick. That may well be true (I'm old, so I'd think that), but is potentially divisive in that a junior developer can now not be taught what exactly makes the difference, other than years spent.Put another way, if we end up with 'when you're older' truisms that make what we do descend more to magic than practical processes, which veers too much towards the 'unteachable craft' than I'd prefer. (I am not saying here that all that was offered was truisms, just more an observations that classifications tend to end up that way).Someone bright and talented straight out of college should be able to be a senior developer, as I believe (or maybe want to make true) that what we do is based on pure talent and learning, and not mileage or dogma that can't be taught.As harsh as it sounds, it *is* true than any classifications do tend to be arbitrary and that it is nearly always the case that those making the rules tend to use themselves as the bar to pass. Junior sounds too much like an insult. I think it all comes down to this:PS The exercise is still fun to do though, despite my grumpiness.David IngOn Tue, Mar 30, 2010 at 9:26 AM, David Ing <davi...@gmail.com> wrote:+1 Bill i.e. 'A junior developer will try to find arbitrary criteria to create a misleading classification of developers, in that they always mysteriously end up on top' :)
David Ing
A junior v senior distinction is a red herring.
Bill
Braithwaite, Keith wrote:
The experienced developer won't hack on live systems under any circumstances, nor do any work at 3 am.
________________________________________
From: Jan Christiaan van Winkel [j...@oreo.nl]
Sent: 29 March 2010 18:50
To: Timothy High
Subject: Re: [97things-programmer] Jr. vs Sr. Developers
| I'd add "structure" into the second type of skills. At first coding is about getting some large set of instructions to run. Later, it is about getting them to run AND getting them to be easier to read. And even later, it is about getting them 'well-structured' so that it doesn't turn ugly when it grows. As one gains in experience, the context of the work and many of the desired attributes for the code grow as well. In-experienced programmers usually suffer from tunnel vision (and often hubris, since they think what they see is 'everything'). Paul. --- On Tue, 3/30/10, Dan Chak <d...@chak.org> wrote:
|
|
A common thing I've been seeing in class recently, and may write up if
I get a chance, is to do with algorithm design and IDEs. The IDE (with
"intellisense" or equivalent) will hint how to fix your code for
compilation, but this will often break a sensible algorithm. For
example:
createSocket(); // throws IOException
sendStuffDownSocket(); // throws IOException
can easily be turned into
try { createSocket(); }
catch ...
try { sendStuffDownSocket(); }
catch ...
sans keyboard with a few mouse clicks, and then if you can't create a
socket, you try to send data down it anyway. This is much worse when
your IO code is wrapped in a loop, as it will be in a server class.
:-(
Cheers,
Sarah
--
Sarah Mount, Senior Lecturer, University of Wolverhampton
website: http://www.snim2.org/
twitter: @snim2
This email, together with any attachment, is for the exclusive and
confidential use of the addressee(s) and may contain legally
privileged information. Any use, disclosure or reproduction without
the sender's explicit consent is unauthorised and may be unlawful.
Any e-mail including its content and any attachments may be monitored
and used by The University of Wolverhampton for reasons of security
and for monitoring internal compliance with the University's policy on
internet use. E-mail blocking software may also be used. The
University cannot guarantee that this message or any attachment is
virus free or has not been intercepted and amended.
If you believe you have received this message in error please notify
the sender by email, telephone or fax and destroy the message and any
copies.
Just to throw a small spanner into the discussion, in some fields progress
is made because the newbies just do not know that something cannot / should
not be done. So, they go ahead and do it, whilst the wise old heads advise
against. Thus progress (not all progress) is made. I am not sure if this
approach works at the micro level of the examples that I have seen so far in
this conversation (which have been limited to programming), but it does seem
to work in the sciences. Perhaps it is more applicable at macro-level...
producing things like Google etc?
George
Oak Lodge Consulting Ltd
20 Back Road
Linton, Cambridge
CB21 4JF
Tel: 01223-890390; Fax: 0870-7063077
VoIP: 01223-750016; Mbl: 07710-325818
This e-mail may contain confidential and/or privileged information. If you
are not the intended recipient (or have received this e-mail in error)
please notify the sender immediately and destroy this e-mail. Any
unauthorized copying, disclosure or distribution of the material in this
e-mail is strictly forbidden.
Kind regards
Niclas