#TechTeen – Anna Lou

Anna Lou is fifteen and a high school junior at Oxford Academy in Cypress, California. She began programming at ten years old and has fallen in love with it. Her computer programming-based science and research projects have won numerous state and national awards, including a minor planet named after her by the MIT Lincoln Laboratory for her Artificial Intelligence research project. Her recent accomplishments include winner of “2015 Emerging Student Innovator of the Year in STEM” awarded by Project Tomorrow and nationally recognized Aspirations in Computing Award from National Center for Women and Information Technology (NCWIT). Hoping to spread her own passion for computer science, Anna serves as the Co-Founder and President of Orange County Coder, Founder of the Scratch in Schools (SIS) volunteer program, Vice President of Technology of Orange County Math Circle (OCMC), Co-President of National Honor Society at Oxford, and Webmaster and key member of the web teams for five organizations (Math for Service, OCSEF, Orange County Math Council, OCMC, and Orange County Coder).

How did you first become involved with coding and technology?

I began programming during my elementary school science fair project, where I endeavored to develop an AI computer program to simulate Blokus, a strategy board game. Computational thinking was definitely confusing at first, but after completing a college course and going through countless practice problems, I started getting used to it. My project took two years, eight versions of increasingly effective strategies, a four-level deep search optimization, and six million simulated games before it finally played against humans (each of them a doctor and/or professor) and won. Excited about the potential and power of technology, I have since learned many more programming languages and created a multitude of other applications of all types, such as web applications or iOS apps.

Have you created any apps? Tell us about them!

One of the most recent applications I created is a smart event registration web application for my organization, Orange County Coder, an organization dedicated to spreading the love of computer programming to more students by offering free programming classes and events. Our classes have been in such high demand that the most recent class registration was filled within 90 seconds. The usual process, however, requires much administrative effort. Because none of the event registration websites I tested could automate this process, I set out to create one myself. I used JavaScript, CSS, and Bootstrap on the client side and PHP and MySQL on the server side. Several of these I already knew and several of them I had to learn from online tutorials and books. Two years later, my application has been utilized by nearly a thousand students and parents.

What did you think about tech and coding before you began?

I was always curious about technology even before I began learning the calculating language of computers. Machines were a great big powerful mystery to me, an enigma that could surpass the human mind and deal out billions of numbers in a fraction of a second. Being but an inexperienced little girl in elementary school, however, I resigned myself to the fact that computers just weren’t for me (they probably required very smart, very quick, and very talented people to learn, anyhow). Fortunately, I eventually decided to “just try it out” and it quickly opened a new world for me. I realized that I didn’t have to be a genius to code – in fact, as long as I had the passion, the persistence, and that all-important curiosity, I could succeed.

What programming languages are you familiar with? 

I am familiar with Java, JavaScript, C#, PHP, Python, and HTML/CSS. I have also enjoyed learning Swift and would like to go deeper and create more mobile apps with it, especially since more and more people are getting smartphones.

What is it that you enjoy about programming?

I like the rush of finding a new problem to solve, the challenge of scribbling all around a piece of scratch paper to end up with an algorithm, sitting up straight when I miraculously reach the answer (which would then be circled many times), the precision of transferring scribbled words from the paper into neat, aligned bits of code on the screen, the frustration of “fixing” a bug only to cause fifty more, and the final satisfaction of clicking the test button and seeing the correct answers scroll onto the screen, one by one. I reward myself by clicking it a few more times and then it’s onto the next one.

Are there any resources that have helped you develop your skills?

Codecademy.com is a good website to get started with. There are many other online tutorials for specific languages, but I found that practicing with small projects or bigger projects helped me grasp the language better and truly train myself on computational thinking. Codingbat.com is great for practicing Java and Python. Participating in programming competitions is also fun and allows you to challenge yourself.

Why do you think students should learn how to code?

It’s the twenty-first century – we are surrounded by technology everywhere. In a world so connected with technology, knowing how to code will soon be nearly as important as knowing how to read. More coders will mean more inventions, more innovations, more bright ideas, and more advancement.

Do you see yourself building a career field in the tech field?

I definitely see technology as a big part of my life and I hope to build upon that in the future. I’d like to major in Computer Science and eventually develop a career centered on technology.

What advice do you have for other beginners, especially high school students?

Don’t be afraid. Stare that book, class, tutor, teacher, computer or tutorial right in the eye and make sure it knows that you want to learn and you are going to learn. The computer is very friendly (though it may be slightly intimidating at first) and once you learn to speak its language, you’ll be best friends. Pick an easy language to start out with – maybe JavaScript or Python – and once you’ve got the concepts down (remember: concepts are more important than syntax!), don’t be scared to dive right in. Practice a lot, scribble everywhere, ask for help when you need it, and don’t stop learning.