Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re: Mining and war as a metaphor for programming

by GrandFather (Saint)
on Feb 11, 2017 at 22:45 UTC ( [id://1181764]=note: print w/replies, xml ) Need Help??


in reply to Mining and war as a metaphor for programming

Programming is a tool making profession, new age blacksmithing if you will. Sure, you can make tools to extract meaning from the world, but most of programming is more about getting everyday stuff done more easily, efficiently and accurately. Programmers more than anything else are problem solvers. People who figure out how to use a box of tools to build an edifice and ensure it is fit for purpose. It's about problem solving, but then most creative and destructive processes involve problem solving.

To the extent that war and mining involve problem solving, programming is like those. But war as an analogy to programming doesn't seem a very good fit to me. You might as well use a factory as an analogy, or politics, or any of a huge number of other metaphors which share the common objective of managing people with a common goal. Programming in and of itself has almost nothing to do with people management. In the war analogy programming is much closer to fighting, learning and applying a domain specific set of skills, than war which is much more about managing people and resources.

Premature optimization is the root of all job security
  • Comment on Re: Mining and war as a metaphor for programming

Replies are listed 'Best First'.
Re^2: Mining and war as a metaphor for programming
by Laurent_R (Canon) on Feb 12, 2017 at 23:20 UTC
    I absolutely agree with GrandFather++.
    Programmers more than anything else are problem solvers
    I couldn't agree more.

    The following is the very beginning of Chapter 1 of my coming book on programming in Perl 6, Think Perl 6 - How to think like a computer scientist (see New Perl 6 book coming out with O'Reilly), although, to tell the truth, this particular passage was not originally written by me, but my co-author, Allen B. Downey:

    The goal of this book is to teach you to think like a computer scientist. This way of thinking combines some of the best features of mathematics, engineering, and natural science. Like mathematicians, computer scientists use formal languages to denote ideas (specifically computations). Like engineers, they design things, assembling components into systems and evaluating tradeoffs among alternatives. Like scientists, they observe the behavior of complex systems, form hypotheses, and test predictions.

    The single most important skill for a computer scientist is problem solving. Problem solving means the ability to formulate problems, think creatively about solutions, and express a solution clearly and accurately. As it turns out, the process of learning to program is an excellent opportunity to practice problem-solving skills. (Emphasis in the original.)

Re^2: Mining and war as a metaphor for programming
by nysus (Parson) on Feb 12, 2017 at 00:53 UTC

    I guess it depends on whether you consider the end product of the programmer is the software's output or the code in the files the programmer writes. I'd argue the real value of software (and hence the programmer) is not the code itself, but what the code is capable of producing (meaning). I can write software that spits out garbage data but that doesn't make me a very valuable programmer.

    Sure, programming is problem solving. The problem trying to be solved is how to use the tools at your disposal to try to create meaning as efficiently as possible. In your analogy, you use an anvil, hammer and fire (compilers, computers, programming languages) to create horseshoes and nails (meaning). Anybody can bang a piece of metal with a hammer but that doesn't make them a blacksmith. They need to produce something that is actually worth something to other people (or at least to themselves).

    $PM = "Perl Monk's";
    $MCF = "Most Clueless Friar Abbot Bishop Pontiff Deacon Curate";
    $nysus = $PM . ' ' . $MCF;
    Click here if you love Perl Monks

Re^2: Mining and war as a metaphor for programming
by nysus (Parson) on Feb 12, 2017 at 01:13 UTC

    Programming has a lot to do with people management. You need to be able organize and direct them and provide them with the equipment and training they need to perform their jobs. It's certainly not as hard as convincing people to risk their lives in combat and getting them to follow orders, but without proper management and discipline, you will be hardpressed to accomplish anything. This is true even in small shops and even true of a single programmer. The difference is it's easier for programmers to be like generals and direct themselves.

    $PM = "Perl Monk's";
    $MCF = "Most Clueless Friar Abbot Bishop Pontiff Deacon Curate";
    $nysus = $PM . ' ' . $MCF;
    Click here if you love Perl Monks

Re^2: Mining and war as a metaphor for programming
by nysus (Parson) on Feb 12, 2017 at 01:01 UTC

    Sure, war is just one metaphor that could be employed. But the benefit of it is that it has the same kind of urgency and import as trying to uncover meaning.

    $PM = "Perl Monk's";
    $MCF = "Most Clueless Friar Abbot Bishop Pontiff Deacon Curate";
    $nysus = $PM . ' ' . $MCF;
    Click here if you love Perl Monks

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1181764]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others browsing the Monastery: (5)
As of 2024-04-23 20:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found