Overcoming a friend's self-discouragement [closed]

Before I turned 19 I just kind of... fell into coding. I used to think programming was something incredibly hard that only child prodigies and people with a 160+ IQ could do. (A view often reinforced by Hollywood stereotypes.) And I thought that I just wasn't smart enough.

Since getting into programming,${}^1$ I have learned that even a monkey could take up coding. (Seeing some code, it seems in fact, they do.) This is not evident to many outsiders, however.

I currently have a friend that is about to finish school and she has no idea what to do with her life. I am trying to encourage her to give coding a shot. I know she would be great at it as she's one of the smartest people I know, even if she won't believe it. Just like younger me, however, she thinks she's too dumb to have a chance at coding.

How do I convince her to give it a shot?${}^2$ What tools are there to show her it is much easier than it looks at a glance?

${}^1$I just kind of happened to get into coding via databases, but that is a rather unusual path to take and not one I would recommend to start out with.

${}^2$I don't want to pressure her into a career in programming; if she decides it's not for her, that's fine, but basic coding knowledge is surely not a bad skill to have.

• Hi Checkersquares, welcome to CS Educators! I'd just like to warn you that this question might spark some discussion because it's not explicitly about teaching computer science, it's about getting someone interested in learning. I personally like this question because motivating students is certainly a part of teaching. – thesecretmaster Jun 22 '17 at 10:11
• @thesecretmaster Yeah I can see what you mean. From the SE sites I know it felt like the most appropriate, but it's probably a bit "pre-education" and focuses more on a single person than a classroom (though I believe there's benefit in a more personalized education). If it gets flagged as off-topic I'll take it down. – checkersquares Jun 22 '17 at 10:58
• I think this could be on-topic if it's re-written to be less specific, and more about diversity. The 'elite' perception is a valid concern - and although we'd prefer our junior coders to all be high-fliers, that would leave noone to do the implementation work or testing – Sean Houlihane Jun 25 '17 at 12:09
• I think that 'selling' CS to the right people is eminently on-topic, and there is nothing wrong with starting on a particular case. Flagging to reopen. – user737 Jun 30 '17 at 12:23

First, try setting up some sort of "coding hangout time" - you and her can practice coding together. You can help her when she gets stuck, and encourage her. It's always good to have a buddy in what you're doing =)

Second, start with the right things. Try a little visual programming first, using hour of code programs, or a language like Python, which will teach good practice (indentation, etc) and remove worries like memory control, which make it harder for new learners.

Third, start small. The classic hello world program in Python is literally print("Hello world!"). From there, maybe go to things like adding, or using variables. I particularly enjoy Codecademy's course - problems with instructions. And remind her that you'll be willing to help when you have time, and so will people on sites like stack exchange (Codecademy also has a forum, though I haven't really used it).

To conclude - show, don't tell. Don't tell her she can code, show her she can code.

I am not sure if I agree with the "monkey" part! Maybe everyone is capable of writing some code. Building serious apps is another thing...

Anyway, show her the code.org website, and let her play around for a while. If she does not like, then probably she is not fitted for this "monkey thing" :)

What do you like about programming? Think of something you saw/did when you were starting out that inspired you. I remember during my undergrad when one of my professors all of a sudden one day wrote a program that output itself. I was blown away! Why didn't I think of that? What could I do with that? That was it for me! If your friend is like you, she might be inspired by similar things to you, and the personal approach coming from you, not from a website/book/whatever, is something that no website/book/whatever can do.

I want to focus on this part of your question:

What tools are there to show her it is much easier than it looks at a glance?

It reminded me of this blog post from Scott Hanselman: "Stop saying learning to code is easy." The entire post is relevant for this topic, but I'll just excerpt this paragraph:

When we tell folks - kids or otherwise - that programming is easy, what will they think when it gets difficult? And it will get difficult. That's where people find themselves saying "well, I guess I'm not wired for coding. It's just not for me."

I tell my students often that programming is difficult, frustrating, annoying, and challenging. However, I also explain that there is a reward to programming that is unlike that of any other discipline I've experienced.

When you rock an essay in English, say, you feel good, but the chances of you coming back to your excellent analysis of Hester Prynne in The Scarlet Letter over and over again are quite slim. (I say that with all the affection of a former English teacher.) Yet, if you write a cool program, especially one that it is an original idea, chances are you will revisit it, expand it, and/or play with it often. There's great satisfaction that comes with the staying power of a working computer program. You can actually use the fruit of your labor when learning programming.

Just keep in mind what Heather said above in her first point: don't let your friend make this a solo effort. Be a mentor, a Virgil to her Dante. Guide her along this journey (should she choose to make it).

And when in doubt about where to start, choose this: CS50 Week 0 Lecture - Fall 2016.

• My supervisor (at a teaching institution) emphasizes these same points about the joy of seeing it run. – user737 Jun 30 '17 at 12:28

Well, I know that starting out it is encouraging to do something simple that still has use. I would recommend trying to set your friend up with an easy to read language like vb.net and helping them through some simple programs that can show them the uses of programming (a personal favorite is an interest calculator with textboxes to put in the principal amount and interest rate).

Please give her warning though that while there are easy things in programming, there is also a difficult side. And if she shows interest but seems discouraged by the prospect of the challenging side, point out that there are sites like Stack Overflow where there are others who've probably dealt with the problem who are willing to help.

What are your friend's major worries about coding? If it's just the difficulty, I would maybe show her something drag-and-drop such as App Inventor. While an actual career in the field would most likely involve programming using code instead of blocks, I think showing her what she can build using a block-based language could help her realize how approachable the field can be.

I agree with your first part.

A trained monkey can code

Show this to her

and say If a monkey can write code, then why can't you.

Some encouraging things you should tell

2. The previous CEO of Yahoo was a lady, Marissa Mayer

So, A Girl can be a good programmer.

Regarding to Smartness

There is a great article in this site about college dropped out programmers.

Tech's 10 most famous college dropouts