http://www.perlmonks.org?node_id=180005

Scenario one:

Two programmers are set a task to construct a program to do X. Its 4pm Friday evening. The program is required for a demo Tuesday.

Programmer A, grabs the manuals, reads the spec, constructs a psuedo-code version. Takes the manuals home, and pours over them. Spend his weekend testing individual constructs, refining his design. returns to work on Monday morning with a clear plan of action. Sits at his workstation and starts coding...

Programmer B goes out Friday evening. Spends his weekend with his wife and kids. Returns Monday morning with nothing but his thoughts. Sits down at his workstation, hits Google a searches for something that fits the spec. Finds something close, downloads the source. Opens the source, tidies up the layout. Adjusts a few comments. removes some bits that are redundant, adds a few bits that are missing. Refines a few bits that don't work the way he thinks they should....

By Monday evening, both have a working program that satisfies the spec.

Who did the better job?


Scenario 2.

Two school children are set a task of doing X. Last lesson of the day on Friday afternoon. Assignment to be completed by Tuesday AM.

Child A Takes home his notes and the studies hard. By Tuesday morning he has his assignment completed. The program does what is required. Maybe clunky in places, and he couldn't quite get the output to match that specified, but its almost there.

Child B. Has a great weekend with his mates and his family. Logs on to the internet Sunday evening. Does a Google and finds PerlMonks.com. Asks his question, gets a reply... tries the code. Almost what he needs. Chops a few bits out...adjust the output to suit...screws up the code he was given a bit and asks another question and gets that sorted out. By Tuesday morning, he also has a program that works and fits the teachers requirements. (One of which was: Use no modules!)

Who did the better job?


Did you think Programmer B showed initiative but that Child B cheated?

Replies are listed 'Best First'.
(MeowChow) Re: Initiative or otherwise?
by MeowChow (Vicar) on Jul 07, 2002 at 21:04 UTC
    What are you getting at?

    These scenarios do not really warrant comparison because they have entirely different goals. The goal of scenario one is to complete a task, and anything learned in the service of this goal is a "fringe benefit". The goal of scenario two, on the other hand, is learning, and the completion of the actual assigned task is merely a means to this end.

    So while reinventing the wheel may be a necessity for learning, it's an impedement to efficient and correct implementation of a task. You're comparing apples and orangutans.

       MeowChow                                   
                   s aamecha.s a..a\u$&owag.print
Re: Initiative or otherwise?
by cjf (Parson) on Jul 07, 2002 at 18:55 UTC
    Did you think Programmer B showed initiative but that Child B cheated?

    It depends:

    1. Did Programmer B comply with the licensing terms of the source code he downloaded?
    2. Was the source code of equal quality to the code written by Programmer A?
    3. Was the code meant to just get a job done, or was its purpose to improve the programmer's skills as well?

    One thing is fairly clear, The As will have learned more than the Bs. Come next assignment we'll see who does the better job. I believe The Path to Mastery touches on this as well.

      One thing is fairly clear, The As will have learned more than the Bs. Come next assignment we'll see who does the better job.

      I can't believe you have a link to Gatto on your homepage but still post this.. this.. thing regarding education. I apologise, but you've hit one of my buttons so here we go... before you read further, note that these comments are not directed to any one person. I'm not bagging anyone out.

      Kids, nothing is a bigger damned lie than the idea that you have to work really hard to gain knowledge. It's a fallacy started by twits and repeated by people who should know better. There is no reason why you can't learn by reading over someone elses work. You don't have to do every single bit yourself.

      There will always be people who tell you that you won't succeed unless you do every problem at the end of the chapter, or the people who tell you that you have to program everything yourself to improve your programming skills

      But the people who do every problem in the textbook are often the people who come third in exams, or the 'next assignment', behind the people who live and breath the subject. And the people who program everything themselves are often the ones who turn out loads of dross and make stupid buffer overflow errors.

      Please dump this very puritan attitude towards work. The road to success is not long and hard. It's long and filled with fascinating and beautiful experiences - unless you stop to flagellate yourself with every problem in the back of the chapter.

      ____________________
      Jeremy
      I didn't believe in evil until I dated it.

        Kids, nothing is a bigger damned lie than the idea that you have to work really hard to gain knowledge.

        Well that depends on how you define hard work.

        There is no reason why you can't learn by reading over someone elses work. You don't have to do every single bit yourself.

        Depends on how you learn. I've always found that I can read many books on a topic, read over source code, but then when I go to apply it I realize I don't really understand it.

        Please dump this very puritan attitude towards work. The road to success is not long and hard. It's long and filled with fascinating and beautiful experiences

        Who said programmer A didn't enjoy programming? Who said he didn't want to take his work home?

        Update: I should also clarify, with regards to the "The As will have learned more than the Bs." comment, I'm assuming everything else is equal. Obviously if programmer B reads 6 books and writes 10000 lines of unrelated code, he'll probably have learned more.

        I think that while programming is a science, a good programmer is more artist than scientist. Knowledge in and of itself is fairly useless. It's the application of it that yields the rewards, the craftsmanship if you will.

        I don't think that knowing that something works is the same thing as why it works. You can't understand why the design was done the way it was or if it's an optimal solution or even if it will work in the "real world" application.

        I truly belive you learn more from your failures than your successes. Sometimes the "B" approach is totally appropriate though "A" types, with their overall knowledge of the subject will (eventually) be in a much better position to leverage the "B" approach effectively than the "B" types (Also know when not to). Knowing how the pieces fit together, how they might not often without doing any actually work.

        This very much reminds me of several recent events in my life, that while not in the programming field bear much resemblance in my mind. I'll tell you one.

        Example 1. A registered nurse goes to a hospital with pains in her gallbladder. She sees this everyday so she is very familiar with the presentation of it. Many hospitals in Boston are teaching hospitals so you get a lot of "B" care. Interns don't have much practical experience. Mostly what they "learned" by reading. Hospital 1 says it can't be a gallbladder problem because so and so enzyme isn't elavated. She goes to another, and another and another. All of the hospitals refuse to remove it due to what they "learned". Finally, the fifth hostpital (a non-teaching) takes her and her gallbladder disintigrates as they remove it because it is so badly infected. Due to the delay because of hospitals 1..4 she gets complications and has liver failure. Luckily this ended well. While most of us are not in such dire positions of responsibility (mostly time and money to lose) I think it does well to illustrate my point.

        As an aside, I never did the examples in the back of the books.

        -Lee

        "To be civilized is to deny one's nature."
Re: Initiative or otherwise?
by dws (Chancellor) on Jul 07, 2002 at 21:44 UTC
    Let's bring scenario one closer to home by changing
    Sits down at his workstation, hits Google a searches for something that fits the spec. Finds something close, downloads the source. Opens the source, tidies up the layout. Adjusts a few comments. removes some bits that are redundant, adds a few bits that are missing. Refines a few bits that don't work the way he thinks they should.
    to
    Sits down at his workstation, searches CPAN for a package that implements the spec. Finds something close, downloads it. Adds wrapper to subclass the package to add a few bits and refine a few others that don't work they way he thinks they should.
    Did programmer B do a better job than programer A? In terms of how well tested the result is, probably yes. Programmer A won't have had time to fully debug one day's worth of work, while programmer B is leveraging a tested module, leaving him/herself more time to test the result.

    Did you think Programmer B showed initiative but that Child B cheated?

    As phrased, yes. But this is a trick question. A school assignment is not the same thing as a professional assignment. People who can't tell the difference make a lot of extra work for themselves.

      Let's not redefine things that way.

      Programmer B is described acting like legions of people who needed something, found a starting point on Matt's Script Archive, and proceeded from there. My guess is that their average output has the same quality as most people who think that cheating is OK. I have similar opinions of both groups...

        I definitely agree.

        I have to caution that we do not have enough information to make an informed call on the skills of programmer B - neither as far as his abilities as a programmer are concerned nor about his ability to judge the quality of the downloaded code. Nor do we know how critical the task was and how acceptable a sloppily coded solution might be in this case.

        But I feel that in practice, people who take this approach are cargo cultists far, far more often than not.

        Not reinventing wheels is a good mindset, but it requires being able to tell round wheels apart from square ones. Many people quite simply lack the experience and expertise to do so. That is why places like the CPAN are so important.

        Generally, scenario one is much harder to judge than scenario two, irrespective of the fact which has already been pointed out that the goals differ.

        Makeshifts last the longest.

Re: Initiative or otherwise?
by ehdonhon (Curate) on Jul 07, 2002 at 18:50 UTC

    In Scenario 1, my first thought is.. "Why are the programmers competing, they should be working together". But, I realize that isn't the point. I like programmer B's solution right up to the point he started cutting out the comments. If he's trying to pass off somebody else's work as his own, then I would say yes, he is cheating just as Child B is cheating.

    On the other hand if neither programmer B or child B attempt to pass off the work they discovered at completely their own, then I would argue that neither of them cheated, and did actually show initiative.

    Finally, if the parameters for task X state that the work has to be 100% of their own doing, then you could argue that neither programmer B nor child B actually achieved the requirements. I still don't think that's cheating, its just failing to do what you had to do...

Re: Initiative or otherwise?
by atcroft (Abbot) on Jul 07, 2002 at 21:17 UTC

    First, I think this is quite a thought-provoking post, and ehdonhon, cjf, and MeowChow, make valid points above (which I would lessen by repeating).

    Part of the difference between the two scenarios is that an assignment such as in scenario 2 is almost always designed to give the two children an almost real-world way to test what they have learned. It has been my experience that until one reaches collegiate-level programming classes, team programming is a rarity.

    In scenario 1, however, it is most likely that the two programmers were not given the task as, "learn how to do X by Tuesday, and you'll get your grade on Wednesday," but more often, "can you find a way we can do X," where a solution will be evaluated based on how well it does the job, licensing issues, and benefits vs. work involved for installation and maintenance (besides which, "use no modules" would likely NOT be so much a requirement as limiting system downtimes and disruptions).

Re: Initiative or otherwise?
by Anonymous Monk on Jul 07, 2002 at 23:10 UTC
    The biggest failing I see with programmer B is his careless attitude in putting off everything until Monday morning, which is risky with a Tuesday deadline. Had his Monday morning search not turned up a suitable existing wheel he may well have missed the deadline. I'd rather hire programmer A and teach him to incorporate searching for prior art into his current plan and design phase. Programmer B seems to have a sloppy attitude even if he got the work done this time. Now, had B done the google search Friday evening, found a suitable candidate, determined he could use it to easily finish the demo on Monday, then that is a different scenario altogether. Of course, if Tuesday deadlines are often given at 4pm Friday without consultation, perhaps both A and B should invest some time in seeking out other employment opportunities.
      The biggest failing I see with programmer B is his careless attitude in putting off everything until Monday morning, which is risky with a Tuesday deadline.

      I would hesitate to call choosing to spend time with one's family on a weekend "careless" without having a lot more information in hand. We don't know, given the information provided, how risky (or imporant) the deadline was.

        Amen.

        I think as I get older I appreciate B's more than A's, only as far as his attitude of putting it off till Monday. Very few "demos" -- or jobs for that matter -- are worth a missed weekend with family in the great scheme of things.

        Personally, my reaction on Friday at 4pm would have been to spend 30 minutes, even staying a wee bit late, doing a rough guesstimate of how long the task would take. (Any 1 or 2 day job can be first-approximated in half an hour by a skilled programmer.) If it would have taken *well* more than a day, I would have immediately stated such and told whoever ^* scheduled the "demo" to reschedule or get creative in their approach (mock-ups, artwork, flip-charts, handwaving, etc...) and offer to assist in scaling down the problem on Monday or other suggestions.

        If it could be done in a day or so -- went home and enjoyed the weekend.

        I may be jaded but wherever possible I advise against A-type heroics on the part of programmers, and strictly forbid the expectation of it from more senior management. It does extensive harm to the company, project, and the programmer in the long run. I've got a long lecture on the topic, but that'd be preaching to the choir here I think.


        <salesrant> ^* The word "demo" implies "sales" of some kind. The pressure to give up one's weekends and engage in super-human efforts for the company's sales survival are tremendous indeed. Still I refuse, and comfort myself in the notions that 1. Poor planning on his part does not constitute an emergency on mine; 2. Sales is a high-turnover position in the first place their *personal* investment in the customer (or the company) often stops when the commission check is cashed; 3. The salesperson (or by his proxy) expressing the dire need to the software department is an expert in sales, this is just a different kind of pitch (work late!) to a different customer (you!); 4. If a salesperson *did* plan and allocated time for the demo to be crafted and yet either grossly misunderstood the nature of the problem or failed to consult those that did to the point that his sales demo was jeopardized should probably be allowed to fail and this performance noted to other management as an indication of incompetance as a salesman, inconsiderateness as a "team member", and possibly not understanding the product he's selling nearly well enough to hold the job he does...but might not for long. </salesrant>
Re: Initiative or otherwise?
by ignatz (Vicar) on Jul 07, 2002 at 23:49 UTC
    Did you think Programmer B showed initiative but that Child B cheated?

    Yes. The programmer's goal was to get the job done. The children's goal was to learn.

    Who did the better job?

    Programmer B did because he used his knowledge to improve on something that already was and saved lots of time in doing so. Child A did because he learnt how to solve a problem for himself as opposed to getting someone to do the work for him.

    ()-()
     \"/
      `                                                     
    

      Assuming Programmer A and Programmer B are equally skilled to begin with, the situation following the project would be as follows:

      • Programmer A would have improved his programming skills more than Programmer B.
      • Programmer A would know his resulting code better than Programmer B would know his.
      • Programmer A's employer wouldn't have to worry about licensing issues.

      The argument in favor of Programmer B is based on the myth that existing code is somehow superior to your own. This is a very dangerous assumption, look no further than MSA for examples.

        Your arguement ignores the power of open source software. Yes, it is true that Person A has built code that he understands better than the code that person B has modified, but that is only true for the person who has authored the code, not for anyone looking at or using it in the future.

        By reusing/improving upon something that already exists, Person B has a code base tested by users from around the world. By contributing back to the code base he insures that his code changes will get also get that testing. Since his code ties into the open source commons, his company can now leverage the communities knowledge base and as the codes tree matures, gives them access to free upgrades in the future.

        If a programmer brought to me a library that duplicated something that I knew already existed in open source, I would ask him why I am paying him to reinvent the wheel. Such an activity may be interesting for the programmer, but it is pure folly from a business perspective.

        Yes, it is true that there are times when the solutions available are weak and a good programmer can do it better, but such times are rare, and need to be carefully considered before the path is embarked upon. A solution to things already considered is a fragile flower with little chance of survival even when built by the best of programmers.

        We all stand on the shoulder's of giants. What better than to help everyone get a little higher?

        ()-()
         \"/
          `                                                     
        
        "The argument in favor of Programmer B is based on the myth that existing code is somehow superior to your own..."

        Well, i don't necessarily disagree with that, but .. "The program is required for a demo Tuesday."

        So sure, A will have improved some kind of skill - but there is an equal chance that that that skill will be thrown away with the demo. Besides, how can one say that B doesn't already have that skill and realizes that her/his time would be better spent with the family?

        Say that the program is not for a demo - well, any serious application is going to need more than a weekend to just hack together. Shops that don't realize this are doomed to spend endless hours debugging and recoding mistakes that could have been avoided by proper research and design - proper skills that i'll bet that B is familiar with. ;)

        But, we have digressed away from the original question, which was basically what is the difference between cheating in school and using existing code on the job. I'd tell you my opinion on this, but i would just be repeating what MeowChow has already excellently said.

        Update re: reply:
        I only said that because i speak from experience. I have written demo's that were never used and i have not completely forgotten any learned skills - but i didn't waste my time by re-inventing wheels that would end up in /dev/null either. ;) (that that that ... gotta work on my grammar). Oh, and give yourself a year - you will forget more than you credit yourself for remembering. I know i sure ... what's that word?

        jeffa

        "I drank what?"
        --Socrates
        As far as your first point, maybe. Some tasks are just linear. Many jobs I've done are equivalent to manual labor. Doing more or less the same thing over and over. These types of jobs don't expand your horizons much. As far as licensing issues, unless the results are going to be available to the public in some form, I suspect most people don't even read the license.

        That being said, I'm more or less a Type A.

        -Lee

        "To be civilized is to deny one's nature."

      I don't know about the saved time part. He saved time for himself, sure. How did it make any difference on the end result? Both were done around the same time.

      Like cjf++ I also don't buy the notion that existing code is necessarily better than your own. Safe for CPAN, I have come to assume any Perl source on offer for download is likely to be awful, and so far practice has shown me only few exceptions to this rule.

      Makeshifts last the longest.

        The notion of time saved stems from the scenario of the original post. If the situation had begun at the beginning of the week, that would be time spent solving other issues important to the business. Any company that spends it's time solving things already solved will have a short lifespan.
        ()-()
         \"/
          `                                                     
        
Re: Initiative or otherwise?
by Marza (Vicar) on Jul 07, 2002 at 22:43 UTC

    As with most questions, "it depends" The others have covered it pretty well but this is my .02.

    Programer A and B are just about the same in this scenario. As long as B did not violate licensing or plagerise; did he do anything wrong?

    Programmer A could also take much longer on assignments or may even burn out if he needs to do that all the time. As long as the job does what it is supposed to do and is maintainable by others; it is a good program.

    As to the students. Well each learns in their own way. A question for student A is why didn't he ask questions as the due date was closing in? Now if B gets better each time he does an assignment....

    A question: Does school make you a programmer or does school teach you some struture and mainly syntax?

Re: Initiative or otherwise?
by chromatic (Archbishop) on Jul 08, 2002 at 03:10 UTC

    Count me in strongly with clintp on this one. If programmer A's employment agreement doesn't require him to work weekends, I consider him insufficiently lazy.

    I've been in both situations. In a salaried position where overtime is not expected, I don't work that way. A company can convince me to do the programmer A thing exactly once, in a situation of sufficient need. After that, it's a symptom of a poor development process, and it needs to be addressed. If that involves reeducating management, so be it.

      If programmer A's employment agreement doesn't require him to work weekends, I consider him insufficiently lazy.
      It all depends of course. I've worked for several employers that were quite flexible with working hours - in that case, I don't mind being flexible as well. I don't mind working a day in the weekend if that means I can take a weekday off, or work two half days instead of two full days.

      Abigail

      Given only the information in the post it seems prudent to assume that both A and B are roughly equivelant in skill level, and that neither have additional research on the matter (why bother comparing the efforts of A and B if you're allowed to fudge in that B is a better programmer and so knows he can do it faster, or you fudge in that B already knows of a partial solution and so knows he can do it faster with that as a basis). All we know is that both heard and accepted the assignment, that A jumped right into research and design and ignored the possibility of pre-existing solutions and wrote it in three days. B blew it off completely until Monday without looking at anything. Presuming relatively equal skill sets it would take B roughly three days to do it on his own just as for A. B banked everything on finding a suitable existing solution to modify at the last minute. A fairly sloppy attitude in my opinion, and something that is likely to be harder to correct than teaching A the value of prior art.

      On the other hand, I happen to agree with both chromatic and clintp that Friday 4pm assignments with Tuesday deadlines is first and foremost a problem in management. Which is why I said that both A and B should be considering other employment.

Re: Initiative or otherwise?
by Abigail-II (Bishop) on Jul 08, 2002 at 09:46 UTC
    Scenario 1

    This is a pretty unlikely situation. One day of coding from scratch, and then give a demo? A demo is usually given for far larger programs than can be done in one day. I'd favour programmer A, as programmer B just gambles that he can find something suitable on the web (in the sense that not only should something be out there, but it should also be written clear enought that he can make the necessary adjustments in a day - the latter is far less likely than the former) but then, he basically starts on it the next (working) day. Programmer A probably understands the specification better than programmer B. But as I said, this is a pretty unlikely situation, so it's hard to give judgement.

    Scenario 2

    Child A did a far better job. Assignments aren't given so the teacher has something to show to a client or the headmaster. Assignments are given for the sole purpose of the child - the get the child to learn. Child A learned far more than child B. Child A now knows how to tackle the problem, child B just knows where to run to.

    Abigail

      Abigail,
      I have read your posts for quite some time and am usually impressed, but I think you missed this one.

      Scenario 1 happens all the time, salesman walks in says demo on Tuesday, oh by the way we need to show the program works with xyz (database, printer, pda, browser, server - take your pick) which of course has never been done before.

      Scenario 2, we don't know the assignment, so we can't judge, if the assignment was to write a program that calculates gas mileage, Child A did learn more, if the assignment was bring in a program that will calculate gas mileage, Child B showed great insight into looking for an outside solution.

      From the questions posed it is hard to determine who did best. If scenario 1 goal was successful demo, both programmers paid on salary (no overtime), it was a wash, both spent Monday (business time) and the demo worked, thus success. If they are paid hourly and the one programmer got paid overtime, the other didn't, management will like programmer B better, I could probably be happy as either programmer in that situation. What is interesting in this example is if the demo is on Thursday and the assignment made on Monday. So no personal time is impacted.

      g_White

Re: Initiative or otherwise?
by snafu (Chaplain) on Jul 08, 2002 at 06:30 UTC
    Before reading everyone elses' replies I will give my .02 cents.

    First:
    Did you think Programmer B showed initiative but that Child B cheated?

    There are parameters that I am going to assume to answer this question. In short, I feel that the child cheated simply because of one of my assumed paramters that he passed off others' work as his own which is plagiarism(sp?). I doubt that child B placed the names of the people whose code he used in his project.

    I think both children showed initiative, really. They just showed different kinds of initiative. Child A definitely got more out of his effort than Child B.

    Now, on to the programmers. In a professional environment programmer B did nothing different than what a lof of programmers do. The old cliche, "Don't re-invent the wheel" is used as justification. Also, the employer rarely cares how the project is done as long as the specs are fulfilled by the deadline. Most programmers who have an incling of honor give credit where credit is due within the comments of their code, including me. Programmer A will probably have gotten more out of his work, though. Programmer B definitely cut corners. Some would place him on a pedastal for his creativity. This is definitely a debatable subject. I think both should get credit; different kinds of credit, however. I have more respect for programmer A for putting his time, heart, and sweat into his work. If I were an employer, I'd be more interested in Employee A.

    In short, the scenarios are not equal. The school has specific parameters for children to do their work (one of my assumptions) that, if not fulfilled, the work is incorrect. Employers have less stringent paramaters thus making the scenarios unequal in comparison. However, if the employer scenario had the same parameters as the school scenario then I would agree that Employee B cheated to get his work done and vice versa if the school scenario had a more relaxed set of paramters equaling that of the employer then child B certainly would not have been considered cheating.

    _ _ _ _ _ _ _ _ _ _
    - Jim
    Insert clever comment here...

      I have more respect for programmer A for putting his time, heart, and sweat into his work. If I were an employer, I'd be more interested in Employee A.

      If I were an employer, I might favor a worker who would drop their weekend plans to prepare for a demo on short notice. Would I care whether they'd written the entire demo themselves, or that they'd used other code as a starting point? No, I wouldn't. Getting it done by Tuesday is good enough.

      I'm not an employer, but I have been a manager. As a manager, I would notice that B outperformed A, on the task of preparing a demo, by 3:1. If the call for action had come on 4pm on a Monday, B would be ready by Wednesday, while A was still pouring over manuals. And don't discount the possibility that B learns by looking over the code he's downloaded.

      People who believe that have to do it all themselves, even if they're learning while doing it, are not necessarily people I want on my teams. They tend to view everything as a personal test, and don't work well with others.

        ...not to mention the fact that on Monday morning programmer A will probably be more stressed and frustrated, less relaxed and positive-looking (and thus less productive in the end) than programmer B ;-)

        cheers,
        Aldo

        __END__ $_=q,just perl,,s, , another ,,s,$, hacker,,print;
        Thus proving my point about what the employer cares about. On the other hand, on a personal level which would you have more respect for?

        Frankly, I don't mind either one. Even as a manager I'd probably take either one. However, if I had to go to one or the other (supposing both are on my team) for some kind of difficult task with no deadline I'd probably go to A. I'd have more respect for A as a pure troubleshooter, though.

        B *could* get your company in trouble. If B slapped together some program with other peoples' code and that code got out to the public and by happen-chance that code was recognized by someone who knew who the author was and there was no credit in the program toward that original author *and* there was a copyright on that code....whoops; lawsuit. And not only a lawsuit but a lawsuit against your company. Now how valuable was employee B? Heh, of course, this is far-fetched (there were a lot of "and"s in my example). But its possible. Shoot, people get hit by lightning! :)

        Admittedly, I am arguing for the sake of arguing, now. However, I don't totally agree with your final statement. You are being very generalistic and I would agree with you if your statement were more narrow pointing. I think you are right till you state they tend not to work well with others. That is simply too broad of a statement for my comfort. Everybody on my team is the kind of person who likes the challenge of solving problems with their own mind and work. I rarely see code from people here who don't write their own code originally. They are all quite easy to get along with except my manager...heh. The same goes for my co-workers of past employers. Im not saying you are wrong but in my experience I haven't seen a wide range of people fitting your statement.

        I am definitely more like person A than I am like person B. The reason? Well, everything is a challenge. What's more is that I get great satisfaction out of solving complex problems with my own mind. I am satisfied by creating something that people will be able to use, often. I take pride in my work. I like other peoples' work too...for the sake of learning. However, I still prefer to learn how to do things myself. I rarely cobble code together. If I do use code that isn't mine its a module from CPAN or some other "official" module or script. This way, I am not re-inventing the wheel but I am giving all the credit to the people who originally made that code available for my use.

        I suppose I am seeing this whole thing from a different eyeglass than you. I also believe that person A will be able to troubleshoot his work faster and more reliably than person B thus making maintenance (which is always necessary) something to consider in these scenarios.

        _ _ _ _ _ _ _ _ _ _
        - Jim
        Insert clever comment here...

Re: Initiative or otherwise?
by trs80 (Priest) on Jul 08, 2002 at 04:00 UTC
    It is more likely that the B's will suffer from their approach in the long term.

    However depending on the intent of the projects and lifespan the severity of that suffering will vary.

    Both methods are personality traits, there will be isolated incidents of exhibiting the other trait, but more then likely Programmer B is Child B all grown up.

    Now to anwser the specific questions:

    Who did the better job?

    No one. They all did what was expected of them, complete the task.

    Did you think Programmer B showed initiative but that Child B cheated?

    No. Child B didn't cheat and Programmer B didn't show initiative, they both completed a task in a way that was comfortable to them.


    PS

    In preparing my reply I struggled with the point of view aspect of the stories. If you are mentally aligned with the A method you will feel that the B's cheated, and if you are mentally aligned with the B's you will feel the A's wasted their time.
Re: Initiative or otherwise?
by BrowserUk (Patriarch) on Jul 09, 2002 at 05:53 UTC
    First I am staggered by the range and strength of opinion my post as aroused. This is my 4th attempt at answering my own question. My previous attempts were abandoned because they had either become rants against a particular response, or an inconclusive ramble, or both. This time I will attempt to structure my response in some fashion.

    What prompted the post

    Over the past few weeks I had seen several posts and CB chats revolving around "homework", including one where the AM questioner, was adjudged, probably through the standard of his English (a non-native, English speaker) to be a "kid" asking for help with his "homework". Amongst some of these was the allusion to "cheating". And finally, a response to a situation similar to that I posed as Scenario 2 in the Bootstrapping techies thread. I had also seen various responses to the "Use no modules" constraint, even to the extent of "Why don't you want to use modules?". Please note: If you recognise yourselves in any of this - I am not saying you are wrong. The thing that came out of this was that at various times I found myself on both sides of the same argument, and I tried to resolve why. I think I have done so. It all comes down to one word. Assumptions. We all make them, and sometimes we have to. Sometimes we shouldn't.

    My take on the responses

    Long boring, possibly controvercial waffle.

    Thank you for reading me.

Re: Initiative or otherwise?
by talexb (Chancellor) on Jul 08, 2002 at 13:33 UTC
    Scenario 2: Clearly the child that did the research did a better job, since the objective of education is the acquisition of knowledge, including the recursive knowledge of how to go about finding the stuff that you want to learn about (Google, the library).

    Scenario 1: A little tougher. Strictly on a code basis, I would favour the first programmer, even it burns me to hear (as it has other respondents here) that someone spent a weekend working up a demo instead of spending time with their friends or family. (Side note: I sure hope the manager who requested the demo on short notice gave Programmer A some time off in lieu. Sometimes business provides opportunities with short time-lines -- that's the way it is, folks.)

    On a knowledge basis (that means, could the progarmmer answer a knowledge-based question in a demo), Programmer A is way ahead, having studied the manuals in question and having written code from scratch. I don't think anyone could argue that they would know code that they'd downloaded and studied better than code they'd written themselves.

    Again, this is another "It depends" situation, since it could be that a large piece of the demo is covered by a mature CPAN module, and a wrapper is all that's needed.

    --t. alex

    "Mud, mud, glorious mud. Nothing quite like it for cooling the blood!" --Michael Flanders and Donald Swann

Re: Initiative or otherwise?
by pdcawley (Hermit) on Jul 09, 2002 at 07:45 UTC
    In the case of Programmer B, I rather think it depends on exactly how he 'adjusted' a few comments. If he's claiming credit for code he didn't write then oh by ghod he cheated. And in a big way at that. If he was just changing the comments to match the way he was using the code then yup, he used initiative.

    I don't really have a problem with Child B either. But it rather depends on attitude. We've all been pissed off by the kid who wants it on a plate, and rightly so. The kid who asks a question, uses the information given and then comes back for clarification is doing the right thing AFIAC.

    However, I offer a third scenario for your consideration:

    Children C & D receive the same assignment and, on Saturday night they get together, check CPAN and other sources for solutions to similar problems, then work together to produce some code that meets the requirements and hand in a joint project.

    In the real world, this is what I'd want to see happening. As well as learning about the problem (and background -- that's what the CPAN/Web research is about) the kids are learning/teaching themselves how to work as part of a team.

    Unless schools have changed drastically since I was a kid, I'm betting that C and D would be in big trouble for cheating...

      For my answers to your thoughts see this If your suffering from insomnia, this will cure it:^)

      With regard to Scenario 3. I 100% agree with you that it would probably be punished and that to do so is stupid. I never understood that even a child.

        "With regard to Scenario 3. I 100% agree with you that it would probably be punished and that to do so is stupid. I never understood that even a child."
        As a child I did not understand this either. Now that I am all grown up -grin- I understand quite a bit more about life and the nature of people.

        I was one of those kids that never had to study. I did not do my homework, I aced all the tests. It was great. I also tended to read a lot more than the other kids, and when I did have a project, I did it myself.

        Not all kids are like that. If a project is designed as a group project, part of the overall task is to learn to work together. When a teacher gives students assignments that are meant to be done individually the purpose is NOT to teach teamwork, but to encourage intellectual growth.

        Granted, in your 3rd scenario, the students that did the work together were very likely more advanced than the rest of the students, considering the use of cpan, etc. (there I go assuming again.. -g-) But they did RESEARCH. For this type of student, it probably is better. Unfortunately not all students are like this. Many would use it to cheat.

        The question then becomes, in the same class, is it fair to accept a project from some students in teams, but others must work individually? Nah.. at least not in the US. The teacher would be fired and the schoolboard sued....