How Codecademy Will Make Money

Codecademy is a service that lets people take free online coding classes, and has received $12.5M in institutional capital. It’s an awesome idea, but how will it make money if it’s billed as free (emphasis added)?

Learn to code interactively, for free.

codecademy

I became fascinated with code later in life than your typical self-taught developer. Part of my journey included using CodeYear and Codecademy to kick off my programming.

While, I didn’t continue on with CodeYear, it wasn’t because of a lack of interesting in programming or Codeacdemy material. In fact, I became more and more interested in learning web development. Codecademy was great material to kickoff my process, which sent me down a path of continued learning and interest. Codecademy appears to be committed to creating a great, engaging product first and then worry about developing Revenue Models later. However, I’m sure it’s on their (and their Investors) minds.

Here are the options, in decreasing likelihood:

1. VERY LIKELY – Digital Advertising/Sponsorship

The site has great traffic, visitor time on the site, and user engagement. Plus, the target audience is very niche, interested in Technology and Computer Programming. The team will have to be careful to deliver ads in a manner which won’t dilute the learning experience.

2. LIKELY – Affiliated Products/Services

All these new programmers are going to need the latest and greatest web development tools. Codecademy would be able to highlight products geared towards the lessons and could even create lessons or projects which interact directly with the software/tools for sale. What better to attract a lifelong user of your internet product then when they are first learning?

3. POSSIBLE – Freemium Content Model

While it is possible the team will sell additional content, such as lessons or products, it doesn’t seem to their advantage to place any barrier in front of an already interested participant. Most users who gain the basic knowledge, when faced with a pay model, would likely jump ship and find another source online to fulfill their needs.

4. UNLIKELY – Job Board

A job board would make for a great PR story. Imagine it now “Total noob acquires all knowledge from Codecademy and lands dream developer job at Google” or some other great company. But, the reality is that the typical user’s skills are going to be light years behind actual professional development talent. It’s difficult to believe the site would ever generate critical mass of qualified developers to justify a job board.

Codecademy will continue to grab the attention of those looking to dip their toes into programming. How do you think they will leverage the product to make money?

Are Developer Bootcamps Worth It?

Developer Bootcamps, an intensive 8-14 week program, allow someone with very little to no experience to immediately jump into the path of becoming a developer. With increasing rates of unemployment, underemployment, and falling wages, these programs have popped up to fill a need – tech companies are in need of developers and people are always looking for means to jump start their career and quickly make more money.

DevBootcamp, General Assembly, and App Academy are a few well known names in quickly growing and crowded list of options. Each program is slightly different, but the cost associated for you to participate is typically north of $10,000. While there is a shortage of developers, are these programs really the answer? More importantly, are they the right solution for you?

When I began my journey to learn to code, I investigated these programs, including in classroom and virtual options. Ultimately for me, charting my own course was my best option. For others, a more structured, group environment may be the best option. But, spending that kind of cash requires some serious thought and research into your potential return on investment.

Developer Bootcamp Data

A scarce amount of hard facts and data exist on graduate outcomes. I’d love to see these organization voluntarily share the raw data on graduates’ hiring rates and financial gains. Unfortunately, you’ll usually only find anecdotal results or headline-grabbing “88% Have Offers At Average Of $79K” declarations. I want the raw data and stats, and think anyone considering these options deserves it.

In an absence of empirical evidence, there are resources trying to provide guidance. You can turn to active Quora Discussions and Technedo.co is trying to grade developer bootcamps. But, the “grade” is based on sentiment reviews by existing participants, who are inherently biased.

Success Stories

There are certainly success stories available to verify that you can achieve your goals by completing a dev bootcamp. You could potentially double your salary, nab a salary of more than $80K, or successful begin your own successful startup.

However, for every success story there are a dozen participants with unfulfilled dreams and empty pocketbooks. My company is currently hiring developers in Los Angeles, and we’ve witnessed firsthand the hardships of graduates. The trend we’ve experienced in recruiting two graduating classes of local bootcamp is that companies compete to hire the select few top tier talent, while the majority of alums continue to freelance or are hired directly by the organization to teach the next cohort or help run operations.

Yes, my experience is very unscientific. But, my gut tells me the success stories are the exception and not the norm. All developer bootcamps are not bad. Your participation and success should depend on several factors:

1. What is your end goal?

When you’re thinking about learning to code and before considering plopping down big bucks for a developer bootcamp, you’ve got to first understand your own end goal. Is it more money? It is better technical expertise to help at your existing job? Do you want to boost your resume? Know the destination before you lay down the path.

2. How have other people in my situation performed?

Without the raw data to know actual results, you’ve got to find a previous graduate with your similar makeup in order to best approximate what to expect. Ask the organization to set you up with an alumnus with similar professional, personal, and education backend as yourself? Take that person to coffee or jump on skype and politely grill them with questions. What’s their learn style? What did they like about the program? dislike? How were they viewed by employers? Use these data points to map out your own potential outcome. And ask them to be your mentor.

3. What are your resources? And how would you evaluate your potential outcomes?

Obviously if you spend the ~$10K and score an $80K job, your resources were put to good use – amazing ROI! But, you need to evaluate other potential results, how that will impact you both professionally and financially, and determine if the risk/reward pays off. If you end up freelancing for 12 months after you graduate, will you be happy? What about if you work 2-3 low-wage internship/apprentice jobs after graduating, will you be fulfilled? Evaluate the 3-4 most likely outcomes and then decide if should move forward.

Do you think developer bootcamps are worth the investment for a beginning developer?

4 Tips to Achieve Your New Year’s Resolutions

With the start of the new year, my mind is on resolutions and how to best achieve these changes I’d like to accomplish throughout the year. I try to bea better person towards others, to live a healthier lifestyle, and to progress my career.

I certainly don’t achieve all my resolutions, but I’ve got an high success rate; the following tips have greatly helped me and they can do the same for you:

#1 Make it Specific

Far too many people make the mistake of creating resolutions that are vague. Vague aspirations make it extremely difficult to truly understand what you want to achieve and therefore even harder to make meaningful strides. For example:

Vague: Improve my health.
Specific: Track my daily calorie intake and exercise at least 329 days in a year (90%).
Vague: Improve my writing.
Specific: Publish weekly posts (52 total) on andrewkkirk.com blog.

Want to know if your goals are specific? Here’s a quick test – can you measure your results?

#2 Make it Measurable

Having goals are meaningless without any frame to reference progress. Tracking your results serves several purposes.

First, measurements give you data to quantify results. Without measurement to keep us honest, it’s too easy to rely on judgement alone. As the resolution creator and judge, we’re biased. Measuring removes judgement from the results.

Second, analytically data will drive your sense of purpose. It’s too easy to lose focus with unspecific, unmeasurable goals. Abstraction is the enemy of your goals.

Tracking data points allows us to be binary. At the end of each week, I will have either completed or not completed an average of one new blog post. By constantly updating progress, we’re provided instant feedback which allows for adjustments. By measuring progress, there are no surprise results – you always know your status. If you’re looking for easy tool for tracking, Lift App is my favorite tool for tracking daily habits.

You can’t manage what you don’t measure. Tweet This

#3 Write it Down

You need to write down your goals. You certainly don’t want to forget your goals, but the implications are deeper. The physical act of documenting your desired results has psychological implications. You create a pact with yourself.

My process involves writing my goals down with pen and paper, then capturing it electronically to be stored in an ever-growing file stored in Evernote. Keep each year stored together and you’ll be happy to see the log over a few years time. I’m already excited for the joy I’ll have when I stumble back upon my current list in 20 or 30 years from now.

#4 Make it Realistic

It’s a new year. Hope and optimism is overflowing. It’s an exciting time, and the excitement can impair our acuity. I’m not talking about giving yourself softball lobs (ever tried to hit a softball? – not as easy as this metaphor implies). Anything too easy will have no meaning or impact.

But, the converse is true. You’ll lose hope and will abandon incredibly difficult or unattainable goals. We don’t change easily, so think realistically. Only you can determine what lies just beyond your current comfort zone.

Bonus: #5 Share Your Goals

Follow #1-4 and you’ll be in a great spot. And if you want to take the process to the next level, tell your goals with others. In addition to your own drive, you’ll have added desire to stick to what you’ve shared.

Share it with your partner, close friends, or on Facebook. In all cases, a positive social pressure will give you an extra boost of motivation.

What are your resolutions and what tricks do you use to be successful?

help wanted

How I Landed a Job Offer After 18 Weeks Learning to Code

tl;dr:
127 days of intensive self-study + pair programming = Programmer Job Offer.

Note: In September 2012, I set out full time to learn to code. This article is the culmination of my experience, which resulted in a job offer in January 2013. 

My background is in working with amazing startups and technology companies focusing on sales and marketing. But, I wanted to do more, to build and to be at the core of building a product. On September 10, 2012 I began an adventure, a mission to teach myself to code.

Before I started my journey, I considered myself a very computer savvy, non-technical person; I understood the basics of the web, front-end design, and had run through a few Codecademy tutorials. But, I couldn’t code up a web page from scratch, had never interacted with a database, nor did I fully grasped the web stack.

Why Learning to Code Full Time?

Why did I decide to drop everything and learn to code full time? Learning to code part-time, in my free time, wasn’t sufficient for where I wanted to take my skills and understanding. I didn’t gain the breadth of knowledge or tool set I needed to do anything meaningful, while learning to code at night and on the weekends.

Also, the timeline didn’t make sense to me. Patience is not one of my virtues. To push myself above a novice programmer, I was looking at grinding away slowly in my spare time. I’m results driven and need to see a more immediate impact to keep me motivated.

Going full time removed time and work hurdles from my learning to code experience. I was fortunate to have built a business to a place where I had a financial cushion.

While it was successful, I was running full steam and exhausting myself. As a result, I either needed to expanded the business (hire more people) or refocus the strategy. After carefully analyzing the opportunity, I wasn’t attracted longterm to a B2B services business.

So I took the money and invested it in myself, paying myself a salary for three months while I dedicated 100% time to learning to program.

My Learning to Code Plan

I crafted my own plan to learn to code, with lots of help and insight from others. I learn by doing.

Therefore, I utilized a project based approach to learn to code. The first seven weeks I spent reading and completing various online tutorials. In week 8, I started working on a web app project of my own. This important step was to force me into more critical thinking.

I should have started writing my own code earlier. Starting on my first project was a rush. This euphoria was quickly followed by the realization of how lost I was.

But these mini-panic moments were actually helpful. Hitting a moment when I don’t know how to move the app forward, was actually learning opportunities (disguised as error messages) literally popping up on my screen.

This is as a good time as any to emphasize how much I relied on other people to learn. I was very fortunate to meet amazing developers who gave up time to help me out. Discussing code, pair programming, and line-by-line code reviews were the single most important steps in my entire process.

Big props to my mentor, Joe Goldberg, who guided me throughout the entire process.

Entering the Job Market

Heading into the 12th week, I felt my best opportunity for growth would require me to work full-time as a developer. My biggest strides occurred working alongside other developers.

Finding a suitable job opportunity was the most difficult aspect of this experience. I applied to entry-level jobs listed on job boards. I used my network extensively; I spoke to developer friends, folks from meetup groups, recruiters, and I responded to 63 Hacker News job listings. Companies in which I was interested simply didn’t have the resources or desire to train me. I was turned down many times.

As weeks passed, I was beginning to lose hope. I contacted Originate in Los Angeles, and they too didn’t have a place for me. I reached out directly on LinkedIn to Rob Mallery, an executive at Originate.

We jumped on a 20 minute call and he referred me to the recruiter who would ultimately find me the job offer. She knew of a few companies looking for junior developers. One comapny, a web development agency with 12 engineers, had an opening that in particular grabbed my attention. I was very under qualified as compared to the required skills, but the recruiter encouraged me to apply anyway.

The Interview

Based on my resume, I was invited in to interview. I spent the 24 hours leading up to the meeting prepping for questions.

Funny side story: When I arrived, there was a buzzer to enter the office space. However, when I hit it, there was no sound nor response. I knocked and hit the buzzer several more times without any response. I could see lights on inside and started to panic.
Wait. Was this my first test? I had read harrowing “Google-Amazon-style” interview tests that potential engineering hires underwent. My mind raced. Was I being tested right out of the gate?
Well, no it turns out the buzzer was just broken and another employee happened to appear and let me in.

To minimize this already growing post, I’ll cut short details regarding the interview process. If you’d like more specifics about the interview process, let me know in the comments.

Job Offer Result

I spoke to the recruiter that same afternoon, told her I thought it went well, and was told I would either way soon. The next morning she sent me email saying I was offered a junior developer role with a strong base salary, 401K match, 17 vacation days, and medical/dental/vision benefits.

Conclusion

So I’m a Junior Developer Engineer now, right? Well, the story isn’t that simple. After much contemplating, discussion with family, friends, and trusted mentors, and a serendipitous set of circumstances, I ultimately turned down the job offer. I’ll save my reasons for that decision for my next post.

computer science degree

Hope for Non-CS Majors Learning to Program

I don’t have a computer science (CS) nor engineering degree. I didn’t drop out of college or skip it all together because I was buried in lines of code working away as a developer. It’s the reality of my background.

As a result, I’m certain there are important technical aspects of software development that I don’t understand. In fact, I would bet there are technical aspects of computers and programming that I don’t even yet realize that I don’t know about.

And the truth is that I’m okay with it. After starting to program, thoughts of being in over my head crept in. How could I possibly get my programming abilities to be equivalent to an entry-level developer? But that’s no longer the case. I’ve come to terms with the fact that I’m a non-CS degree web programmer.

Are College Degrees All Hype?

There has been lots of noise the last few years about college debt and people bucking the college trend (“college is for suckers”). So you might think I’m better off. Well, don’t take these stories as the almighty truth; in fact, you can chalk up the uncollege movement to PR fluff.

I’m not saying that this movement doesn’t have valid arguments and dedicated, intelligent individuals working to disrupt an educational industry desperately in need of it. But, if you want to gain professional employment as a developer today, every job description will mention requirement of a CS degree or equivalent experience (EE). Perhaps employers in the future will catch up to speed with the trend away from college degrees, but not yet.

Interestingly, spending four years in school doesn’t necessarily prepare you as a programmer on Day 1. The degree is often used as a ‘stamp of approval’ to indicate you’re capable of learning new, complex material. Ultimately, your skills at development boil down to time invested in honing the craft.

Succeeding Without The CS Degree

A computer science degree will make it much easier to get your foot in the door with employers, but you can still do it without one. If you’re in the same boat as me and a CS degree is not an option, you’ve got to take other avenues in order to gain more experience.

If You Build It, They Will Come

Nothing speaks louder about your abilities as developer than demonstrating the code you’ve created. Create your own apps and contribute to open source. It will enhance your abilities and open doors within the developer community.

Or you can go the route that Bryan Helmig and the other Zapier cofounders took. None of these guys have a CS degree, but they’ve built a budding SaaS business, gained customers, and were accepted and successfully completed YCombinator. Bryan’s own words on the experience  are worth the quick read.

Ignore Formal Job Descriptions

If running your own company is not your fit, there are still many great opportunities. If you’re a self-taught programmer, than you’re incredibly self-motivated and driven.To find an employer to hire you and give you experience, you’re going to have to harness that same spirit.

Take that same drive and apply it to convincing a person to hire you. You’re not going to woo anyone on paper with your resume; you’re going to do it in person. Look for companies that are hiring entry-level engineers (<2 years experience) and network with their current engineers using LinkedIn or better yet at local meetups. Also, look for companies with multiple open engineering positions; companies in need of talent will be more likely to place a bet on hiring you on the cheap in order to develop your skills further.

Non-CS Majors Learning to Program Conclusion

Whether you have a computer science degree or not, learning to program requires much hard work, determination, and perseverance. Be prepared that if you don’t travel a traditional route, you’ll need to hustle a little bit harder to create your career path.

UPDATE:  Join the discussion on Hacker News.