4
$\begingroup$

I have a friend who, in his mind, has the wrong image about programming. Whenever I mention that programming is fun and that one can enjoy it very much especially if they like solving problems (both math and algorithm related), he stares at me and repeats "if this then do this.. what's so hard or fun about writing that?" and that's just annoying. It is as if one would say "ah well, maths.. 1+1 = 2 there u go!".

Is there a way I can make him paint a better picture in his mind regarding this field?

About 10 years ago when he was younger, he did try basic programming and that's what I believe he is basing his judgement on.

(Not sure if this is the right place to post this but let's see... )

$\endgroup$
1
  • 1
    $\begingroup$ Building a skyscraper is just "cut this, connect that." It's not the steps you take but the solution you create. Welcome to Computer Science Educators. I suspect the question is borderline, as written, but could be edited to be "in-scope". After all, many students may come to their first "computer" class with nearly the same notions. $\endgroup$ Aug 17, 2019 at 22:35

6 Answers 6

7
$\begingroup$

Obviously your friend is using a bit of hyperbole, and in truth, however annoyed you may be by his blithe dismissal of our entire field, he may not be open to being persuaded. You may have to resign yourself to not "winning" this argument. From what you've written, this is what I suspect is the real answer.

For what it's worth, he's not, strictly speaking, wrong. Data storage and branching are a huge portion of what computers actually do.

But if you still want to attempt to capture him, you might point him towards image recognition. Sure, it's "if this then do this" in theory, but two different images of birds will share not a single pixel in common, so how do you teach a machine that can only look at one pixel at a time to identify one?

"Computer Science is no more about computers than astronomy is about telescopes." -misattributed to Edsger Dijkstra

Of course, even if he concedes the complexity of the problem, that's still a ways away from seeing the joy in trying to solve it. I'm not sure there's truly a way from here to there if he's not interested in taking an honest look.

$\endgroup$
1
  • $\begingroup$ Creativity comes in many forms. Programming is just one of them. It seems pretty natural if a creative person in one field doesn't appreciate the creative impulse in another. $\endgroup$
    – Buffy
    Aug 19, 2019 at 12:24
2
$\begingroup$

What about music? A C white note on a partition means a specific frequency for a specific amount of time. And a partition is just a sequence of such commands.

Looks pretty dull to write such a thing, no ?

$\endgroup$
2
$\begingroup$

Depending on the person there may be different approaches, here are a few:

  • Listen to them, ask them to tell you about their experiences.
  • Tell them about your experiences (Don't work about difficulty, it is just a story).
  • Consider different programs that can be written, to solve a problem that they may have.
  • Solve a problem for them.
  • Puzzles: Show some programming puzzles.
    • Prove that you can write any program (is Turing complete), without conditionals (this also rules out recursion, except infinite). (I have done this)
    • Prove that you can write any program (is Turing complete), without iteration: You will need conditionals, and (at least tail) recursion.
  • Show alternatives to conditional code: tables (conditional data), polymorphism (Lizcov substitution),
$\endgroup$
2
$\begingroup$

I don't really think it's your job to convince your friend that programming is fun. But I'm going to answer because I think there are other situations where presenting the "fun" parts of computer science has benefits, e.g. when teaching an introductory class.

Focus on the end result rather than on the process.

Instead of focusing on the act of writing code and trying to paint that as a fun process, focus on the cool stuff you can create with code.

Which examples you use depends on who you're talking to. You might talk about creative coding or generative art. You might talk about game development or procedural generation. You might talk about artificial intelligence or healthcare or scientific simulations. You might talk about art, or sports, or dance, or music, or prose.

Show your audience examples of interesting things that were created with code. Then show them how to do it themselves.

See also: How to teach a person to enjoy programming?

$\endgroup$
0
1
$\begingroup$

Here's one that is recent (and in the news): Machine Learning.

Alpha Zero is a program developed to learn how to play chess based on only the rules of the game. It learns by playing games against itself and evaluating the positions and results of the game.

This is revolutionary and will change the face of how we interact with computer systems. Professional chess players are now learning from the games that Alpha Zero has played.

$\endgroup$
0
$\begingroup$

Sadly your friend sounds to be a product of current bad programming practices he probably also thinks that program is just about learning a language . so give your friend this problem to solve:

old fashioned phone keypad had letters to translate into numbers such that you have phone numbers like 1 800 call me so write a function that translates any letter into its corresponding number on the phone keypad without using any if statement (or switch,etc). ..

this is what real programming is about. using too many if statements is typically considered bad programming. sadly proper software engineering principles are being missed these days in order to turn programming into programming for dummies but many corporations still know the difference

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.