Learning How to Program: A Tale of Two Personas

[shareaholic app="share_buttons" id="15025196"]

A Tale of Two Personas

Have you ever wondered why some people sail through programming courses and others struggle?

That's something that's fascinated me over the years, but now I think I know why.

With the advent of MOOCs (Massive Open Online Courses) I was lucky enough to take a free online class in Programming Python taught by the affable Charles "Dr. Chuck" Severance of the University of Michigan. "This is great", I thought. "I'll be programming in no time". But I didn't finish the course. There was a lot going on my life at the time, but something didn't captivate me enough to pursue it doggedly as I had with 30+ other MOOCs. It wasn't Dr. Chuck -- he was simply awesome. But what was it?

A-ha! Moment.

Recently I took another programming course thinking it would be the same tried-and-true formula of talking through lines of code and explaining what is going on. But it wasn't the same. I was reminded of two words that have changed the world: "Think Different".

To some, MIT's Scratch program may seem like just a fun tool for the K-12 audience to build games with. But it's much more than that. Scratch Visual Programming language can provide the visually-minded with a way to understand programming that resonates harmoniously with their style of learning.

So join me as we explore together "A Tale of Two Personas" -- a journey into programming through the minds of two very different personality types.

Daphne Designer

Daphne Designer

Meet Daphne, a hardworking 32-year-old creative expert who is passionate about aesthetics, style and communication.

Daphne's top priorities are color, texture, fabric, space, and other elements that go into various designs.

She has a natural artistic talent and is concerned with how designs communicate and connect with an audience.

Daphne's hobbies include: blogging about lifestyle, fashion and web design; photographing urban settings and candid portraits; decorating her apartment.

Daphne knows her targeted audiences well. She understands the marketing principles of aligning her designs with the "taste profiles" of various personas in her markets. She can "get inside" a client's head and see their vision.

How something looks and feels to Daphne is extremely important. It's part of who she is. She innately understands the psychology of color and the huge role it plays in people's buying decisions.

Daphne's favorite social site is Pinterest. She loves creating collections of images that express who she is and what she's all about.

If Daphne were to design a car, it would have the rounded curves of an e-type jag from the 1960's or the design purity of an Alpha Romeo. It might not be reliable, but it would speak to your senses and your inner soul.

 

Derek Developer

Derek Developer

Meet Derek, a detail-obsessed 29-year-old technology expert who's been playing with computers since he could crawl.

Derek's top priorities are making "cool stuff that works", connecting interfaces to databases, making designs functional and usable.

He has a natural talent for math and problem-solving and is concerned about finding the root of a problem.

Derek's hobbies include: playing games and building the ultimate gaming system; building servers; creating cool apps for his friends.

Derek knows all the short cuts. He has productivity apps for everything and loves to make processes as fast and efficient as possible.

How something works is extremely important to Derek. It's part of who he is. He innately understands structure and properties, and the practicalities involved in making something work.

Derek's favorite social site is Twitter. He doesn't care much for images, but loves the real-time, fast and succinct updates and links to snippets of code from the tech-geek community.

If Derek were to design a car, it would be a self-driving Batmobile with a 0-60 time in the blink of an eye. It might not look pretty or graceful ... but it would go like a bat out of hell.

 

 

Learning Styles

Many people relate to the concept of "Learning styles" which puts forward the idea that we tend to learn best when the information is presented in a particular way. For example, a "visual learner" prefers to see information in pictures, diagrams, charts and Infographics, whereas a "verbal learner' likes hearing stories and reading books.

Learning Styles

 

If we use this concept and apply it to the way our two personas might choose to learn programming, then we have some concrete ideas for you, based on how closely you identify with either the creative "designer" mindset or the more analytical "technical" mindset.

Daphne's Advice to Learn Programming

"If you're like me, you're predominantly a visual learner", says Daphne.

"And I found a wonderful MOOC offered by the University of Edinburgh on Coursera that matched my learning style exactly", she said.

Code Yourself! An Introduction to Programming uses MIT's Scratch Visual Programming language which is really easy to use, has a drag-and-drop interface to code using shapes instead of lines of text, and will have you grasping the principles in no time. Covering topics like algorithm design, user interaction, code reusability and generalization of solutions, you'll learn how to think like a programmer, a computer scientist, or a software engineer.

The big benefit of using Scratch for someone with a visual mindset like Daphne is the immediate graphical feedback of what you're programming. With just a few blocks dragged to the build area and connected together, some quite complex operations can be simulated quickly. Nested blocks allow for repeated operations through count-controlled or condition-controlled loops.

The delightfully enthusiastic lecturer Areti Manataki takes you through the course using a combination of animated graphic overlays and recorded screen video. Her visual presentation style will hold you spellbound.

Lecturer Areti ManatakiRight out of the gate, you drag a few blocks together inside an infinite "forever" loop to control what a character "sprite" says depending on which image-pose, or "costume" is being displayed.

Scratch code sample

Cassy 1

Cassy 2

Cassy 3

Cassy 4

And you quickly move on to more complex conditional loops, such as this one, where the program prompts for your age and uses that value to drive what happens next. Notice how succinct the program is and how the various blocks are differentiated by color and shape. The "if-then-else" block encapsulates the controls within its shape and helps you visualize what will become a necessary habit in other languages -- indenting your code.

Happy Birthday code

Butterfly and Candles lit

There are two other parts to this nice little program we are coding. Scratch makes it easy to store relevant code with the objects (called "sprites") that are being used. In this case, the butterfly object has the above code associated with it. Two different images (called "costumes") of the butterfly are alternated in an infinite loop to simulate flying.

Butterfly and candles blown out

Now for some cool multimedia integration using your laptop's microphone. There is a second image (costume) of the cake with candles blown out and we can program our code to prompt people to blow into the microphone to reveal this image -- giving the effect of blowing out the candles! The control block "senses" a loudness threshold via the microphone and directs the program accordingly. Cool!

Code for candles blown out

And now for a musical interlude: introducing the note block. You can program notes from a variety of instruments -- 21 in total!

Note blockBlock of vailable instruments

One of the exercises involved arranging blocks to play a tune and to synchronize movements of a cursor to highlight the words in a "Karaoke style".

Block of code to play a tune

And here's the finished program recorded from the Scratch output window.

There are many more powerful functions to drag, drop and interlock. We've only seen a small sample as a taster of why this is the best programming course for beginners who are visually-oriented with a 'designer' mindset like Daphne.

Would does Daphne love about this MOOC?

  • The videos are short, punchy and fun
  • It's pure drag-and-drop exhilaration
  • The colored blocks are so intuitive
  • No wading through thick manuals -- yippee!

Why not sign up today. It's free and fun!

Derek's Advice to Learn Programming

"If you're like me, then you learn best alone with your head buried in a book", says Derek.

"I think the best way to learn programming is to read about each function, look at examples of how to apply them, and then have a go yourself. If you get stuck, you can always 'Google it' or ask a question in a support community. And I found a MOOC that's ideal for the way I learn -- it even has a free book!"

Run by the charismatic Charles Severance of the University of Michigan on Coursera,  Programming for Everybody (Python) aims to teach everyone the basics of programming computers using Python. Charles is like Derek -- a "developer" type -- so he explains everything like he's been doing it since he could crawl. Here he is explaining the hardware inside a computer -- geeks just love this!

Hardware Overview

The free book Charles provides has nice standard formatting -- just what someone of Derek's technical mindset likes to see in a good programming guide.

Python for Informatics Book  Click image for free download

Python for Informatics excerpt

Charles Severance takes a deep dive into each topic of programming with Python and explains the syntax rules as well as a full description of what each function does and means. It's no-nonsense stuff - just the way Derek likes it.

Numeric expressions

You follow along with Charles who is ever present in a small video window as he draws on the screen in real-time in a similar fashion to Salman Khan of Khan Academy. The flow charts that everyone loves are on the left, the Python code is in the middle and Charles's video on the right.

Conditional Steps

You always know where you are with Charles because he talks through it, guiding your eyes through the code with his onscreen tablet-driven pen in real-time.

Comparison Operators

Charles also talks you through worked exercises that resemble real tasks that you'd find in everyday working life -- for example, a small business wanting to compute the pay of staff.

Worked Exercise

Charles shows you exactly what's on his screen by using screen-recorded video footage.

Worked Exercise2

And he continues to use the markup pen to make it easier to follow along as he's talking.

Worked Exercise3

He also shows you the text output from the program in a window below the code editing window.

Worked Exercise4

By now you'll realize that this MOOC doesn't move objects around the screen or create multimedia games like Scratch does. Instead, it focuses on the unglamorous, but very necessary, task of text manipulation.

For example, let's say you want to use data exported from a billing system for other purposes. The exported text file may have lines of text with lots of information you don't need. So the challenge is to strip away what you don't want and extract what you do. Python makes that easy.

Let's suppose you want a list of the days of the week on which a customer emailed your business. There could be thousands of records, so counting them in your email program is impractical. Instead you can use an exported file from your database and manipulate the text with Python.

print the day of the week

Your text file could look something like this -- with lots of extraneous data you don't want.

garbled text file

Charles shows how to extract just the day of the week -- or any other string of data that you want to isolate. Plus, because he's so experienced, he knows that programs invariably don't work the first time and that a major part of programming is debugging. He shows us tips and tricks of how to debug programs. For example, here he uses what is termed a guardian pattern to skip over blank lines -- because the program was failing to run as soon as it found a blank line.

guardian pattern

Charles also does a tour of real life meetups in various cities that he travels to. And because he travels so often, he's bound to be in a city near you -- even internationally!

Python is a powerful, general purpose programming language that emphasizes code readability, and allows programmers to express concepts in fewer lines of code than other languages. I've given you a small taster of what it can do. For the technically-oriented "developer" mindset like Derek, I think this MOOC is the best way to learn programming.

What does Derek love about this MOOC?

  • The free book
  • Charles Severance's informal and humorous style
  • The real-time markups
  • All the worked examples

Why not sign up today. It's free and fun!

Conclusion

Whether you have the visually-oriented "designer" mindset of Daphne, the technically-oriented "developer" mindset of Derek, or you're a combination of both types, there's a MOOC that's right for you.

You can learn to program!

Share your preference in the comments or join us in our Facebook Group.

We'd love to know if you like our Facebook Page.

 

[shareaholic app="share_buttons" id="15025196"]

4 thoughts on “Learning How to Program: A Tale of Two Personas

  • March 24, 2015 at 2:39 pm
    Permalink

    I suspect that in your example, Derek developer learned on something roughly like Scratch – maybe not as good, but similar – when he was much younger. He churns through technical manuals and so forth now because he no longer needs drag and drop and color highlighting and can work more quickly without them. And conversely, if Daphne spends a lot of time coding then she might use Scratch a lot at age 32 but switch to text editors and more traditional Integrated Development Environments (IDEs) at age 35 or something. I don’t think anyone takes naturally to writing software using pure text and connecting pure text to the logic in the code purely in mental visualizations. It’s an acquired skill for almost all of us. It comes naturally to me now, but I would have traded a leg for something like Scratch twenty years ago.

    And that brings me to my second point – I’d say the real key to being a software developer is just patience and effort. Raw intelligence and ideal learning tools don’t matter as much in the end as persistence. But most of life works that way – playing “Mary Had a Little Lamb” is no fun, playing Mozart’s “Piano Sonata in C” or Queen’s “Somebody to Love” is awesome. Exhausting yourself to run a quarter mile is no fun, finishing a marathon is awesome. If you want to be great at this, just put your time in and you’ll get there.

    Reply
    • March 28, 2015 at 7:00 pm
      Permalink

      Hi Michael_Sw, thank you for your comment. Great points! I agree with you that persistent effort is the secret to most learning challenges. However, having taken both courses and based on various attempts to learn programming before MOOCs existed, it occurred to me that some people simply learn programming the traditional way much more easily than others. My article puts forward the notion that learning styles and personality do play a part and that the availability of visual languages like Scratch might make it easier for the more visually-oriented person to learn programming compared to traditional methods of typing lines of code.

      Reply
  • March 26, 2015 at 10:37 pm
    Permalink

    Did you really need to make those two personas with the female/male topics? I know, I know that girls are not usually excited about learning python, and neither are boys about aesthetic… But don’t you think we make the problem deeper for those boys and girls who just don’t feel “normal” if we stick to the topic? (Yes, I’m a woman. And yes, I’m a computer scientists. And yes, I felt weird being in that 13%. And yes, I worry that it’s decreasing. And no, I don’t think it’s just because girls don’t like technology.)

    Reply
    • March 28, 2015 at 6:53 pm
      Permalink

      Hi Belen, thank you for your comment. I felt that it was important to have female and male personas. So then it was a case of choosing which persona to match with which learning preference. I think many people will identify with being a combination of both — as I am. But I had to make a choice. Then I realized the lecturers were pretty good proxies for the two personas. It just so happened in this case that a woman teaches the Scratch Visual Programming course and a man teaches Python. But it could easily have been the other way around.

      Reply

Leave a Reply to DJ Cancel reply

Your email address will not be published. Required fields are marked *