All Posts in developer education
Want to learn some code basics? It’s as easy as opening your web browser.
Confession: I am not a developer. Over time I’ve learned some cursory HTML, but the rest of the coding languages are Greek to me. As a writer among the programmers here at Table XI, I’ve felt a bit guilty about that. I’ve always wanted to get more familiar with code, partly to be able to understand developers better, and partly because it’s time to join the 21st century.
Today I’m a software developer at Table XI, working with some amazing clients, with my first project just recently deployed to production. It’s still hard to believe that only one year ago, I was working as a manager in an operations role at a large daily deals company, and switching careers to become a web developer was not yet on my radar. It all started in early November 2012, when I decided to attend an Introduction to Programming workshop.
I had been interested in web development, but I’d fallen prey to the stereotypes that “only computer science majors can be programmers,” or “you have to be a genius at math.” I hadn't really looked at programming as a viable option, given my background and two liberal arts bachelors’ degrees. Lo and behold, the workshop taught me that not only was I good at programming, but that I loved it, too. The code I wrote in that workshop was as simple as puts and gets methods and some string interpolation, but even being able to write simple methods and see the output come across my screen felt invigorating.
I was already in the midst of exploring a career change, and that workshop sealed the deal: I knew I wanted to learn web development, and I set to work looking at different bootcamp-type course options. I was lucky that a plethora of options existed, from Dev Bootcamp in San Francisco to Starter League in Chicago to Flatiron School in New York, but I decided on gSchool, an intensive six-month course in Denver focusing on Ruby on Rails. I felt gSchool was the best fit for me given the length of the program, a rigorous curriculum taught by seasoned instructors, and the guarantee that if I graduated, I would get a job making a minimum of $60k within three months of graduation or a full refund of my tuition. Additionally, the director, Jeff Casimir, had connections with my previous employer, LivingSocial. He'd run a similar five-month training program for LivingSocial that a few of my friends had been through, so I knew what to expect.
I moved out to Denver in January of 2013 and started the most intense six months of my life. I knew gSchool was going to be hard and I had mentally prepared to put in 60+ hours per week, but nothing really prepares you for the brain melt of not only learning something totally new, but adjusting to an entirely new way of thinking. Like many of my fellow classmates, I came in without a background in development, and the most challenging part of the program for me was acclimating. Looking back, my assignments now seem almost laughably easy, but they were difficult for someone who was just learning to “think in code.”
I had amazing classmates and world-class instructors though, and with their help I had my “A-ha!” moments where things started to click. The setup of gSchool was a great mix of instructor-led, full group classes, group projects of two to four people, guest speakers, lightning talks, mentoring sessions, and more. The environment was very collaborative, with everyone dedicated to helping their classmates and celebrating each others’ small moments of triumph. It was certainly at times a mentally grueling experience, but with so much support from classmates, instructors, and mentors, we all made it through together and built some really awesome apps along the way.
About two-thirds of the way through the course, we had our first individual project since our first month, and like many of my classmates, I felt quite nervous. We knew the project would prove some things to ourselves—either that we knew what we were doing, or that we hadn’t mastered the abilities we’d fought so hard to learn. It was incredibly validating when the former happened, and I was able to build online scheduling from scratch for a website I was creating for my sister, a massage therapist.
For the last month or so of the course, our focus grew to include finding jobs. There were a lot of things I was looking for in a job, both need-to-haves and want-to-haves. I knew I wanted to work for a small- to medium-sized consultancy that was compatible with my testing and pairing philosophies, where there would be many different challenges to learn from. Other big must-haves included being part of an environment that fostered continued learning and had amazing teammates with whom I’d love coming to work everyday. I narrowed my search by looking in a select group of cities, and leveraged my network—including my mentor and instructors—to set up introductions to companies I was interested in.
I talked to plenty of amazing companies, but I knew from the time I had my first phone interview with Noel and Isaac that Table XI was where I was meant to be. The people at Table XI were incredibly smart, but also approachable and helpful, and I knew I would learn a ton from my co-workers. Crucially, the environment seemed very supportive of a junior developer. The projects they were working on were really interesting, and the fact that they worked with nonprofits and community organizations appealed to me and my former life as an organizer for social justice. The company was diverse, and it was palpable that people genuinely cared about the clients they were working with and their teammates in the office. That they were located in Chicago, a city I loved, only added to the appeal. When I was describing the awesomeness of the company to my husband, I kept finding myself saying "Oh! And did I tell you they also..." When I was offered a position with Table XI, I was delighted to accept.
I've been with Table XI just over a month, and I'm happy to report that my exuberance was not misplaced. I have fallen in love with programming all over again, thanks to the project I've been working on, and I have amazing co-workers always willing to help mentor and guide me. As a testament to the skills I learned at gSchool, during my first week I was fixing bugs, and by my second week I was already working on project features on my own. One of my biggest takeaways from my gSchool experience is, for lack of a better phrase, “learning how to learn”—knowing how to read technical documentation and solve a problem on my own, balanced with knowing when to ask a teammate to pair on a problem.
I still have a lot to learn (but what developer, of any level, doesn't?), but the decisions to take the leap, to uproot my life and change careers, and to come to Table XI are the best ones I have ever made for my career. If this is how I feel at the end of month one, I can't wait to see how I feel a few months down the road.
It takes 10,000 hours of practice to achieve mastery in a given subject. How does a novice get started, and how does an intermediate keep going? WindyCityRails and ChicagoRuby organizer Ray Hightower encourages us to remember that practice begins with play.
For our June Table Talks on Developer Education, Ray took us through an engaging PechaKucha presentation on the importance of play in learning—an idea that applies to more than just developers. Play helps us expand our thinking, experiment, and get creative with how to solve problems. Plus, building a supercomputer with Raspberry Pi computers and Legos, like Simon Cox and son James did (above), is just plain cool.
Ray also announced that WindyCityRails will be starting a youth program this year, with the goal of getting kids interested in programming and launching the next generation of developers. You can bet play will be a part of it.
To view other PechaKucha presentations from our Table Talks series, visit the Table XI PechaKucha channel. If you’re interested in attending a future Table Talks, request an invite through our website. You can also follow along at #tabletalks.
With 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.
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.
Software development is one of the fastest growing industries in the country, with the Bureau of Labor Statistics projecting a 30% increase in jobs by 2020, more than double the average growth rate for all occupations. We’ve certainly seen a rebirth in Chicago’s tech scene over the past several years, as companies like Groupon, Career Builder, and Braintree have settled here.
Hand in hand with this explosion in the tech sector goes the issue of education. Who is going to train this next wave of developers, and what are the best teaching tools? How can we use mentorship to promote continued learning and improvement internally, and ensure current devs stay on top of the latest technologies and innovations? How will we reach groups typically under-represented in the dev world, like lower income individuals, certain ethnic minorities, and women?
At Table XI we’ve been thinking a lot about the role of education and mentorship in this community, and several of our team members are involved with organizations like Dev Bootcamp, Girl Develop It, I.C. Stars, and The Starter League, all of which are dedicated to teaching tech’s next crop of talent. For our June Table Talks: Developer Education, we’ll be hearing PechaKucha-style presentations from some of Chicago’s best: Ray Hightower, organizer of ChicagoRuby and WindyCityRails; Paul Pagel, CEO and Co-founder of 8th Light; Vince Cabansag, Director of Operations at The Starter League; Michael D. Hall, Founder of UGtastic; Mike Busch, Instructor at Dev Bootcamp; and Isaac Sanders, our very own summer development intern and mentor at Dev Bootcamp.
What: June Table Talks | Developer Education
When: Thurs, June 13 | 12 – 1:30 pm
Where: Table XI | 328 S Jefferson St | Suite 670
Interested in joining Table Talks as a guest? Request an invitation through our website, or keep up at #tabletalks. For past presentations, including May’s Data by Design, please visit the Table XI PechaKucha channel.
Sign up for our monthly newsletter to stay up to date on the latest tech tips from Table XI and to receive exclusive invites to events