On Being Self-Taught (or How I Saved $10,000)

When it comes to programming, I’m a fair hand at several languages – PHP, MySQL, javascript, several others, and a number of frameworks.  I ended up teaching myself out of what amounted to necessity1  I learned by looking at source code, checking some books out from the library, buying several books, going through several online tutorials, and pestering a friend of mine with questions.

I’ve found there are some very interesting upsides and pitfalls to having been self-taught.  These things are brought to mind by two events of today.  The first is finding out that Kio Stark is coming out with a new book about how to learn anything without going to school called, “Don’t Go Back To School.”  The second thing I saw today was an article on Business Insider called, “The 20 Most Innovative Startups In Tech.”  (Spoiler:  MakerBot made the list!)  The first startup featured is “Codeacademy,” which is a website for teaching people javascript.

Being a self-taught javascript programmer, of course I had to try out Codeacademy’s website.  After all, how great could it be?  The answer is, “pretty great.”  The lessons are very short and presented in a very interactive fashion.  As you complete each little interactive component you’re rewarded with immediate feedback and a nice little green checkmark.  When you reach certain milestones, you get a message saying you’ve gotten a badge for this or that.  The examples are short and whimsical – with the added draw of “leveling up” as you play/learn.  In any case, these lessons really work on a lot of levels.  Some people learn by reading (check), some by watching (check), some by doing (check).  If Codeacademy lessons had a voice reading the material to you, they’d basically be a complete drop-in replacement for a classroom.2

But, back to the upsides and pitfalls of being self-taught.  I think the biggest upside is that I tended to learn a lot of programming tricks, mostly from having taken apart other peoples’ work to find out how it worked. 3  I also ended up writing a lot of tools that would automate the writing of code.  I don’t know if this is common practice for others, but I found it very useful to have developed them.  I also did a lot of things the hard way… like building my own AJAX engine from scratch rather than using a library like jQuery. 4  But, doing things the hard way means you really get to know the how’s and why’s of what makes something work – and what causes problems.

There are two small downsides to having taught myself programming.  First, there are some things I don’t know.  After trying out Codeacademy’s website tutorial I found a pretty basic function that I would have learned the first day or so of a programming class.  This means sometimes I’m doing things the hard way.  Secondly, I am slightly self conscious about my programming skills.  Admittedly, I paid about a bajillion times less for my expertise.

Doing the math here…  I spent about $50 total on about four books.  Other than those books, everything else was free.  I read tutorials online, looked at other people’s code, and talked to some friends.  I learned enough within three months to be able to build a small side business for myself, but it wasn’t for another six months before I was doing things well.  Someone taking programming classes at a college would have had to spend money on tuition and books and would have had to learn at the same pace as all the other students.5

In sum, here’s the two most important things I’ve learned about being self-taught:

  1. By learning on my own, I had the opportunity to learn the most interesting and relevant things first as quickly as I could assimilate them.
  2. Ten years after grad school and being in the work force, I’ve learned that being able to do the job is more important than having a degree or certificate that says you could.

Also, if you get a chance, help fund Kio Stark’s kickstarter page for her upcoming book “Don’t Go Back To School” which will include interviews with self-taught people and step-by-step instructions on how to learn anything.

  1. Read:  unemployment []
  2. Reminds me of the ]
  3. At the time I was learning, the show Heroes was very popular.  I came to refer to this process of cannibalizing others’ code so I could learn how it worked as “Sylar-ing”.  It would make more sense if you’ve seen the show. []
  4. Now I don’t know how I’d get along without jQuery! []
  5. Since I am a college graduate, I did spend money on tuition, books, and pizza – but for degrees completely unrelated to computers, programming, and technology.  So, by teaching myself how to program it was like getting a third degree for $50.  That’s got to be worth at least $10,000. []

It’s the little things in life

I’ve got a funny day job.  Some days I’m out and about at meetings.  That’s where I was for the last three days.  Some days I sit at a desk.  Today was one of those days.

I spent basically the entire day wrestling with a HUGE spreadsheet made by someone else who just doesn’t understand the concept of elegance.  Seriously?  A spreadsheet of 400,000 rows to perform one calculation?  That’s just insane.  In the time it took for me to understand what they had done, I am pretty sure I could have mocked up about 85% of a PHP script to knock the answer right out of the park.

I don’t do these kinds of calculations often.  I’d say that on average most people in my industry never do a single calculation like this – leaving to others who are more interested in doing so. 1  There were several false starts with me basically finishing the calculations, doing a write up… and then realizing that I had forgotten something.  It’s taken me about two days worth of work to iron this thing out.  And, quite frankly, I loved every minute of it.  Of the very few people in my industry who actually bother to run these numbers, most just shoot for an approximation. 2  And of those very few people, no one really runs these calculations all that often.

Having just experienced the WORST way to run these calculations, I’m ready to build the best way to run these calculations.

  1. Such as, yours truly []
  2. Approximately???  What do you mean “Approximately”? []