I'm super confused. This is actually how they created their business. This is not how they expect to teach people, or even how they're currently doing it. Still interesting from a business perspective, but the title is way the hell off from the content.
I can see how it could be confusing, but for us, finding our business model and learning how to teach were in tandem with one another.
I think the main thing we discovered about teaching was that we weren't going to get anywhere by relying on other people to do the teaching for us, or with a fancy web application. The thing I find most interesting about our story was that it took us four iterations to realize that the best way to teach people was also the simplest -- teach what we know and do it directly. As far our methodology, it's going to be pretty simple: try to teach people, online, as if they were all in the room with us. That means lots of Skype calls, chat room, etc.
I know Jared casually (having been involved with Office Hours) and I think he has an interesting story that's worth the attention. There's a mismatch with the title here though.
Figuring out a business model that results in a better clientele is an achievement, but we learn how to find good people to teach rather than "how to actually teach people to program" in general. This model dismisses those with a casual "tourist" interest in order to focus on those who are already motivated. Business wise, that's a great idea for Jared, but companies or teachers looking to have a mass impact will need to keep doing their research because many a tourist has turned into a fine developer (and some are finding success in this area with wildly differing models - Treehouse, Code School, Zed Shaw, etc.)
Yes, the title is definitely out of whack with the article.
My take is that a key part of learning how to program (or anything new, in general) is in the motivation - if your student is just "kicking the tyres" then forcing them to commit $3k or making them digest an entire book is only going to deter them.
Once they're motivated though, they'll usually plow through obstacles that would've stopped them just last week. So give them small wins at first and give them an idea of what it's all about, then ramp up the difficulty once they've figured out what they want to do.
A common "tell" for this I find is that they move from "how does 'x' work" to "I need to do this thing; how do I do that?" combined with doing lots of stuff (They might do it in a weird, non-programmer way, but they'll still be doing it).
I investigated this space too and I realized in a recession, you could find good people to "convert" rather than "teach". I'm sure the offering will evolve as you they proceed and be able to take fresher students.
Bloomberg LP, Zoho and Infosys all have very good versions of this in-house. Convert a economy major into a developer who knows C,C++,Fortran or Cobol in 4 months.
Zoho does it with high school grads but their process takes like 2 years I think for them to be contributing engineers.
I like the part where they get people to commit to atleast 3 hours. In my model I assumed you would need 8 hours of full commitment per day.
I don't want to discount the existing resources out there either. One of the first things we have students do is start out with some reading material, and Beginning Ruby is one of them. We'll also be recommending Michael Hartl and Zed Shaw's materials if they're relevant to the student's goals. We move them at a much faster pace than they would push themselves, and we're also there to help if they get stuck or don't understand something.
I think lots of models can work, but we tried what we saw as the holy grail of "we'll deploy on your behalf, build the editor, and structure the guide" model and keeping the user in the browser just doesn't work.
I have used bloc and I must say it is a bad product. It doesn't challenge you to figure out what to do and allows you to just copy/paste pre-written code they have provided. After using it I got the feeling that I had not learned a damn thing.
I've tried Bloc, well I've tried everything! (Code School, Codecademy, Treehouse and many more)
None of them address the frustrations of WHY other programs don't stick.
After an in-browser coding course - the pupil isn't left with anything. (except a false sense of achievement)
There's no project to put in your portfolio. Nothing live on a website, no repository in GitHub.
It's also pretty much impossible to show others what you have learned outside of the website.
After a course, comes the question, "if I want to start my own project or replicate what I just learned outside if the learning environment, how do I go about it?"
That makes you feel like you're back at square one.
Learners don't get a sense of achievement from "Hooray, you built your first app" they get it from building something they can either use or at least show to others that it works.
To actually teach people to program, you can't do it in an online environment that is far removed from actually building real projects.
I look forward to seeing something that combines the support that Bloc offers with the working projects of Udacity - helping to set people up with their own development environment that they can use for their own ideas.
1)An in-browser coding environment that starts with classes and then supports any project you build.
Once this type of environment exists and experienced developers prove that it works with impressive applications - people will see it as a viable learning route. This could be monetized as a SaS, monthly subscription.
2)A package to download/install that creates a local development environment. It could even be some progression of Light Table, with classes, forums & support!
This is something that I tried to cover when I wrote my book (Hello! Python). Most experienced devs will have a library of stuff which they crib from to get going, or which solves tricky problems or library issues that they had.
Beginners don't have that, so I picked as wide a variety of programs as I could get away with for each chapter. Presto! More-or-less-instant set of bits for creating simple UIs, games, business-y programming (csv, web scraping+parsing, emailing, etc.)
You may have tried our first product, trybloc.com. We're doing www.bloc.io now, which is very different. Give it a look and apply if you want that portfolio :-)
Hey Jared, enjoyed reading this. I'm in your target- Previous startup founder, just quit an agency gig to learn to code full-time.
Bloc was on my radar but the $3k price point just didn't make enough sense. I have a pretty strict burn rate (~2k month) for the summer. Using Bloc sounds amazing, but it takes a month and half out of that runway. I don't want to be worried about money, I only want to be worried about learning. Maybe you take a cut when I'm hired at a startup?
Sans Bloc, I squeeze every resource I can find online to learn (Zed, Hartl, Pine) and connect with people who can do casual office hours. Set a cirriculum for myself and bug dev friends / SO when I run into something I cannot get past. Tougher but I'm learning the whole time.
In my experience, the code review, office hours and peer-peer cohorts are super valuable for someone learning on their own. Good luck w/ Bloc and hope there's a good fit soon!
So I originally got an email from Roshan, who asked if I wanted to join your first cohort. I think at that time, you guys were offering for $500. I actually said yes, but then Roshan replied that you guys filled up quickly.
I then asked him if I could join the second cohort. This time I learned that the price moved to $1000, and he again told me that he would contact me as soon as they open a class.
So is the class now $3k? What made you switch the price point?
Also, I am still interested in going through it, but I really need someone to reply to me. Plus, as fellow UIUC alum/enterpreneur, would truly appreciate that.
I figured I would jump in here too. I am currently a part of the first cohort that is going through the program now at the $500 rate. I know that both myself and a few others practically begged them to raise their prices. It was HUGELY undervalued at $500. Value aside also, I think $500 is not really the kind of figure that really demands a certain level of commitment from the other students involved in the course. While $500 isn't something you just happen to find in your wallet, for a lot of people they are still able to write it off mentally when things get difficult.
This piece hits on something that as a former teacher it has always been very frustrating for me to not see mentioned in most discussions of online learning: motivation. One of the main things that teachers have to work hardest on in all but the most elite schools is motivating their students. That is very difficult as it is, and doing it without physical proximity it becomes potentially impossible.
It may be that this can be handled, but it needs to be discussed. You can't just gloss over it and talk more about the stuff that is interesting to programmers to implement.
Title aside, what I really like about this article is the section that talks about teaching terminal and text editors.
I've been learning to code over the last few months, and while I've got a reasonable handle on it now, by far the most difficult thing for me was understanding how the dev tools work together (terminal, git, virtualenv etc.)
There seems to be a tendency for coders to underestimate how steep the learning curve on dev environment is for noobs. I think there's also a reticence to deal with a fiddly topic that depends so much on the settings that the individual has on their computer.
The irony is, you HAVE to understand dev environments before you can actually make code do stuff. I know more than one person who's been turned off by how hard it was to get started.
I know that means they probably didn't have the commitment needed, but for those that do, setting up dev tools as a hazing process still isn't fun.
I think dev tools, as a microcosm of human tools in general, are fascinating. I think if you zoom out a bit, it's clear the tools have plateau'd in their complexity and power -- that's not to say they aren't advanced or fucking awesome. But the pace of things seems to have slowed.
Like you noted, a lot of the complexity comes from how the tools work together. There's version control, editing, code intelligence, test suites and test runners, different sorts of environments, and more. And every possible permutation and nuanced setup depending on the runtime you're using and depending on how opinionated and/or fickle the community is around whichever language you're using.
Meta-problems of this kind are seldom discussed directly and are difficult to improve upon. I suspect things will get better slowly, and problems we have now will seem trivial and quaint in the future.
EDIT: What heroku has done for the production environment, I want for the development environment.
I'd be interested to hear what's happened with the graduates. Do they go on to actually be employed in web dev? The testimonials all say how great the program is, but I'd like to hear how the ROI is.
When we announce our demo day, where our students show off their products, you can be the judge :) We also plan on gettin them intros to various companies--I will be reaching out to YC alum personally.
Hey Jared, post wanders a bit but you bring up some good points. Definitely right about investors. At AngelPad, the refrain was always "product, solution, team, traction", but in terms of securing a commitment, who else is in the round matters WAY more than anything else. Traction matters too, but it's a distant second behind who else is investing.
Just proves how much opportunity exists for those willing to stick their necks out and think independently, even in this world of supposedly very smart and "rational" people.
There seems to be a disproportionate difference between perceived intelligence of males and females. The males rank much lower. Could this be due to a bias towards males in the people who were voting? I imagine if the voting sample was mostly male, then females would come out more favorably generally.
[+] [-] zedshaw|14 years ago|reply
[+] [-] hanibash|14 years ago|reply
I think the main thing we discovered about teaching was that we weren't going to get anywhere by relying on other people to do the teaching for us, or with a fancy web application. The thing I find most interesting about our story was that it took us four iterations to realize that the best way to teach people was also the simplest -- teach what we know and do it directly. As far our methodology, it's going to be pretty simple: try to teach people, online, as if they were all in the room with us. That means lots of Skype calls, chat room, etc.
[+] [-] petercooper|14 years ago|reply
Figuring out a business model that results in a better clientele is an achievement, but we learn how to find good people to teach rather than "how to actually teach people to program" in general. This model dismisses those with a casual "tourist" interest in order to focus on those who are already motivated. Business wise, that's a great idea for Jared, but companies or teachers looking to have a mass impact will need to keep doing their research because many a tourist has turned into a fine developer (and some are finding success in this area with wildly differing models - Treehouse, Code School, Zed Shaw, etc.)
[+] [-] anthonyb|14 years ago|reply
My take is that a key part of learning how to program (or anything new, in general) is in the motivation - if your student is just "kicking the tyres" then forcing them to commit $3k or making them digest an entire book is only going to deter them.
Once they're motivated though, they'll usually plow through obstacles that would've stopped them just last week. So give them small wins at first and give them an idea of what it's all about, then ramp up the difficulty once they've figured out what they want to do.
A common "tell" for this I find is that they move from "how does 'x' work" to "I need to do this thing; how do I do that?" combined with doing lots of stuff (They might do it in a weird, non-programmer way, but they'll still be doing it).
[+] [-] keeptrying|14 years ago|reply
Bloomberg LP, Zoho and Infosys all have very good versions of this in-house. Convert a economy major into a developer who knows C,C++,Fortran or Cobol in 4 months.
Zoho does it with high school grads but their process takes like 2 years I think for them to be contributing engineers.
I like the part where they get people to commit to atleast 3 hours. In my model I assumed you would need 8 hours of full commitment per day.
[+] [-] jmtame|14 years ago|reply
I think lots of models can work, but we tried what we saw as the holy grail of "we'll deploy on your behalf, build the editor, and structure the guide" model and keeping the user in the browser just doesn't work.
[+] [-] pg_bot|14 years ago|reply
[+] [-] endlessvoid94|14 years ago|reply
If that sounds like something that interests you, I'd encourage you to apply!
[+] [-] helen842000|14 years ago|reply
None of them address the frustrations of WHY other programs don't stick.
After an in-browser coding course - the pupil isn't left with anything. (except a false sense of achievement)
There's no project to put in your portfolio. Nothing live on a website, no repository in GitHub.
It's also pretty much impossible to show others what you have learned outside of the website.
After a course, comes the question, "if I want to start my own project or replicate what I just learned outside if the learning environment, how do I go about it?"
That makes you feel like you're back at square one.
Learners don't get a sense of achievement from "Hooray, you built your first app" they get it from building something they can either use or at least show to others that it works.
To actually teach people to program, you can't do it in an online environment that is far removed from actually building real projects.
I look forward to seeing something that combines the support that Bloc offers with the working projects of Udacity - helping to set people up with their own development environment that they can use for their own ideas.
[+] [-] helen842000|14 years ago|reply
1)An in-browser coding environment that starts with classes and then supports any project you build.
Once this type of environment exists and experienced developers prove that it works with impressive applications - people will see it as a viable learning route. This could be monetized as a SaS, monthly subscription.
2)A package to download/install that creates a local development environment. It could even be some progression of Light Table, with classes, forums & support!
[+] [-] anthonyb|14 years ago|reply
Beginners don't have that, so I picked as wide a variety of programs as I could get away with for each chapter. Presto! More-or-less-instant set of bits for creating simple UIs, games, business-y programming (csv, web scraping+parsing, emailing, etc.)
[+] [-] endlessvoid94|14 years ago|reply
[+] [-] bomatson|14 years ago|reply
Bloc was on my radar but the $3k price point just didn't make enough sense. I have a pretty strict burn rate (~2k month) for the summer. Using Bloc sounds amazing, but it takes a month and half out of that runway. I don't want to be worried about money, I only want to be worried about learning. Maybe you take a cut when I'm hired at a startup?
Sans Bloc, I squeeze every resource I can find online to learn (Zed, Hartl, Pine) and connect with people who can do casual office hours. Set a cirriculum for myself and bug dev friends / SO when I run into something I cannot get past. Tougher but I'm learning the whole time.
In my experience, the code review, office hours and peer-peer cohorts are super valuable for someone learning on their own. Good luck w/ Bloc and hope there's a good fit soon!
[+] [-] jmtame|14 years ago|reply
[+] [-] ahsanhilal|14 years ago|reply
I then asked him if I could join the second cohort. This time I learned that the price moved to $1000, and he again told me that he would contact me as soon as they open a class.
So is the class now $3k? What made you switch the price point?
Also, I am still interested in going through it, but I really need someone to reply to me. Plus, as fellow UIUC alum/enterpreneur, would truly appreciate that.
[+] [-] mhoad|14 years ago|reply
[+] [-] choxi|14 years ago|reply
Sorry about that, things got a little hectic and it just slipped my mind. Sending you an email right now.
[+] [-] sopooneo|14 years ago|reply
It may be that this can be handled, but it needs to be discussed. You can't just gloss over it and talk more about the stuff that is interesting to programmers to implement.
[+] [-] endlessvoid94|14 years ago|reply
You pay a personal trainer, and you (theoretically) grow from the experience and get value. But you still need to show up to the gym.
[+] [-] pjbrow|14 years ago|reply
I've been learning to code over the last few months, and while I've got a reasonable handle on it now, by far the most difficult thing for me was understanding how the dev tools work together (terminal, git, virtualenv etc.)
There seems to be a tendency for coders to underestimate how steep the learning curve on dev environment is for noobs. I think there's also a reticence to deal with a fiddly topic that depends so much on the settings that the individual has on their computer.
The irony is, you HAVE to understand dev environments before you can actually make code do stuff. I know more than one person who's been turned off by how hard it was to get started.
I know that means they probably didn't have the commitment needed, but for those that do, setting up dev tools as a hazing process still isn't fun.
[+] [-] endlessvoid94|14 years ago|reply
Like you noted, a lot of the complexity comes from how the tools work together. There's version control, editing, code intelligence, test suites and test runners, different sorts of environments, and more. And every possible permutation and nuanced setup depending on the runtime you're using and depending on how opinionated and/or fickle the community is around whichever language you're using.
Meta-problems of this kind are seldom discussed directly and are difficult to improve upon. I suspect things will get better slowly, and problems we have now will seem trivial and quaint in the future.
EDIT: What heroku has done for the production environment, I want for the development environment.
[+] [-] snootyusher|14 years ago|reply
[+] [-] jmtame|14 years ago|reply
[+] [-] eldavido|14 years ago|reply
Just proves how much opportunity exists for those willing to stick their necks out and think independently, even in this world of supposedly very smart and "rational" people.
[+] [-] _feda_|14 years ago|reply
[+] [-] endlessvoid94|14 years ago|reply
[+] [-] berberous|14 years ago|reply
[+] [-] jmtame|14 years ago|reply