GUEST POST #1: Programming at 30 by Henry Lopez

Below is a guest post from a good friend of mine, Henry Lopez. Henry is an incredibly positive and upbeat person - I have no doubt that he will succeed with the projects he details below. Good luck with your new efforts Henry and let us know when the series A funding round begins!

Oh the excitement of starting a new hobby!  Based on my favorite sites like Tech crunch and Hacker News, my hobby is a favored past time of twenty-year old college kids or young graduates in Silicon Valley; not older business professionals.  It seems that being older disqualifies you from becoming an expert in technology. Like the words computer science major or information technology can only be learned by a younger generation.  About a year ago, after I turned 30, I started to get into programming and building computer applications. I would like to share my experience and hopefully it will encourage people of any age to utilize technology and build something cool, even if you don’t have the tech background.

Fact: Computer science is super difficult…but anyone can program.

With technology the world is shifting, demand for programming skills is increasing, and it is becoming clear that you did not need a computer science degree from a prestigious university to be able to program.  Let’s face some simple facts, mothers in Shanghai and Mumbai are enjoying outsourced contracts building computer applications or designing websites.  Recently, children are also getting famous for their programming initiatives.  This little brat, Robert Nay, at the age of fourteen, created an IPHONE app that topped Apples Global free app download chart.  So it became clear that if moms and children can build these applications, I am pretty sure I can learn this material. 

Step 1: Pursue a passion; focus.

My interests stemmed from the idea that I can build something useful and fun using technology.  If you really want to jump into this field then it is imperative that you have a project that you would like to spend countless hours developing.   My project is foreign language learning (another hobby).  While I was an undergraduate studying international business,  I was an enthusiast of foreign languages. The problem is that learning a foreign language is very difficult and I was constantly looking for ways to become proficient in languages faster.  I was very upset with  Rosetta Stone or websites like Live Mocha and Bussu.com because there is a divide between the language and how people learn languages, so I started to develop my own project.  With a project in mind I could research the technology that I needed and slowly start to learn and master the technology. Since I had to start from zero experience, the big question was where would I get my training and information from?

Step 2: Get out of the house and make some friends.

I honestly think being older makes you more focused, analytical, and resourceful.  Case in point, at this stage in my life, I don’t have the resources to go back to school full-time and pursue a masters in computer science…still thinking about it though!  I know I don’t have enough knowledge to gain anything insightful from an internship, so I looked for the next best thing.  I found a mentor and a local technology focused meet-up! In this field there are so many people out there hungry for knowledge, mostly because it is fun to play with.  These people are your best source of support and are wonderful sources of experience and expertise.  For example, I learned that the system I am building would technically be called an intelligent computer aided language learning system (ICALL).  I would need to understand the basics of applied Artificial intelligence and spend time learning LISP, a powerful AI language.  I would also need to become acquainted with machine learning MT, Natural language processing NLP, and data mining.  One particular language that incorporates these technologies, which is versatile and free, is Python.  Since I want to run a website, learning some HTLM 5 would be fun, as well as getting to know a little bit about C# for building an IPHONE application.  The only way I could ever get this information is by being with very smart people who are very familiar with programming. After months of attending meet up, talking with programmers, I was able to focus my project on the technology that was best for my idea.   I even found a great mentor who is acting like a project manager and keeping me disciplined and giving me great guidance.

Step 3:  You have to work at it!

My last bit of advice would be to incorporate daily study and development rather than ruminate on the internet and waste precious time.  The more time on task the better your skills will become.  It is a simple equation yet I am surprised by newbies who consistently spend more time researching the next big idea, or trying to figure out the best programming languages to learn to land a better job in the future.   Nothing beats practice, getting things wrong, and figuring out how to make them right.  If you are looking for classes, the internet is jammed packed with tutorials and tons of programming languages libraries that can help you build everything from your own MP3 player, to a statistically based machine translation software for several languages.  

Some sites that have helped me are:
MIT OPEN COURSE WARE: you can learn everything from Calculus III to how to program in C, C++, and Java.  Most of the courses comes with video, lecture notes, and graded examples.  Plus these course are free and will beat any community college courses you are thinking about taking.
GOOGLE CODE UNIVESITY:  here you learn how to program websites and how to become proficient in other programming languages. I mean if GOOGLE has free lessons you should probably take it!
STACKOVERFLOW:  I love love love this website.  If you don’t have a mentor or meet-up, and you have tons of questions than this is the site to do initial research.  Most of my questions were either referred to other posts or answered by very smart people.  The site can give you advice on math, stats, advice on debugging programming problems, recommend AWESOME BOOKS, and even give you insight into new fields. 

Step 4: Don’t give up!

Whatever your goal I really believe that with a little time and dedication you can learn anything. Anything related to computer science or information technology is hard but not impossible, even if you don’t have an engineering background or if you are 30!  The last great thing about my hobby is that is has changed my profession.  Now I get to learn great technology and get paid for all my hard work building one skill at a time.  Trust me if I could do it than you can do it!