and Learn to Program Computers from a Young Age
One of Danielle’s most important skills in the novel is computer programming. This allows her to create the Danielle Music service to revolutionize the distribution of music, develop a new quantum encryption system to protect her “life bits” stream (which is recording every moment of her and her sister Claire’s lives), and write software to help rebels in Libya and overcome dictator Muammar Qaddafi’s military.
But Danielle’s fictional story has many real-life inspirations, where young people changed the world through computer programming. The most famous examples include Bill Gates starting Microsoft by creating software for the first personal computers, Larry Page and Sergey Brin creating the first truly effective search engine in their Stanford University dorm, and Mark Zuckerberg, who wrote the code for Facebook in his dorm room and turned it into one of the world’s most valuable and innovative companies.
Coding has countless practical applications. You can use programming skills to share information with people around the globe, form new communities, discover and learn from data, entertain others, and develop new inventions. The possibilities are limited only by your imagination.
But you don’t even have to be in college to have a big impact through programming—for example, at age 14, Daniel Singer created an anonymous messaging app called YouTell that attracted over three million users. If you learn how to code, you can join Danielle, Zuckerberg, Singer, and many others like them in changing the world.
Whether you’re in grade school, middle school, high school, college, or even older, there are dozens of great ways to get your start in computer programming.1 So how do you begin?
One of the best ways to start learning programming as a beginner is to take an online course. There are many options, ranging from simple instructional videos, to full classes with projects, quizzes, and graded assignments. Here are some of the best:
- Osmo Coding2 is a game system for iPads that’s perfect for young kids in elementary school. It helps you learn about logic and the basic concepts of programming, but without formal lessons. Instead, you learn by doing—experimenting with a set of physical blocks that represent code elements, and seeing how they control Awbie, a cartoon character on the app. Even if you’re older, you might want to see if your family or school can get Osmo for a younger sibling or friend. Helping them learn with the app can help you understand coding better, too.
- Tynker3 has free tutorials and games that teach basic coding and are specially designed for kids. If you’re in elementary school or middle school, you might want to check out this fun site first before moving on to more advanced options.
- edX5 is a platform that allows you to take online courses from top universities for free. Top instructors from schools like Harvard, MIT, and Caltech teach many of the classes, and others are taught by professionals from tech companies like Microsoft. These courses are more in-depth than Khan Academy and often take several weeks to complete, but are good for advanced high school students. Some edX courses can be used to earn college credit.
- Udacity6 and Coursera7 are two of the most popular for-profit providers of Massive Online Open Courses (MOOCs). Some of their classes are free, and others charge fees which go toward paying instructors to individually evaluate your work and give you feedback on how to improve. Both companies offer a broad selection of programming courses and can help you master more specialized skills.
Although online courses can be really helpful, many people prefer face-to-face interaction with a teacher as they’re learning how to code. Fortunately, a rapidly growing number of schools now offer classes on computer programming. If your school is one of them, you’re lucky! If not, you can think like Danielle and encourage your school to teach computer programming.
- Code.org8 is an organization dedicated to giving all students access to programming classes. If you or your parents contact them, they can work with your school to set up courses for you and your fellow students. This will not only benefit you, but it also helps other young people who come after you. Another similar organization is Codesters9, which focuses on a powerful but accessible programming language called Python.
- Code.org also sponsors a project called Hour of Code,10 which partners with companies like Khan Academy to create simplified 1-hour programming tutorials. Starting with no previous experience at all, you can learn all the basics of computer programming in just one hour!
Other options for getting coding experience as a young person:
- Take community college classes. Many community colleges let interested young people take classes while they are in high school or even earlier. These classes are often free and let you learn programming in a hands-on environment with teachers and other students of different ages and backgrounds.
- Start a programming club. Learning a skill like programming is easier when you’re learning together with friends. If you start a programming club at your school, everyone can practice their skills at the same time, and help each other work through challenging projects. You might even be able to get sponsorship from local businesses to pay for courses and bring in guest speakers who work in programming. If you’re a girl, getting other girls interested in programming can help overcome the stereotype that coding is just for boys. For help with this, Girls Who Code11 is a nonprofit dedicated to helping schools, churches, or other community organizations start coding clubs for girls in grades 6-12.
- Volunteer with a nonprofit. Once you have some basic coding skills, you can gain more experience by using those skills to help good causes. There are probably nonprofit organizations in your community that could expand their positive impact if they had websites or mobile apps to connect them to the people they are working to serve. When you volunteer to help them, everyone benefits!
- Find a mentor. Danielle learns a lot from mentors like Martine Rothblatt, but your mentors don’t have to be famous. With the guidance of a parent or teacher, brainstorm with people you know who already have experience in programming and might be willing to give you advice on developing your talents further. A mentor can share their experiences of learning to code, teach you tricks and shortcuts, and show you how to avoid mistakes they made when they were younger.
- Experiment on your own. The greatest pioneers of computing have all done a lot of experimenting on their own. Once you’ve learned some simple coding, you can start thinking about how to try new ideas. Don’t be afraid to put in hours tinkering around with code and trying to solve problems for yourself. Figuring out these challenges without help from anyone else can be one of the most rewarding parts of programming.
Becoming a computer programmer at a young age takes hard work, but brings a lifetime of benefits. These include:
- Understanding logic better. Computer programming teaches your mind to think carefully and logically. This makes it easier to analyze problems, make good decisions, and find what’s wrong with the arguments other people make.
- Becoming a clear communicator. In real life, programming is usually collaborative. You’ll work with a group of other people on your projects, which means you have to understand each other’s code. Writing code that’s easy for other people to understand trains you to express your ideas clearly and to “get to the point.”
- Using computers more fully. Computers (which includes smart phones and tablets) have many features that the average person never uses. Learning to code helps you understand these functions and take better advantage of them.
- Building websites and apps. Communicating with large groups over the Internet requires platforms like websites and apps. Programming skills give you much greater control over this process. Much like Danielle with Danielle TV, you can build followers this way and create new online communities.
- Unlocking insights. The past several years have seen an explosion in so-called Big Data. We now have access to huge amounts of raw information, but programs are needed to sift through all that data and figure out the patterns. Writing these programs can uncover important insights no one could have otherwise figured out.
- Simplifying tasks. Many daily tasks require lots of time. Programming lets you put computers to work, saving some of that time so you can put it to a better use. For example, you might write a program that helps you study by picking out relevant information from an e-book and quizzing you on the content until you’ve learned it. Or you could write a program that sorts through your emails or tracks the money you’re saving.
- Implementing new ideas. One of the biggest obstacles to innovation people face today is finding someone to translate their ideas into code. If you can write code yourself, you have a huge advantage. When you have an idea for a new service, network, or machine, you can design at least a basic version of it to get the concept off the ground.
Finally, if you’re like Danielle, you may be thinking about how you can use computer programming skills to help others while you’re still a young person. Fortunately, there are many options for how you can make a difference.
- Volunteering for charity. As mentioned above, there are lots of opportunities to volunteer for nonprofit organizations that support good causes. Social Coder12 is a website that connects volunteer coders with charities in need of programming help. This can take many different forms. Some charities need someone to create or redesign an appealing website to attract donors and raise awareness. Others may need a mobile app to connect them to people who use their services. Sometimes, programmers use data to figure out how a charity can provide its services more effectively.
- Entrepreneurship to solve a problem. Some people talk about nonprofit volunteer work as though it is the only socially valuable use of your programming skills, but this isn’t true. If you think of a specific problem in the world that can be solved by software, go for it! Danielle realized that there was a need for a better way of keeping communications secure, so she created a quantum encryption system. In real life, Larry Page and Sergey Brin used their programming knowledge to create the Google search engine and turn it into one of the world’s most valuable companies. But Google has also made vast amounts of information available for free to billions of people. Even if your own entrepreneurial project isn’t as big as Google, you can still have a positive impact by identifying a need people have and developing a product to fill that need.
- Teaching others. Even as a student, as soon as you have developed your programming skills, you can start teaching them to others. When Danielle is in Libya, a young orphan girl asks her to be her adoptive mother, but Danielle points out that she is still a kid, too. In a similar way, it’s easy to feel that you’re too young and inexperienced to teach someone else coding. But the opposite is true. Research shows that learning from peers has major benefits, and it is very rewarding to pass on your new skills to others. Not only does this bring them the benefits of learning how to code, but it also deepens your own mastery.