All Posts in mentorship

June 20, 2013 - No Comments!

6 Tips for Teaching Your Kids to Code (and Why You Should)

hopscotchWith all of the hype surrounding fast-growing tech startups, as well as discussions about improving our education system, teaching kids how to code is top of mind for many people these days. Large scale change is in our future, and I look forward to a day when coding is as integral a part of early education as reading, writing, and math.

Fortunately, you don't have to wait for "someday" to get your kids coding—here are 6 tips to help you spark and sustain a child's interest in programming:

1.  Emphasize that Coding = Creativity

Coding is as much about creativity as it is about math, science, and problem solving. The stereotype of computer programmers as math nerds scares many people away from coding, adults and children alike. But coding is creating and making things come to life—drawings, games, robots, applications. Most kids like to create things, so coding will come as naturally as painting a picture or building something with Legos. Capture their interest by emphasizing creativity, and they'll naturally learn some core programming concepts along the way. Keep it fun and don't force it—not all kids like to paint, and not all kids will like to code either.

2.  Encourage Exploration

Find age-appropriate tools that give your child enough room to play without needing to read an instruction manual every few minutes. The process of discovery—or the "I wonder what will happen if I do this?" moment—is a core component of a coder's world. Encourage your child to experiment, and keep an eye out for signs they're reaching the limits of a specific app. Even if you're not a coder yourself, you can learn along with your child.

Here's a list of free apps/websites to get you started:

Daisy the Dinosaur (iPad, ages 6-10): This simple iPad app will get kids excited about being able to control the movements of a character on screen using basic commands. As an intro to coding it’s even great with younger children, but may not hold older children's attention for very long.

Hopscotch (iPad, ages 8-12): From the makers of Daisy the Dinosaur, this app is fun, easy to use, and lets kids create drawings and more complex animations with a whole cast of characters to choose from. You can also share your programs with other Hopscotch users via email, which is great for encouraging kids to play with friends and share their creations.

Scratch (web, ages 8-16): Scratch has been around for a while and has an active community of young programmers. It builds on some of the basic programming controls used in Hopscotch, and introduces many new tools for creating more unique and complex animations and games.

Codecademy (web, ages 12+): Codecademy provides free online courses in specific programming languages. Older children who show a sustained interest in coding may be ready to start learning to program on their own. The course on HTML and CSS is a great place to start, and it will teach your child how to create web pages from scratch.

3.  Tap Into Each Child's Passions

Coding can be used to create many different kinds of programs—try those that interest your child and don't write off coding altogether if they don't enjoy one specific flavor. There are apps that focus on everything from drawing to animation to storytelling to game design. Kits like Lego Mindstorms, Sparki, and littleBits let kids design robots and create programs to operate them. Avid readers can build websites to publish reviews of books they've read. Sports fanatics can build websites to track the stats of their favorite players or teams. Tap into something your child already enjoys doing and show them how to use coding as a new way to bring their ideas to life.

4.  Make Coding a Social Activity

Find opportunities and encourage your child to code with other children. As they grow, having a network of friends who are also interested in coding will go a long way to keeping them engaged. "Kids become coders because they are friends with other coders or are born into coder families," Mimi Ito recently pointed out in a Fast Company article. Doing a quick search in your area will likely turn up a number of options for local summer camps or after-school programs. You could also gather a couple of kids and help them participate virtually in an online program, or find someone to help you create a project to get them started.

5.  Find a Mentor

As Mimi Ito noted, children of programmers are more likely to code than children of non-programmers. But hope is not lost if you're not a programmer yourself! There are plenty out there and most would be excited to help you. Find a friend or family member who codes or works in a technical field and ask them for assistance. (If your child is at that age where they want to do the opposite of everything you suggest, this may be even more effective than doing the mentoring yourself.) This person can guide your child when they hit a roadblock with a program they're creating, challenge them to keep exploring, and show them what different coding careers could look like.

6.  Keep Problem Solving Fun

Programmers like to solve problems, and many professional coders choose where to work based on the types of problems they'll get to solve. Whether or not your child gets hooked on any of the apps listed above, you can always encourage them to be curious, to tinker, and to solve problems. Push them to learn how something works and to find different ways of doing things, or make puzzle games a fun thing you do as a family. A child who enjoys creative problem solving may get into coding somewhere down the road, even if they're not interested today.

Introducing children to coding will open up a whole world of possibilities for them later in life, not to mention the enjoyment they'll get from having new tools to create with today. But it's also important to remember that coding isn't for everyone. Not every child likes to paint or play baseball or dance, and not everyone will like to code either. Don't force it. Show them the apps, provide some support, and let them drive. If they don't show an immediate interest, they may yet come back to it later.

June 19, 2013 - No Comments!

Why It’s Awesome to Be a Dev Bootcamp Mentor

Before heading off to Hacker School for the summer, I mentored at Dev Bootcamp in Chicago. In light of our June Table Talks on Developer Education, I encourage any devs out there to consider mentoring, and to get in touch with Dev Bootcamp if you are interested. Here is why it is an awesome experience:

1. They target students who actually want to do technical work for a living.

Other programs I have seen target more business-oriented folk who think they might want to do technical work if they end up liking it. While this kind of vagueness may not seem noteworthy, the end result is striking. Most Dev Bootcamp students do not come in with unwarranted dreams of being CEOs, but instead with a simple determination to learn, make it through the course, and be accepted in an unfamiliar industry (or unfamiliar for most).

2. The students come to Dev Bootcamp knowing what they are in for.

They have over two weeks of work assigned to them before even arriving to class. By the time they get there, they are familiar with the assignment app (called Socrates) and the kind of workload to expect weekly (over 40 hours; closer to 60 for most of them). I know at least one person who only decided to attempt DevBootcamp after spending close to a year learning programming on her own (she completed multiple open source courses and tons of tutorials).

3. The program is immersive.

There are a few things that contribute to creating an immersive experience. First of all, Dev Bootcamp has their own space. This makes it feel like a full-time job, and your fellow students feel like true peers instead of people you just see during class. Next, the workload forces the students to interact for most of their week (they are required to pair for some of the time), and they work together to solve problems as effectively as possible. Finally, the long hours spent together engenders friendly competition and motivates students to reach beyond their usual potential.

4. The curriculum.

The program spends a reasonable amount of time covering important concepts such as knowledge of Ruby, basic SQL, basic JS/Jquery/HTML, and HTTP/Sinatra before jumping into Rails. In fact, at week 5 there is no sign of Rails yet! This makes me ecstatic. (I would be even happier if they did not cover Rails at all, and spent more time learning the fundamentals.)

5. My students.

Both of them (Lora and Yannick) have been exemplary in their ability to grasp new concepts and apply them. I may be biased since they are so awesome, but I am much more impressed with what they have learned compared to counterparts in other programs. The fact that they were able to write sudoku solvers and solve other fairly complex search problems in their first three weeks blew my mind. I would easily hire both of them if I were looking for junior devs.

Sharing knowledge and helping the next generation of devs get started are core practices of our community, and mentorship is a completely worthwhile experience. I loved my time at Dev Bootcamp (visit their site to learn more about mentoring or other ways to participate), but there are other great programs out there, too. If you have mentored elsewhere, how did it go? What other teaching organizations would you recommend? I am interested in hearing your story.

Ed. note: Our Director of Client Services, Greg Baugues, will be speaking at Dev Bootcamp on Thursday, June 20, at 5:30 pm. Learn more and RSVP here.