By Jean Hsu (Android Developer, Pulse) Coding is sort of like a superpower; with it you can create things that millions of people see. You can change the way people behave, the way they think, and the way they interact with others. This is beyond awesome, but I’ve also met a lot of people that think that this ability is inaccessible to them.
I’ve met a lot of “non-technical” people who seem to think that this superpower is only bestowed on those fortunate enough to have it come easily to them at a very early age.
I took two Computer Science courses in high school, and I’m fairly confident that had it not been for those classes, I would have been way way too intimidated to major in it in college. Those who major in CS with no pre-college programming experience get my greatest respect, because even with a few classes under your belt, it can feel extremely daunting.
Beyond college, I’ve spoken to several friends who have expressed the same sentiment to me. They wish they had known how important it was, how many opportunities being “technical” opens up, and wished they had learned to code. They always say this with a wistful attitude that implies that they assume it’s too late. They are around my age, 24 to 25.
It’s easy to think that it’s too late, because look at those people who spent four years in college learning to code! But those four years I spent in college learning CS? The first two I spent trying to figure out what to major in. Over the next two years I took eight courses in the department, but many have no direct relation to applications-focused programming, which I assume is what most people want to do. In my entire four years at college, I took only one class that was applications-focused. Going into it, I had no practical knowledge of HTML or CSS, but worked with two other similarly inexperienced students to build a webapp with MySQL, PHP and HTML/CSS.
It’s easy to think that it’s too late. There will almost always be people who have more experience, but it’s important to remember that every one of those people started off as a complete beginner.
So if you’ve been thinking to yourself “I wish I had learned to code,” why not do it? When you do, please keep some things in mind:
- It is difficult! Things that take awhile at first will come naturally to you later on. Of course some people are more naturally disposed toward the type of logical thinking that programming demands, but I believe that in the majority of cases, people assume they aren’t cut out for it before giving it a fair shot. Though of course, having people believe that programming is “too difficult” and that the average person is “not smart enough” strokes our egos and makes us feel like we’re part of some super-elite hyper-intelligent group.
- Mentally prepare yourself for roadblocks. I used to think I was cursed, because every time I tried to setup something new (new development environment, tool, library, etc), something would always go wrong. It took many years for me to realize that with all the different combinations of user operating systems, software versions, etc, the documentation was often outdated or not comprehensive.
- Do you like it? Forget about if you think it’s too hard; do you think it’s fun? When you struggle for hours debugging something, and finally, it runs as expected, do you feel a rush of excitement? Do you look forward to having a few hours to figure something out? Those are the things that attracted to me to software -- I just didn’t worry too much about if I could make it or not.
There are plenty of great resources out there to get you started, but I’ll stick with one to avoid option overload. Stanford provides free online access to a good number of CS courses, including three introductory classes. Click here to get started!
This post was originally published on Jean Hsu's blog.
About the guest blogger: Jean Hsu currently co-leads Android development for Pulse News, a mobile news reading app. Before she entered the startup world, she worked at Google as a software engineer for two years. Jean holds a Bachelor's of Engineering in Computer Science from Princeton University. She blogs about her startup adventures and experiences as a software engineer at www.jeanhsu.com. Follow her on Twitter at @jyhsu.