Show the Way, Then Get Out of the Way


First Steps Through a Coding and Testing Journey

As I drove up to the glass and steel office building in our town, I figured I would pick up my daughter, like I had from so many other school sponsored events. I’d ask her how her night was, she’d say it was “good” and then we’d have a little bit of small talk about her day. On this day, however, the response was not at all what I had expected. On this day, she had gone to a presentation being sponsored by Google and YouTube called “Made with Code”. It was meant to be an introduction to how computers control so many parts of our lives, from conducting traffic, managing trains and helping airliners take off and land, to business functions and fun things as well, including computer games, favorite applications, and the social media tools so many of the kids were familiar with. As she hopped in the car and I asked how her time was, this time, she answered back “it was amazing. There are so many things you can do!” She described a variety of the projects they demonstrated for her. Her breathless enthusiasm made me smile, but it also made me think. In this world that requires so much technical acumen, why shouldn’t I encourage her to learn as much as she wanted to about code and software?

Having been in the software testing world for twenty- four years, twenty one of those years officially holding a job title that had some connection to testing, I felt I’d be a great person to teach her about what it took to learn more about software testing. What struck me as an important perspective to focus on was to help Amber get excited about how computers work, not from a “users” perspective, but from a “makers” perspective.

Perhaps there might be some interesting “discoveries” and reactions from our two perspectives. We both decided to put some practice times into our days, and see if the concepts that I have been learning over the years are easily teachable, or if I might learn more from her interactions than she would from me. That process has had its fits and starts. We discovered that streaks are wonderful when they are established, and they can be motivating when they get going or build up a substantial amount of time. We also discovered that streaks can be big let downs when you find you have to break them, or if something forces you to shift gears. Sometimes, getting back into the swing of regular practice is as difficult as starting over.

For a young person looking to learn to code, frankly now is probably the best time in history, because so much free material can be accessed, played with, reviewed and used in real time, and much of it completely free or very close to free. Sites like Codecademy and Khan Academy have proven to be excellent for this purpose, especially when it comes to basic syntax and general details of languages. Together, we have chosen to focus on three areas; HTML/CSS, JavaScript and Python. Why those three? Well, pretty much any web interface today that allows someone to write or create something to post and share allows for editing documents in HTML, so knowing the markup tags for HTML and CSS felt like a logical first step. Since most modern web pages utilize a lot of JavaScript, which likewise made sense to be a next step. Why Python? Truthfully, I picked Python because it was the programming language I have to date had the least amount of experience working with that’s readily available and in use in many places. It felt reasonable to say “we could learn this together. I could help with broader concepts, but the syntax would be as new to me as it would be for her.

Through the past few months, we’ve learned a lot about each other’s work styles and approaches to solving problems. Additionally, we’ve learned what it feels like to approach an interest together that goes beyond a general hobby and resides outside of mandatory school work. Rather than have me explain all of this, I figured it might make sense to get Amber’s perspective and how she felt about taking this journey.

Make it Real, and Make it Fun
AL: Codecademy was helpful in that it had whole lessons on the basics and how to get started. I appreciated that each segment blended into the next, so that you could work on one step at a time. Several of the projects allowed me to make changes to what looked to be very advanced sites. My dad explained to me after I finished these sections that they were showing me frameworks (the one we worked on that I most remember right now is Bootstrap.JS). The ideas that were being taught were easy to grasp and I felt like I could progress fairly rapidly through a few of the projects, but I felt it was a bit too streamlined to use the framework. I’d make changes that would have dramatic effect on the look and feel of the site, and I didn’t think that would be possible with just a line of code being edited. My dad pointed out to me that a lot is happening under the surface to make it so a simple one line change would have such a dramatic impact, but yes, it was possible to have one line of code made such dramatic changes. The important part was to make sure that I understood exactly how much help I was getting from the system itself. Overall, it made what I was working on feel a lot more real than just writing up a text box and making sure I could put text in it. Feeling like I was actually editing AirBnB was pretty cool.’

Guide Me to Guide Myself
AL: One of the things my Dad tends to do that can be a little off putting is when he sits next to me and “helps” me with some of the assignments and examples. I like the fact that he can help me understand what is happening, but sometimes the “Dad Card” gets played too much. He can be a little to quick to tell me when I am doing something wrong. That gets frustrating. It makes me feel like I am not learning as well as i could. When the going gets hard, that’s when you really start to figure stuff out, but if my dad is too quick to help me, then I don’t really learn what I want to. We finally made an agreement that I would work on my own computer and that I would call him over only when I felt stuck or confused. While I appreciate his input, I told him I was not going to learn anything with him always hovering over me and telling me what to do.

Strive to be Consistent, But Don’t Beat Yourself up if You Can’t Always Be
AL: I will admit that keeping a streak running can show dedication or progress, but it can also give you a false idea of what you’re learning. I have several friends that have expressed interest in learning how to code, and some of my friends have said they’re interested, but haven’t really stepped up to do it yet. By keeping a streak going, I can help motivate them and encourage them to do some of the exercises with me. It’s also possible to do just one exercise a day, and keep a streak going forever, but move really slow. There needs to be a balance between getting points for what you do and learning enough to actually get what I am doing. The other challenge is that, at least with Codecademy, I feel like I am learning a lot about how to use the terms and tags, but I’m not learning enough about where I can actually use it. My Dad pointed out that tools like WordPress, Blogger and Tumbler allow him to have a public place he can show off stuff if he chooses to, and that many of the elements are completely adjustable using HTML, CSS and JavaScript. That availability gives me an opportunity to interact with tools I already know about and work on code in a real place. Doing rather than just reading is the critical part.

I’ve greatly enjoyed these past few months and watching my daughter learn about the various aspects needed to set up a site, use code to make pages or apps that she can use (mostly rudimentary at the moment, but that’s where we all started at some point), and carry on from there. I think she makes some good points that will help other young programmers get the most out of what they are learning. As Amber sums it up “Keep it simple, make it fun, and do a little at a time as often as you can”. That’s great advice, both for an Intermediate school girl and for her twenty-four year veteran Dad.

 

About the Authors:

Amber Larsen is winding down her Intermediate School years and getting ready to enter High School in the San Francisco Bay Area. When she’s not playing around with web pages and figuring out code syntax, she enjoys Japanese Manga and Anime, music from both Japan and South Korea, watching K-Dramas and having fun with cosplay and attending events where she can meet other creative people.

Michael Larsen is a Senior Quality Assurance Engineer with Socialtext in Palo Alto, California, USA. Over the past two decades, he has been involved in software testing for a range of products and industries, including network routers & switches, virtual machines, capacitance touch devices, video games, and client/server, distributed database & web applications. He is a Black Belt in the Miagi-Do School of Software Testing, President of the Association for Software Testing (AST), a lead instructor of the Black Box Software Testing courses through AST, and a founder and facilitator of the Americas chapter of Weekend Testing. Michael writes the TESTHEAD blog (http://mkltesthead.com) and can be found on Twitter at @mkltesthead. A list of books, articles, papers, and presentations can be seen at http://www.linkedin.com/in/mkltesthead.

,

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.