Tag Archives: Codecademy

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.
Continue reading

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.

learning

My Most Helpful Materials in Learning to Program

The number one question I receive about learning to program is which tools have been most helpful to me. It’s an interesting and delicate question for me to answer, because usually the person is hoping to recreate my experience.

I intentionally made the title of this post in reference to my personal materials, as opposed to a generic “Best Tools for Learning to Program”. While, the marketer in my brain wanted to use this broader appealing title to attract a larger audience, it wouldn’t have been has beneficial to you.

Learning styles vary and what works for me, won’t necessarily work for the next.

In this regard, I’ve been careful to write about how to start the process learning to code and important factors to considered in your own personal choices. If you’re just starting out, see these articles for information about getting started:

Once you’ve thought about your best approach, you’ll begin to think about learning tools to help your process and your chosen language. My personal learning approach is entirely focused on building web applications. I’m not trying to be a scholar of Ruby. As a result, I having working knowledge of Ruby, but not necessarily a strong grasp of the language at this point.

Instead, I’ve used the Rails framework to build my application and then only learn aspects of Ruby specifically required to build the next feature. I didn’t start out my learning to program process with this mentality.

When I started, I read a lot online from more experienced developers ranting about newbies only using Rails and not understanding Ruby. Well, that was not going to happen with me. I wasn’t going to be one of those uniformed developers. So I mistakenly made it my goal to learn Ruby from the very start.

I went though material on Ruby basics and covered Procs, Lambdas, Modules, etc. And it gave me a much stronger understanding of Ruby, right? Wrong. I didn’t absorb the Ruby material because I had no context in which to frame it.

Fortunately, I’ve taken an agile approach in learning to program. I quickly dropped the Ruby material and only focused on building an app, knowing that I may need to supplement my understanding of Ruby at a later time. These are the materials that helped me do that:

Best Rails Learning Material

Front-end (HTML, CSS, JavaScript)

  • Codecademy for basic HTML and CSS
  • “Build a Simply RoR App” on Treehouse presents JavaScript and jQuery inside an actual app.

These materials have been most helpful during my first 6 weeks where I focused on tutorials, reading, and creating a baseline level of knowledge to begin building my app. In a future post, I share my materials which have been most helpful for building my first Ruby on Rails app.

Featured image courtesy of Wesley Fryer

Ruby Nuby Project

Rogues Ruby Nuby Project Video

The team at Ruby Rogues is putting together a show, Ruby Nuby Project, based on learning Ruby. They’ve requested Ruby noobs, like myself, to submit a video describing their experience. You can see my video and written response below. Here are the specifics of the request:

Have your Nuby record a 5 minute video talking about their experience learning Ruby. They should answer these questions:

  • Who are you?
  • What do you use Ruby for?
  • How have you gone about learning the language? What resources did you use? E.g. books, videos, blog posts, online courses, one-on-one tutoring, etc.
  • What has been the most difficult, surprising and/or delightful aspect of learning Ruby?
  • What do you appreciate most about the Ruby community?

Here is why I’m learning to program Ruby.

Who are you?

I’m an entrepreneur, digital marketer, and founder of the digital marketing agency Face The Buzz. I’m on a mission to learn to code. I’m dedicating myself full-time for 18 weeks to transform myself from a non-technical person into a beginning programmer. I’m 7 weeks into journey so far and having a blast.

What do you use Ruby for?

I don’t have an engineering or computer science background. I’m learning Ruby so I can use it to develop web apps. My background is in working with technology startups, but never as part of the technical team. My role has always been in marketing. I’ve been extremely fortunate to work with many great entrepreneurs. I want to be part of the early stage development and building of a product.

How have you gone about learning the language? What resources did you use? E.g. books, videos, blog posts, online courses, one-on-one tutoring, etc.

I learn by doing. Therefore, I’ve focused on online tutorials. I’ve used a few online courses, including Code School’s Rails for Zombies, Treehouse, Codecademy for HTML, CSS, and JavaScript. I’m also using a project based approach to learn to program and I’ve begun to work on a web app project of my own. This important step and I hope will help me transition between simple repetition into more critical thinking about programming.

What has been the most difficult, surprising and/or delightful aspect of learning Ruby?

Ruby and Rails have an amazing amount of functionality built into the language/framework. This feature is powerful, but can also be difficult and confusing for trying to understand exactly what’s going on inside an app.

What do you appreciate most about the Ruby community?

I appreciate how receptive and helpful the Ruby community is. Whether it’s sending out a tweet, using online communities, or a meetup, developers have been very friendly and happy to help – you just have to ask.

Rails for Zombies Redux Code School

My Plan to Learn Code

We each have our own learning styles. Because I don’t have an engineering or computer science background, I’m hoping my that previous learning experiences will be applicable enough to this new undertaking to learn code.

Learning Styles

I learn by doing. I’ve previously tried to pick up programming books which were formatted like an academic textbook – an introductory chapter, followed by 10-15 chapters, each on a specific topic. I didn’t become engaged in the material.

With learning a foreign topic, I need to feel like I’m hitting the ground and running. Even if in reality I’m moving at a slow walk, I still need to feel the movement of progress underneath me.

Rails for Zombies Redux Code School

Therefore, tutorials and online lessons will be the bread and butter of my first three weeks. I especially enjoy interactive micro-lessons, where each step involves learning a new concept followed directly with user application. For Ruby, I’ll be using Code School (Rails for Zombies, Git Real). For HTML, CSS, JavaScrip, and jQuery, I really like Codecademy.

Project Based to Learn Code

I have 18 weeks and I know that I can’t simply spend the entire time following other’s tutorials or lessons. Starting with week 10, the halfway point in my process, I’ll start working on a web app project of my own. I imagine I would quickly become mentally fatigued without diving into a project of my own undertaking.

This important step, will serve as a transition between simple repetition and more critical thinking. Also, I’ve selected an app for which my interest will help to motivate and drive forward my learning. I’ll be writing more about the project (and looking for testers!) as the time approaches. The app functionality isn’t a secret, I just don’t want to get too far ahead of myself by discussing it at this point.

And don’t think that I have any irrational expectation that my first app will be a runaway success. My excitement is driven by the possibility of building something useful and interesting.

And if it happens to make a billion dollars, well, that’s just an added bonus. :)

Understanding personal learning style is a critical step in learning anything. Do you learn best by doing, listening, reading, or something else? How would you improve my plan? Leave your thoughts and comments below.