August 10, 2012

Education is Our Generation's Big Problem. Let's Fix it.

## Education in Crisis

Education in the United States is nearing crisis. According to a recently released [government report](, total student loan debt in the United States is estimated at more than 1 trillion dollars, surpassing total credit card debt and putting it at more than [40% of all consumer debt]( in the United States.

Student default rates tell the most chilling story. In 2009, the Department of Education reported that 8.8% of students who graduated in 2009 [defaulted on their loans within 2 years of graduation](

The 8.8% figure only shows part of the story. The DoE's 2 year default tracking window hardly captures the problem , given that the first payment can be [deferred up to 420 days] ( after graduation. On average, defaults occur [at the 4 year mark](, well outside the 2 year window.

Taking this into account, the number of student loans that are in default is probably somewhere in the [40% range]( Given that 53.6% of bachelor graduates last year were [unemployed or underemployed](, should we really be surprised that the default rate is so high?

![Earnings vs. debt](

Defaulting on a student loan is a serious matter. Once you default on a student loan, you'll be hounded for life: student loan debt is the absolute worst kind of debt you can have, as it is [not absolvable by bankruptcy]( Do I even need to mention which segments of our population rely on student loans the most, and thus are getting screwed the most by the student loan crisis? Hint: It's not the happy white suburban family of 4.

Keep in mind: these are not people taking on debt to buy a new SUV, bigger house or more clothes. These are people who took on debt to *better themselves* and subsequently, their earning power. **These are the believers of the American Dream.** And they are getting royally screwed over.

Oh and by the way: the more money is poured into the educational system, [the more wastefully it is spent]( Between 1993 and 2007, instructional spending at universities increased by 38%, administrative spending  by 61%, but student enrollment? Only a modest 15%.  Why administration had to grow 4x the pace of enrollment is beyond me.

**In summary, we are spending more money per student,  to prepare them for jobs that less than half will be able to obtain, all the while saddling them with permanent, crushing debt.**

Faced with a dire situation like this, many graduates [contemplate suicide](

## Looking towards the future

### Stop the Degree Fixation

Learning is the original purpose of university. There was a time when entering university meant casting off society and entering a monastic order. Glorifying god through learning and study was a student's purpose. At some point, educated people became economically valuable and the purpose of university began to change.

Once graduates began earning money for learning, it created a virtuous cycle for learning. Students would learn and earn their degrees. Graduates would earn money. Some of that money got donated back to the school, enabling more people to learn.

![LDM loop](

When learning loses priority, we are left with a picture like this instead.


And thus the diploma factory is born.

The belief that a degree = money belief is why Kaplan university is able to [prey on the hopes of lower-income students]( despite having 30% of their students [default within 2 years of graduation](

This shift in priorities is also why you will see universities putting more money into [the trappings of higher learning](, such as a nice campus and athletic facilities.

We need to move past the piece of paper as the end game of learning.

### Stop loaning out money indiscriminately

As long as student loans are going to be made, they should at least be made wisely. Student loans are based on the idea of future solvency. In other words, the student borrower can't pay the loan today, but after education, they can obtain a better job and pay off the loan.

If this is the core idea of student loans, then how come University of Phoenix, despite a  [23% default rate](, is still able to obtain [86% of its revenue from government student loans]( Universities that sell the idea that a degree = money should make good on their promise.

Fortunately, the Obama Administration identified this problem and recently put regulations into place that require for-profit universities to meet at least one of three "gainful employment" standards. Unfortunately, their standards are not yet tough enough, with only [5% of schools on the chopping block]( after the new standards go into effect.

### Spend money more efficiently

From 1993 to 2007, our top universities increased administrative spending by 61% and instructional spending by 38%, while enrollment during the same period increased by only 15%. This means that our educational institutions are *diseconomies* of scale. The bigger they get, the more inefficient they become.  

Why does this happen? Because universities are not spending their own money:

![Diseconomies of scale](

As the government increasingly subsidizes higher education, university spending on administration falls into the bottom left quadrant. That quadrant is like going out to lunch on the company tab. You'll get the best thing on the menu, and you don't care about saving money.

University spending on instruction falls into the bottom right quadrant. It's like your mom giving you an American Express Black Card to buy your brother a birthday present. You're not going to be extremely careful about what you spend it on, and anyhow, if you buy the wrong gift, you can always go back and buy him another one.

## Conclusions

Of course, with Bloc being a for profit educational company, I am biased in favor of the private sector solving problems here. I strongly believe that the private sector can improve the educational situation if it is forced to be lean.

Right now, our "administration" consists of scrappy hackers splitting a house in Palo Alto. 50% of our revenues go straight back to our mentors, allowing us to hire the best of the best programming mentors at salaries that compete with or exceed the salaries they would get doing development full time.

With Bloc being completely virtual and online, we have no campus to maintain, no athletic department and no campus tours. Our marketing so far consists solely of our blog and word of mouth. All in all, we really have nothing to spend on other than educational materials, instructors and our own salaries (we pay ourselves about half of what a typical developer in Silicon Valley would earn).

What more can be done? How can the higher ed problem be solved? I would love to hear your ideas.  [Join the discussion on Hacker News](

**Education is our generation's big problem. Let's fix it.**

#####*If you liked this post, please lend your voice at*

Tweet about this on TwitterShare on LinkedInShare on FacebookShare on RedditEmail this to someone

August 7, 2012

Demo day: check out apps our students have built

If you haven't heard of [Bloc](, we're an online bootcamp for teaching people to build web applications in 8 weeks. Since February, our alumni network has reached 30 students. Some of these students have finished their web applications and we're going to show some of them off here.

It's worth mentioning that 60% of our students have little to no prior programming experience. They did not study computer science in college. We've interviewed some of our students if you'd like to read about their backgrounds and experience with Bloc: [Seth](, [Andy](, [Matt](, and [Joanne]( Also possibly worth reading is a [comparison of the top hacker schools](

### Hunters Powers, Lawson Kurtz: [HerePrettyKitty](

Rank the cuteness of kittens and see how they rank against each other.

### Hunter Powers: [ThatMovieApp](

Recommends a movie to see today and shows you the trailer. Uses a custom weighted scoring algorithm and scrapes the web using multiple APIs to provide its recommendation.

### Ryan Krueger, Tom Hoeck: [Sportsume](

The for high school, college, and professional sports players. Several scrapers written to collect hundreds of thousands of rows of information on teams. Uses multiple self-referential and polymorphic associations for the database.

### Arun Gupta: [Airbrush](

Apply Instagram-like filters to your Facebook photos or new photos that you upload. Send physical postcards of the photos. Uses Stripe for charging.

### Eli B.: [ClassYou](

Recommended "tracks" such as Beginning Web Development and Speaking Mandarin to help students learn faster by curating the material.

## Luciano Tavares: [Dealbook](

Built by an angel investor to track deals in Brazil. Plans to expand to other countries shortly.

Tweet about this on TwitterShare on LinkedInShare on FacebookShare on RedditEmail this to someone

August 7, 2012

Student in the Spotlight: Seth Siegler

![Seth Siegler](

#### How has you Bloc course been going for you?

It’s been a dream. I’ve really wanted to learn how to code for a long time, and I never had time or I didn’t live in the right place where there would be a bootcamp, which is how I wanted to do it. So I started to try to learn on my own last summer, with the Hartl tutorial. And it’s tough to do. So this has been awesome, really, really cool. I’m psyched.

#### And so how did you get started with web applications?

So I started this company called Robot Workshop a couple of years ago, just as a side project. All the tools that are available to real estate agents to put on their sites, like widgets and stuff like that, they’re all such garbage compared to every other industry. And the decent ones are so expensive. So my idea was to make a quality real estate search.

And then it evolved into this neighborhood recommendation engine called Neighborhood Suggester. The idea was something that nobody else was doing in this space. This data company partnered up with me and it turned into a little bit of bigger thing than I could handle, because it was just me and all the development was outsourced. So every time I did something, it was expensive and I never really got what I wanted. That’s how it all began. It was exciting but it was stressful.

#### How expensive was it to build something like that?

Thousands of dollars. Thousands and thousands of dollars. And when I wanted to change something, it was another thousand dollars. So expensive, and just totally out of my hands.

#### Could you describe the frustration of not being able to code on your product?

I got into doing this Startup Alley exhibition at this real estate technology show in San Francisco. I had all the press stuff ready, and the descriptions, and the website was up. The room was paid for and the trip was happening. I was going. Everything was on the line.

The guy I had building it, he was great, a really smart guy, but he was doing it on the side. It was just really, really frustrating to not be able to pull those all-nighters on it. I would do whatever it took to get the app done. If I could write the code, I would stay up all night.

If there was a problem with it during the day, I just couldn’t do anything about it. I swore that next time around it was going to be different. And then I ended up selling both of those apps to a company in San Diego. I worked for them, managing the product development and design. The title was CTO, which is ironic.

#### Did you enjoy that role?

You never get exactly what you think of. The idea is in my head. I wanted so badly to at least be able to prototype something. So the guys, they’re great programmers, but there’s only so much you can communicate, unless you can demonstrate yourself what exactly you’re thinking. To me it would be an absolute dream to have the technical chops to be able to at least prototype my own apps, and then build a team around it.

#### How many ideas do you have a day?

(laughs) I do get ideas all the time – at night lying in bed, or in the shower, something like that. All of a sudden it hits you.

#### I think I know the feeling. So tell me more about the course. What was your favorite thing about the course?

It’s like a good balance. I think the big thing it taught me was how to learn. You learn to code; you also learn how to learn how to code. You’ve got the mentor, which is awesome; they’re there to answer your questions. But they tell you what resources to use to learn on your own. And that is awesome because now when the class ends, I know how to do it.  And I think that is huge.

#### Yeah, you’re more confident.

To build that foundation and then be able to build on that, it’s monstrously huge. It’s starting with the basics that makes a difference. It makes it so you can take small bites and actually get it done. And at the end of these few weeks – it’s already unbelievable. It’s six weeks in and I can’t believe how much I learned.

#### That’s so great to hear. We’ll be glad to have you as one of our alumni.

Yeah, I’m hoping to be an early success for you guys.

#### What sort of personality traits do you think are important to be a successful Bloc student?

You have to be self-motivated, for sure. No one is making you do the homework. Self-motivated and having a hunger to actually learn this stuff. If you have that, you’ll be able to do it. I had no coding knowledge at all coming into this.

#### What are your hobbies?

I’m really into sailboat racing. I’ve done that my entire life. I like to skateboard.

#### Did you say skateboard? How long have you been doing that?

I skateboarded when I was a kid, and then I didn’t skateboard for the next 20 years. A few years ago I got back into it a bit. I’m more into the longboard type skating now. Which is awesome in San Diego. It’s just hilly enough.

#### Did you work in addition to doing the Bloc course?

I’m with Showing Suite still, so I’m still head of product there. Full-time job. I get there at 7 in the morning. The good news is I get out at 4. The bad news is that I can’t stay up that late. I have to make myself go to sleep a lot, at night, which sucks. Because that is usually the best time to code.

#### How do you see yourself using the skills that you’ve gained from Bloc in the future?

I’ve had this one particular idea that’s for this app.  I have one idea that has been haunting me for the last year or so. I’ve already started to build that, which is incredible, just an awesome feeling. When I typed the “Rails New” – the name of it – it was an awesome feeling. This is finally happening. Super exciting.

#### Is there anything you’d like to tell future Bloc students?

I think this is the kind of thing where you’re going to get out of it what you put into it. So the more you put in, the more you’re going to get out of it. Be sure to dedicate the time and give it your all, because the payoff is worth it. And then also of course, keep the faith through the harder times. You’re going to get stuck, you know that, from time to time. Take advantage of the expertise that you have available to you with the mentors. And enjoy it. It’s fun. I’m kind of bummed that the end is near. Only two weeks left in my cohort.

Tweet about this on TwitterShare on LinkedInShare on FacebookShare on RedditEmail this to someone

July 31, 2012

Student in the Spotlight: Andy Bas

Andy Bas played bass in high school and thought he'd be a musician. When that didn't work out, he tried many paths, including a police academy, and accounting, as well as traveling his home country, Canada. When he became fed up with being told what to do in retail, he decided to become his own boss in the online space. The price of contracting development got to be too high, and so he decided to teach himself to code instead.


####So what were you interested in in high school?

High school was nothing computer science-related at all. I was actually thinking about going to school to be a musician so it was totally different. I wasn't even into sports or anything; I was just playing music and kind of almost a music nerd in high school. And basically that fell off right after high school.

I played bass. I played in a couple different bands, a jazz band and a classical band.

####Cool. And then so what'd you think you were going to do coming out of high school?

I was kind of all over the place. I went to school for a year into a program to become a police officer, then I thought I was going into accounting, and then I kind of moved all across the country. The only thing that stayed constant throughout was the thought that, one day, I want to eventually run my own business.


So whatever I was doing, I was trying to kind of learn or take up to help me do that at some point in my life. But other than that I really had no idea what to do.

####That's cool. So you had a constant there somewhere.

Yeah. That little bit was always constant but what I was doing currently was always changing.

####So I guess running was a big part of your life. Do you want to tell me about that?

Definitely. I got into it in 2009 thinking I was going to run a marathon and all this fun stuff. Right away, I realized I was able to get pretty quick — pretty fit, pretty fast. Got to the point where I was decently competitive within Alberta and then got the injuries and it's pretty much been a nonstop battle with the injuries. But slowly getting faster and fitter and it's not as much the only thing I do anymore.

####Cool. So just one day you started doing it.

I'm a pretty scrawny guy and I had this goal back then that I was going to get big weightlifting and everything. Was doing that with a friend. Then it finally clicked that I'm not really built to be a — to put on muscle like that, to get really big. Then I got into running. That's when I realized that's where I can actually excel at something.

####Where did that take you, competitive running? You did compete with it.

Yeah, yeah. Actually, it got me a year of school almost entirely free in Alberta.

####Nice. So you've been involved in doing development for a while now. So how long have you been involved in it and how did you get started?

Yeah. Definitely. I think back maybe a couple years ago now, or coming up to a couple years, I was working retail and I couldn't stand it. I just wanted to not have to go somewhere to work every day and set my own hours.

So I got into affiliate marketing a little bit and, from there, I started building simple HTML/CSS landing pages. Then I started doing web development and some marketing, some Facebook fan pages and that where I would hire out contractors from India, Nepal or wherever — Sri Lanka. From there, they were doing a lot of custom PHP stuff. And there was also a lot of WordPress stuff, Joomla, Magento stuff in there as well.

Slowly from that, I just started learning on my own. Obviously, you want to keep your profits to yourself and not pay contractors to do it. So I just started learning. Starting to write some PHP on my own. A lot of HTML and CSS and a lot of customizing WordPress themes or Magento, that type of thing.

And that's kind of where I was at when I came across Bloc. I could write some PHP programs, not so well, but I could build off a program decently well. Googling every line of code. Every line of code, I was Googling. I could do that. I couldn't really write anything decent.


I could still make customers happy with building Magento sites, WordPress sites, that type of thing. But I couldn't really build anything of my own.

####Something changed because you wanted to be able to build your own ideas. Is that right?

I would pricing out what it would cost to build these crazy applications or whatever I was thinking of. I was trying to go and find $50,000 from a family member or some kind of investor, a friend or whatever. Or someone to partner up with who had some cash to build these things because I didn't have the skills to.

From there, I just kind of put them all off to the side and I would start doing some tutorials — Python tutorials or Rails for Zombies and, every time I did it, I'd work on it for a week and I'd get to a point where I couldn't figure anything out and I would kind of give up from there.

####Did you find it difficult to balance Bloc with your day-to-day?

In my case, no. I put aside all the fancy stuff I was doing and only did the minimal amount. I got obsessed with Bloc and started doing that nonstop as if I was making money off it, which I obviously wasn't.

I kind of turned Bloc into my full time job almost. And I'm lucky I had the freedom to do that; I didn't have a full-time job I had to be at. I think if I were to give out how I were to go about it if I had a full time job, I think it would be quite difficult.

####We had some people do part time and it's definitely a challenge. Takes a lot of discipline to come home after work and code.

I mean, for the three hours a day it's not so bad, I think. But I was getting a little obsessed and spending six, seven, sometimes eight hours a day writing Ruby and that sort of thing because I wanted to get the most out of it. I think if I had a full-time job I would probably just sleep less.

####Now, how do you feel you've improved since taking Bloc?

The biggest thing is I would always have customers or family members or whoever say, "Oh, can you build this?" or "I have this great idea and I'm looking for someone to build it" or "I want to build this". Before Bloc, I would say, "Oh, that sounds really cool. I can always hook you up with some developers or we can plan it out or contract it out. And now the biggest thing is being able to say, "Yeah, I can build that."

####That's a pretty good feeling.

Exactly. And maybe you can't build all of it on your own but you know how to build the part you know how to build. Whereas before there was no chance of anything.

Tweet about this on TwitterShare on LinkedInShare on FacebookShare on RedditEmail this to someone

July 28, 2012

Student Spotlight: Matt Freeman

When Matt Freeman graduated from Cornell in Economics, he wasn't quite sure what to do with his degree. After college he worked for a non-profit assisting a homeless shelter as it underwent growth and change.

Finding he had a knack for helping organizations manage change and growth, Matt started a business consulting for nonprofits and small businesses in Burlington, VT. He soon discovered that not only did his clients need help with their structure and other organizational details, they also needed help with their web and social media presences. In the fall of 2011, Matt taught himself html and css which led to an interest in JavaScript and eventually stumbling upon Bloc.

![Matt Freeman](

####What were your interests in high school?

From an early age I thought I would be a physician. My parents were both involved in medicine. I became an EMT and got involved in student emergency services. As I progressed through college, I took a fair number of the pre-med courses. I eventually realized though, that it wasn't really me. From there, I decided to try economics because I knew nothing about money or finance or any of that world.

After college, I still wasn't entirely sure what to do, but I had a much better idea of what I didn’t want. Being fairly independent I started working on my own. It was tough, but I look at it as a fun and cheap business education.

####What was the point when you made the decision to work for yourself?

I had been working for a homeless shelter, after college. They had recently expanded from 6 employees to 26, from 1 building to 3, and started having 24/7 staff coverage. It was exciting because it was during a period of really rapid change.

Through work I do with my college fraternity, I’d picked up some of the things that a growing organization needs: setting clear expectations, delegation, better communication,  and how to run meetings. It was all fairly basic stuff, but a lot of people just wing it.

Long story short, the executive director of the non-profit gave me a chance to see what I could do, and I guess I did OK. She suggested that I get into the consulting work full time. She thought I had done an impressive job of working with people twice my age and getting them to realize not that what they were doing was completely wrong, but that there might be another way.

####What are your hobbies?

In college, I was on the lightweight rowing team for 2.5 years. I sat on the 2nd eight, and we did pretty well. Both our first and 2nd eights won eastern sprints in 2006, and our 1st eight went on to win the IRA Championships which means that we won the national championship in a D1 sport which was pretty sweet.

Move recently, I enjoy running, and both drinking/making beer. I climbed Mount Kilimanjaro so you could say that I like getting outside. I also enjoy food and love cooking and baking.

####Do you feel like some of the things you take from athletics translate over to your work?

I had a crew coach in college who was a pretty accomplished rower himself. We had some pretty brutal practices. I remember one in particular. It was mid-november, it was late and dark and it had been raining. We thought that we were just going to paddle in and hit the showers, but as we got closer to the dock, he told us he wanted us to do a few more short, high pieces. We groaned and he then proceeded to chew us out. He basically told us that we could sit there in the rain until we agreed with him that we could “Do anything for a minute".

That saying always stuck with me. If there's something I don't want to do, or I'm having trouble getting started, I'll just remember that I've probably done far more painful and less pleasant things. I think for most people, that's the hardest part. Just sitting down and putting your mind to it and getting going.

####What actually made you decide to do Bloc?

Jared's blog post “This is how you really teach people how to program” resonated really well with me. I’ve been fumbling around and learning bits and pieces since last September. I've gotten familiar with the space, learned a lot of the tools, and gotten a little bit better every day, but with everything so new and no one to help me, I’m embarrassed to say that it took me three days to get Ruby, Rails, and git installed the first time I tried the Hartl tutorial on my own.

Having the support network there is one thing Bloc does very well. To know that if you get stuck, there's someone who is an IRC chat away from making a couple hour or couple day problem into a 10 minute problem is huge. The roadblocks seem small now, but they’re big and scary when you’re just getting started.

####What were your favorite things about Bloc?

I loved the meetup we had in New York City. It was cool to meet the other people in my cohort and it was cool to meet Jared when he was out here. The meetup played a decisive role in me deciding to also do DevBootcamp in the Fall. I also liked IRC a lot.

Having an active IRC channel with alums answering questions, instructors answering questions, and helping out some of the greener students will definitely be a growing asset. When people are learning what they need is a safe place where you can ask a question that might seem dumb and know that we’ve all been there.

I also love the flexibility of Bloc, I thought Jared did a great job, we definitely connected right away as friends. I think that the program speaks for itself. If you put in a lot, you’ll learn a lot in the eight weeks. I think someone would be really hard pressed to match the amount of learning on their own unless they were working the whole time with a friend who is more experienced.

####What were your least favorite things?

I think Bloc could do a better job of setting expectations. It's definitely something that most organizations struggle with. But I also know you're a startup and things are rapidly changing. I also think that doing a better job of setting expectations will help keep other students more engaged. I think because we're not meeting in person, you have to be very very clear on "Here's the syllabus, here's what's going to happen, here's what we expect of you, and here's what happens if you don't meet those expectations."

I think what you guys are doing is awesome. Clearly the model that exists now for higher education isn't really working anymore. The liberal arts degree is underwater but it's going to be another couple years before most people are really saying that. I love that you guys are taking a different approach.

####How have your technical skills improved  since taking Bloc?

I understand what a web application is, and I understand where the various pieces of technology start and end. I’m comfortable finding my way around a Rails app. I also feel much more comfortable with Git. It could just be me, but when I was starting, I found git to be one of the scarier things for a beginner.

Before Bloc, I had fumbled through the Hartl tutorial, and now it's something I look at straightforward. With what I know now, it's not that any one piece is particularly difficult, its just that there are a lot of things going on and a lot of things moving all at once. I definitely have a good broad introduction to the space. With Google I can figure out most of the basic problems I’d run into.

####Is there anything you'd like to tell future Bloc students?

I would say spend as much time working on Bloc things as you can, because it goes by quickly. You're paying to work and keep yourself busy. I know it's hard for someone who has a full time job that keeps them there for 10-12 hours a day. But obviously at the end of the day it comes down to your motivation and dedication. When you think about it, there are a lot harder and less pleasant things than sitting around and working with others learning how to program.

####And what are your goals, now that the Bloc course is over?

Since I'm doing DevBootcamp, I'm trying to use everything I've learned in Bloc to get myself as ready as I can be, because I know that's going to be tough. From there I hope to get a job as an entry level web developer and keep expanding my knowledge.

I’m excited that things change quickly, and that there is still so much to do in the space. Software is eating the world, and while I feel like I got started with it late, I know I’ll enjoying keeping up and eventually contributing to open source. I think it's a wonderful model for businesses and for people working together.

Tweet about this on TwitterShare on LinkedInShare on FacebookShare on RedditEmail this to someone

July 26, 2012

Student Spotlight: Joanne Daudier

![Joanne Daudier](

Joanne was in the last Bloc cohort. By day, Joanne works in Marketing at Splashtop. By night, Joanne taught herself to code with help from Bloc. Joanne learned Ruby and Rails fundamentals and implemented a feature that allows you to post to your FoodRubix food journal through email.

Joanne was in the last Bloc cohort. By day, Joanne worked in marketing at [SplashTop](, by night, Joanne taught herself to code with help from Bloc. Joanne learned Ruby and Rails fundamentals, as well as implemented a feature that allows you to post to your FoodRubix food journal through email.

####What's your background?

In high school I really liked art. Ever since I was little I drew a lot. When I got to college I had to decide between art school and business school. Having Asian parents, I was not encouraged to go to art school, but looking back I should have went to art school.

I entered UCSD as a Psychology major and shadowed someone who said she met a lot of crazy people on her job. I didn't really want to do that, so I changed my major to Economics. That was kind of a useless major for me. I didn't use much of it other than the general stuff like writing.

The good thing was that I did two internships in Marketing in college, which allowed me to get my foot in the door to a Marketing job after college.

####How did you get started with FoodRubix?

Well it started in March of this year.

When I was young, I could pretty much eat any junk and it didn't really matter. But it matters more as you get older.

I had been wanting to lose 10 pounds.  The final trigger was that I had a vacation coming up in Orlando in 21 days where I knew I’d be in the water. I was fed up, so I decided I would take pictures of all the food I ate and post them to Facebook.

I labeled my pictures by day, like Day 1 of 21, Day 2 of 21, and so on. I had such a good experience with it that I just decided to keep doing it.

####Knowing that people were watching helped you be more conscious?

Yeah, I mean, if I was eating French fries I would think to myself "What are people going to say?"

I found that it helped me to actually admit to my friends that I'm trying to lose weight. I have a friend that "likes" every meal that I eat, I don't know why. I'm sure some people have blocked me from their news feed.

####So at some point, this transitioned from a cool thing you were doing to something you wanted to build?

Yeah, I was journaling through Facebook but I wanted to track more than that. Calories weren't that important to me but I wanted to track carbs.

I wanted to see patterns. I could see it visually on Facebook but I wanted to see the data.

####So what did you do? Did you try to build it yourself first?

I didn't try to build it myself because I didn't know where to  start.

It was really hard to find a developer. The mentality in my head was that it would take me too long to figure it out myself, so I figured if I hired someone it could be built while I learned at the same time.

I went through a lot of different sites. Co-founder dating sites, freelance sites. I eventually found him on [Geek List](

####Any false starts before you found him?

Yeah I reached out to this company called [Startup Giraffe]( They are in New York. Their whole business is that they work with entrepreneurs to build their ideas.

I ended up not going that route. That would've been a 40-50k investment, so looking back it was a good thing I didn't spend all my money out there. I would've been in debt. They also take a cut, 6% equity or something like that. I almost put all that money down. I'm not sure what I was thinking.

####Hey, you were crazy about your idea. That's awesome.

Yeah, but looking back, that was a lot of money.

####So you hired a developer, but you must've been still trying to learn to code?

I started going to a lot of meetups like RailsBridge, and I went to a front end HTML / CSS meet up at Twilio. There I met a girl who was going to do [DevBootcamp](, and she told me about Bloc.

####What was it like doing Bloc in addition to your full-time job?

Oh it was very hard. I was always very optimistic, thinking I'll wake up early and read for 3 hours, or finish work and read for 3 hours. But I would end up feeling sleepy as I read, so I had to break it up. It was very difficult.

I feel like having the Bloc team behind me was helpful for me in pushing myself. Now that I'm off Bloc, it's been 2 days and I haven't done any reading. I want to keep the momentum. But it's definitely harder when you're not in the class. Having self motivation to do the work is harder.

####What were your favorite things about the Bloc course?

I liked coming to the Bloc office and hanging out. I also liked liked getting on the chat room with other Bloc students. It was helpful when I got stuck and I could ask people for help.

The whole experience was interesting because I haven't been around programmers very much, the developers at my job are overseas. So it was pretty cool to see what that experience was like.

And it was just fun. It was fun when Matt (another Bloc student) was around, because we were about the same level, it was fun to work together. It definitely made it less painful, just like your website says.

####What were your least favorite things about Bloc?

I was really confused by the two Ruby books that we received early on. They were just words on paper to me. Now I'm watching screencasts by a guy named [Schneems]( and they make a lot more sense to me.

I also wish the course was longer. I want to learn more.

####How have you improved since taking Bloc?

I have a good general knowledge of everything. Now I want to get more in depth.

####Is there anything you'd like to tell future Bloc students?

I think this course is very helpful for people that are disciplined, especially if you have a full-time job. If any future students have questions and want to talk to a live person, they can Skype me at joanne.daudier. And if you’re trying to lose weight and want to be an alpha tester to a very rough FoodRubix prototype, let me know (@jdaudier).

*Joanne is looking for alpha testers of her app, FoodRubix, at*

Tweet about this on TwitterShare on LinkedInShare on FacebookShare on RedditEmail this to someone

July 24, 2012

Keeping Up With Bloc News

A lot of our prospective and current students have asked for ways that they can stay up to date with what's going on at Bloc, so  we wanted to round up some ways that you can keep in touch:

**Subscribe to this Newsletter**:  you can subscribe [here](

**Follow us on Twitter**: We're [@trybloc](

**Like our page on Facebook**: We just created a new page [here](

In return for following us, we'll send you funny pictures of our team. For example, here's [Hani with a starfish](

Tweet about this on TwitterShare on LinkedInShare on FacebookShare on RedditEmail this to someone

June 22, 2012

Bugs in your programs

As we learn to code, one of the most frustrating experiences we can have is finding bugs in our code.  The easiest to fix are syntax errors — your compiler or interpreter will simply tell you about syntax errors, and you can fix them.

The gnarliest bugs occur when our program doesn't behave as expected.  There are no obvious errors, no exceptions being thrown, and no safety net.  We have no idea where to begin.  These are logic bugs.

Most of these bugs turn out to not be bugs in our code, but bugs in our thinking.  Most programming is merely transcribing the program in our heads into code that can be executed by the machine.  This is why we call them programming languages.  They're languages for thinking about programs. We use english-esque languages because they're better at reasoning about logical programs than, say, assembly language.

Where syntax errors are either transcription errors (we've incompletely or inaccurately copied the program from our heads into the machine) or they're places where we aren't speaking the programming language correctly.  The program could be correct in your head but expressed inaccurately in the language.

Logic bugs are much more subtle, since they indicate some building block we've been using behaves counter to our expectations.

Third party libraries are notorious spots for logic bugs.  As a simple example, suppose we want to add OAuth to our web app.  We will probably utilize a third party library.  We'll read the documentation, integrating this library's behavior into our thinking (in whatever language we think in).  The transcription to the machine is usually very smooth (there are very few syntax errors).

The problem comes when the documentation is incomplete, or doesn't describe the logic of the library perfectly.  Our program might be subtly different from any scenario library author ever anticipated.  But the building block we have in our head assumes the library is a flawlessly designed black box, a perfect abstraction.  This doesn't even cause cognitive dissonance, because we don't even realize there's a flaw in our understanding (until later).

The way to eliminate logic bugs is to meticulously comb through the program in our heads, examining each building block in an orderly fashion for correctness, both in the code and in our minds.  There are many techniques for doing this efficiently, which I'll leave as an exercise to the reader or a future post.

A byproduct of this process is that over time, our intimacy with libraries will grow wide and deep. We'll be able to spot bugs in others' code quickly because we realize where the program in their head has gone subtly awry.  By looking at libraries that aren't our own, we learn how other programmers think — and we get better at thinking about programs.

Programming is a craft.  By exploring the process of identifying bugs and improving the way we think about programs, we improve our craft.

Tweet about this on TwitterShare on LinkedInShare on FacebookShare on RedditEmail this to someone

June 11, 2012

The Grocery Store Analogy


So imagine you're the manager of a brand new grocery store that's opened up on the block. 

You just opened up and hired your first cashier, Bob, and your store isn't too busy so he's able to handle the customers that need to be served pretty easily and no one has to wait that long to checkout. The name of the game is to get as many visitors checked out in as little time as possible.


Suddenly Ashton Kutcher tweets about your awesome new grocery store and you get a spike of new customers coming in. Poor old Bob-the-cashier has a line backed up all the way to toiletries in aisle 10. What's the most obvious thing you could do? Well, hire more cashiers of course.

 So you hire 9 more cashiers, now you can serve your huge spike of customers much faster.

### OR CAN YOU???

Only wait — how are the cashiers looking up grocery prices? It turns out that in our store every cashier has their own terminal into a central service that lets you look up grocery prices, after which the cashier can ring up and charge the customer. The problem is that this service is really slow and get's even slower whenever you have more cashiers connected to it.  Surprisingly, you'd make things even slower if you just went with the shotgun approach of just adding more cashiers.


I know, I feel ya :/  We're in this position now where we have 10 cashiers, but they spend a lot of time not being productive because they have to wait so long to look up their customers grocery items. What if every cashier could do other kinds of work (e.g. bag their groceries or even start ringing up the next customer) while they were waiting for their turn to look up groceries?


In this scenario, a customer going through the checkout lane is like a visitor coming to your site. When you get a large influx of customers, you get really backed up checkout lanes just like you would with a  web application. The terminal/grocery takes the role of the database which, just like in our scenario, is the main bottleneck for many apps operating at a large scale.

Allowing cashiers to perform work while they wait for the lookup to finish is what evented systems like Node.js allow you to do in Web Architecture Land. Cashiers can tell their terminal that they want to look up a grocery item, and then while we wait for the result they can start bagging items. Our terminal will send us a nice notification once the lookup is done so we can finish ringing up and charging the customer.  


There's really a lot more to this that we could improve. That whole one-lookup-at-a-time thing is awful, and there's a few things you could do:

– **Split up the database.** We can take the grocery store items and put the items that start with letters A-M in one database and N-Z in another. Now, cashiers who are looking up the price of "Bananas" they only block up one database and other cashiers are still free to use the N-Z database.  We could even go to the extreme of having one database for each letter of the alphabet. In Web Architecture Land, this is called "database sharding".

– **Database caching.** If 90% of our customers are just buying bacon, then maybe it'd be quicker to just give each cashier a piece of paper with the price of bacon on it. Now they don't have to look it up in the database every time which saves us *a lot* of time. But you can imagine how this would quickly become inefficient if we just gave each cashier a giant book of every price and instead of looking things up in the database they started flipping through pages for prices.


Maybe we don't split up the database and just have multiple copies. Maybe we can train the cashiers to be just a little bit faster at bagging. Or maybe we don't even solve the problem with technology but somehow find a way to get people to not come to our grocery store all at the same time — if our customers are spread out throughout the day than even a couple cashiers could probably handle it.

Admittedly, we've stretched this analogy a bit in places, but it can be a useful mental model for web architecture if you're a beginner. The important thing to note is that there are hundreds of ways to architect your application for performance but it all starts with identifying specific problems and not just using the latest tools.

Tweet about this on TwitterShare on LinkedInShare on FacebookShare on RedditEmail this to someone

June 6, 2012

Roundup of Bloc Students: Week 3

Each week I look at my students' blogs, but I wanted to include a few of the interesting and insightful posts here. I'll try to make this a regular thing I do each week. I won't include all of the blog posts, just the ones that I found to be helpful and go into some depth or cover a topic that I think is important when learning Rails.

This is the first week where I'm pushing students to start their projects and stop reading. At some point, you have to stop mentally preparing for how cold the water is and just jump in. It's going to feel very uncomfortable at first, but over time, you'll acclimate. The human body and mind is incredibly adaptive and if you accept the uncomfortable feeling and keep working through it, over time it'll go away (or you'll start to drown, in which case, the Bloc life guards are on full duty to throw you a lifejacket).

Learning to program is not easy. I have seen nearly every single one of my students visibly and vocally frustrated. It's normal, you just need to figure out how to clear your head when the stress comes out. Walk, jog, lift weights, swear, listen to some good music, do yoga, or meditate. Do whatever you need to get the stress out of your body so that you can get back to having a clear and focused mindset. *You will not be able to code when you're frustrated, and in fact you may cause more harm than good.*

[Leaning into the Hard Things](

Great post on getting out of your comfort zone to learn how to program. Referenced several times by other students.

[Procs vs Lambdas](

The best explanation I've read yet on the differences between a Ruby Proc and Lambda. Great for beginners, easy to understand with sample code.

[How MVC works](

A terrific write up to explain how MVC works. Very easy for beginners to digest.

[Ruby Symbols](

A great, succinct write up on how symbols work in Ruby. Terrific use of the hash as an example.

[On the Subject of Symbols](

Another great write up on how symbols work.

[Amara: One step forward, five steps back](

There's an urge in some people to want to fully understand 100% of the material they read, but that is *not the point of the first week*–or the first 2 weeks in that case ([relevant reading]( You don't need to know everything because you *won't use everything*. The goal now is to make sure you know what you don't know. Get through the reading, feel comfortable with not fully grasping every topic covered (there are lots of them), and move on to your personal project.

[Ryan K. Week 2](

Ryan is one of the students who has progressed fastest, and he started out struggling with the exercises I did with him in Ruby. But his learning accelerated  because he realized what types of things he could learn, and then he really put in focused effort to learn. Having a resilient attitude will work wonders for your programming career.


Tweet about this on TwitterShare on LinkedInShare on FacebookShare on RedditEmail this to someone