What we mean by “programming”

This is a preface to an upcoming post on best practices for teaching programming.

Before we get to the list,  let’s step back. What do we mean by teaching “programming”? We aren’t just teaching kids about classes and variables that can come together to build an iPhone app (although, this is an awesome outcome!). Programming is much greater than that:

Programming is about learning to think. It’s about taking a structured approach to solving a problem and being able to dissect a complex problem into smaller, less complicated sub-components.

Programming is also about being persistent and being able to recover time after time from failure. It requires determination and confidence in your own ability to get through a problem. Programmers are accustomed to being in “crisis-mode”; they are comfortable and calm in the face of pressure.

Programming is about being able to make good design decisions given multiple audiences and a variety of often conflicting constraints. When you are programming you are designing for two audiences: 1) the end-user and 2) other programmers who will contribute to your code. You need to consider end-user optimizations, like speed and functionality, along with contributor needs, like code readability and flexibility.

Programming is about being able to synthesize and articulate complex ideas. It requires excellent communication skills because when you get stuck, you need to look to the internet or others for help, which means you need to be able to articulate the problem into words. Being a good Google searcher is an important, non-trivial skill.

Programming is about taking the long-view and long-term payoff. Sure, occasionally you get immediate results, but usually you are working on a project that requires many small steps and hurdles before it’s useful and applicable. You need to stay motivated even when your immediate actions seem disconnected from a larger goal.

Any successful programming curriculum must teach these attitudinal skills along with actual programming concepts. Actually, the attitudinal stuff may be more important since the world of programming is always changing, new languages and better methods constantly replace old ways of doing things. Therefore, people who only know a specific syntax won’t last, but people who have all these other skills, will.

So if you are teaching programming, don’t just teach <b>This text is bold</b>, teach why and how, and intentionally set your students up to deal with persistent failure. Teach the lasting skills that define excellent programmers.

Stay tuned for a list of best practices for teaching programming.

From ! to .

There was a time when I used to substitute an “!” for feelings.

Everything was all:

Hope you’re having a great day!

Hi there!

When are you visiting?!

Drinks tonight?!

Morning! 

I wasn’t trying to be an annoying valley girl, truly. It was an attempt to display emotion and connect. The “!” acted as shorthand for “life is the fantastic, I’m so happy, joy joy everything is great”.

But now I see that my “!”s were hurried, empty and superficial. I dressed up sentences with “!”s because the sentences lacked feeling on their own. From now on, I’m going to take the time to articulate my thoughts properly and end sentences with periods because profound sentences don’t need an “!” to connect with a reader.

Importance of a “Low-Investment” Offering

If you haven’t seen it, check out this new tumblr sponsored by Coursekit. The content is superb, and it’s likely put Coursekit on a lot more people’s radar.

More importantly, this is Coursekit’s “low-investment” offering, meaning that as a user, you don’t have to spend a lot of time, money or resources inorder to get something out of using this service, which is opposite to CourseKit’s primary, “high-investment” offering (Another example of “high-investment” service is Skillshare — users must plan ahead, sign up for the course, physically go to the class, spend money, etc.).

Good low-investment offerings keep users engaged between high-investment periods and cause repeat usage (addiction in a good way), because there is little the user needs to invest  inorder to get high returns.

Instagram is probably the best example of a low-investment offering; It’s super easy to take pictures and it’s even easier to consume photos. Even if you only have two seconds to spare you can get something out of going on instagram. Low-investment and high returns are a big reason why instagram is so addictive, and has grown like crazy. twitter is another good example.

What’s your low-investment offering?

Dear Mayor Bloomberg, please turn all libraries into wifi-outfitted, co-working coffee shops

This is the public library by Tompkins Square Park. Two-thirds of the library looks like this - long, empty aisles of books, not a single person:

The other third of the library looks like this - a few tables, computers and life!

Now, look at two nearby coffee shops (The Bean and Bcup):

Even busier than the library. Actually, believe it or not, there are *46 people* at The Bean right now.

As learning, work and play shift online, demand for public wifi space is exceeding supply. Why are people working on top of each other while aisles of dust-collecting books are taking up precious public space nearby?

Dear Mayor Bloomberg, people are in need of a proper place to work. Please convert libraries into proper co-working spaces. Put the books in the basement or better yet, make a deal with Amazon to rent out e-books and e-readers. The purpose of libraries is a) to provide free public access to information and b) to foster community. Right now, coffee shops are inadvertently stepping up to fill this role.

Libraries need:
1. lots and lots of tables with outlets
2. some private meeting rooms with whiteboards
3. coffee, tea
4. free adult tech classes

Here’s a blueprint, I drew with Shreyans Bhansali:

In a dream world, Bloomberg would partner with co-working spaces like General Assembly or WeWork to make this happen.

Trends: The Evolving Education-Work Path, and the Need for a Project Marketplace

Let’s get straight to it: I think we’ll see a fundamental decline in the institutional power of colleges and large corporations over the near future due to three major trends:

1. An increase in high quality, affordable practical training available outside of traditional colleges
2. A rise of show don’t tell accreditation due to the increased ability of people to “build” / “do” things (institutional accreditation is becoming less relevant — employers are more interested in what you’ve done)
3. Lower barriers to networking enabled by twitter, meetups, co-working spaces, and mostly just the internet (individuals no longer need to rely on institution’s connections to network) 

Importantly, these trends will likely change the education-work path that has been in place for so many years:

Arguably, in this new model we still have “institutions”, however, these institutions act more as facilitators rather than accreditors. LinkedIn, General Assembly, CodeAcademy, and Kickstarter enable you to network, learn and raise financing, but ultimately the power is still decentralized. Individuals’ paths are much much less linear and more difficult to navigate.

So if you’re still reading (wahoo!), what’s missing from this new model in a very big way?

A centralized place where people can meet others to start working on projects.
Projects will be the new form of grades
- they will be critical to proving skills. But it’s hard to just find people interested in building something with you, especially if you’ve never built something before making it difficult for you to land a job at an existing start-up. So, we need a central place where people can post ideas and form teams to build things. In my mind, this could be a prevailing form of decentralized, peer-2-peer project-based learning / working.

These projects may be small projects, like building an arduino game, or they may be bigger projects that eventually evolve into start-ups and companies, e.g., a co-founder dating service. Regardless, these projects will help people gain demonstrated experience building things. 

Right now, as an unemployed, smart person eager to build something, it’s hard to connect with other unemployed, smart people (and there are many of us out there). I would love to build something that solves exactly this problem — a site that connects people to work on projects. More actionable than LinkedIn. Less skills focused than existing job boards.

If this is striking a chord with you, get in touch, let’s skype and build something!

Gift Economies, Social Reciprocity, and the Monetary Signal

Good wiki seed: The gift economy

In the social sciences, a gift economy (or gift culture) is a society where valuable goods and services are regularly given without any explicit agreement for immediate or future rewards (i.e. no formal quid pro quo exists). Ideally, simultaneous or recurring giving serves to circulate and redistribute valuables within the community. 

and

Various social theories concerning gift economies exist. Some consider the gifts to be a form of reciprocal altruism. Another interpretation is that social status is awarded in return for the gifts.

Gift economies work for nonrival goods like information, where social status is a viable form of reciprocity (great examples are sites like StackOverflow and Quora). However, I think the market model for consuming rival goods will likely persist for sometime for two primary reasons:

1) in most industries, and for most goods, execution and implementation costs exist — it’s rare that you can produce something at zero cost
2) money serves as a signal of quality

In my opinion 2 is more important, and more difficult to change. I think it is one (of likely many) reasons why AirBnB did much better than CouchSurfing.

Should you be in school or out making things?

Related: the rise of project based learning and “show don’t tell” accreditation

Trends: The Rise of Project-Based Learning and Asymmetric Disruption in the Education Space

Accreditation in the tech community has already vastly changed.

It’s no longer important where you went to school or what your grades were (what a question!) It’s all about what you’ve done. Stamps are meaningless, it’s what you’ve built that matters. 19 year olds who built a site are less risky hires than Ivy League graduates with limited experience.

This is why start-ups in the education space like Skillshare, Khan Academy, General Assembly and Code Academy should approach the question of accreditation by teaching classes that culminate in students actually building something. The best form of accreditation is a demonstration that you’ve used those skills before.

Of course, project-based learning is easier in some content domains than others. It’s easier in fields where there are few barriers to execution, such as programming, web design, graphic design, marketing, and arguably even business (entrepreneurship), but harder in areas that require heavy resources and a reliance on others to execute, such as medicine, dentistry, finance and law.

So when we think about disrupting the education space, I think the disruption will occur asymmetrically depending on the content domain. In fields that can be taught in a project-based manner, I believe the weight of formal accreditation from a college will dissolve fairly quickly. However, in areas where project-based learning is not possible, I believe test scores and grades will still be the best indicator of content proficiency. And because of this, I think brands will still matter in these areas.

In sum, Harvard Medical School will likely carry water much longer than the Stanford CS program. 

Whole Foods Check-out Lines: Reframing the Problem

For those of you who haven’t experienced it, this is the check-out line at Whole Foods:

What exactly is the point of this line system? More efficient? Better packing? Innovation for the sake of innovation? 

I think the reason has be to psychological. As a customer, if we see a single long line, snaking around and around, we are likely to be deterred at worst and just a little bit grumpier at best. But instead, here we have a total reframing of the problem. You pick a line, and now there are psychologically 3 people ahead of you instead of 11. I think that’s pretty genius and would make everyone much happier if adopted by airline checkins.

Goodbye Microsoft Office, Excel and Segmentation

LinkedIn has a cool beta feature that shows change in skill relevancy year over year. Unfortunately, it’s not exactly clear what’s being measured - number of users who post these skills, or number of employed users who post these jobs. Still interesting.

Not surprisingly, C++ and Microsoft Office fell, while Entrepreneurship and pretty much anything to do with the web in on the rise.

Segmentation dropped slightly, but probably the beginning of a larger downward trend. As services can provide almost complete personalization powered by better user data, the idea of segmenting users into static buckets like “Loyal Lucy” or “Bargain Hunter Billy” is undoubtedly simplified. People are much more complicated and move around depending on their mood, location, time of day, time of year, who they are hanging out with, etc. Visually, we are moving from static market maps to dynamic market webs.

Also interesting was the drop in Microsoft Excel. Down  -7% (Not shown below). I still love the product, and find it very powerful, but as more data analysis moves directly to database queries (i.e., data analysis is done by data scientists using R rather than strategy consultants) I believe Excel may also fade into oblivion… 

zachklein:

Yancey Strickler posted an item yesterday about the wane of conspicuous consumption among wealthy people in Silicon Valley. But, as it turns out, conspicuousness hasn’t vanished. The post suggests that the Startup is the new conspicuous. Look at What I’ve Done.

The first comment on that…

Oh, the apps we use for the places we go!

Thinking about the “places” space. Boy we use a lot of apps to have brunch.

Where to go: Google, Yelp, Foursquare, (daily deal apps to a lesser extent)
Telling our friends: SMS, Facebook
Directions: Google Maps
Reservations: OpenTable, Phone
Arrival: Foursquare, SMS, none
Payment: No good options really
Feedback: Foursquare, Yelp

Ick!

  • No app serves the entire end-to-end process
  • The single activity everyone must do, payment, is not served well at all

Disrupting payment is difficult for many reasons. It’s hard to make payment “cool” (esp. for banks who have the upper hand here). It’s hard to make payment social (people are conservative when it comes to sharing financial info, even if data will be used beneficially). Merchants have entrenched POSs (sometimes 5 year contracts that they are reluctant to change). Financial license requirements make it hard for start-ups to enter the space. Ubiquity of any new payment offering is critical (hard to be sticky if the payment service only exists at a few places). But probably the biggest barrier of all: *paying with your phone is not easier or better than paying with your card* at least not yet, so it makes sense that people aren’t moving in waves to square or google wallet. Handing over a card is a low-attention event and 1-2 steps. Paying with your phone is a high-attention event and as of now, more like 4-5 steps.

All this said, one potentially sufficient reason for users to adopt mobile payments, is if it provided better personal recommendations (based on what I order, and the places I visit). Then, as for merchant adoption, I believe if users really prefer to pay one way, they can drive merchants to follow (akin to what AMEX did in the 1950s with their Diner’s Card).

Therefore, what I would love to see in this space: A foursquare-Venmo mash-up that covers my full-suite of activities involved when I go out to eat / drink.

The preferred app for recommendations: Recommendations based on my and my friends’ check-out data (don’t have to bother with checking in, for those disinclined)
The preferred app to pay: Easy bill-splitting among friends, coupons, discounts 
The preferred app for logistics:  Add Google Maps integration and a simple “Meet-me-here” feature to msg friends.

5 apps to 1.

Design Thinking 101

Forever useful in business and life. 

Brand Pivoting?

Many successful entrepreneurs and innovation theorists encourage a method of success through pivoting. If your current product isn’t working, keep modifying and refining your offering until you hit a sweet spot.

(Unrelated, entertaining aside)

The pivot, pivot, pivot strategy is all fine and dandy if your previous attempts were really not that successful and users lack preconceived notions of your who you are and what you do. However, suppose you are a product that has had some good traction in the past, but you still need to pivot inorder to remain relevant or monetize. How can you change what people think of you? How can you pivot your brand? And should you?

I think it’s impossible to provide an explicit answer to this, but I arrived at this question when contemplating the potential future of foursquare. It strikes me that a good growth model for them is to more heavily pursue their discovery offering (which they already seem to be doing) and de-emphasize the game layer. I started hypothesizing the differences and similarities between these two user experiences. I like the technique of anthropomorphizing the experience to tease out differences:

Personality of the early foursquare user experience focused on check-ins:

  • playful
  • cute
  • cheerful
  • young
  • witty
  • friendly
  • trendy
  • cool
  • original
  • stylish
  • slightly superflous
  • non-essential

Personality of a foursquare user experience focused on discovery:

  • reliable
  • trusted
  • smart
  • established
  • cool
  • stylish
  • in-the-know
  • helpful
  • essential
Looking at those two lists (and I’m sure some proper ethnography would refine these ideas), there is lots of overlap, and foursquare is well-positioned to transition. I imagine the user base is predominantly the same (only larger for discovery) and the culture of cool and stylish will help establish foursquare as the place to go to find a place to go. This case probably doesn’t call for a pivot in brand, rather a gradual shift that can be achieved through cosmetic changes, app re-ordering, and messaging. However, foursquare still faces the challenge of reaching new users who may value recommendations, but did not highly value badges and mayorships. Opening this one up. 

MoveTogether: Lessons Learned

This is the story of MoveTogether, a class project I did at Stanford to encourage carpooling in the Bay area. If you don’t care about carpooling or the environment, don’t command+w too quickly. More importantly, MoveTogether is a testament to ethnography and the power of the ol’ pivot.

Initial Project Objective: Bring the collaborative consumption trend to the road: get people sharing their work commute, and even better, use GPS-enabled phones to match rides in real-time.

Ethnography: With this in mind, we dissected the experience of carpooling and sharing goods. We spoke to couch surfers (analogous users), we talked to people who use a self-organizing carpool across the Oakland Bridge, we hitchhiked and we offered free rides home from the train station. We also organized a carpool for students to share rides to the grocery store (everything is far on the farm!).

3 Super Surprising Findings:

  1. Car space is extremely personal. People are more willing to share their couch than their car. Cars can be more personal, because they are often not a space commuters typically share with anyone, where as living rooms are at least shared with roommates or family. People also have really specific habits when it comes to driving - music, heat control - and they don’t want to compromise. Finally, the person is sitting right next to you for an extended period of time, so it feels awkward not to speak to them, but talking is tiring.
  2. Safety is a big concern. Drivers don’t want to be responsible for others and riders are wary of drivers. 
  3. These first two concerns seem to fade when carpooling with an acquaintance. Some semblance of community matters most.

3 Not So Surprising, But Important Findings:

  1. People don’t want to be inconvenienced, especially the drivers. They want to travel on their time, their way, with minimal scheduling, and minimal thinking. It was very hard to incentivize the drivers (two-sided market with a lack of supply).
  2. Therefore, carpooling is likely optimal between major hubs, where there is critical mass for real-time ride matching. 
  3. Payment is awkward. How much to pay? When to pay? No norms in place.

Based on these findings, we realized that drivers & riders may not be ready for real-time carpooling, akin to ZimRide. We needed to deal with the lack of drivers (supply), resolve safety concerns, focus on critical mass hubs and deal with payments…

Enter Pivot 1: Move From a Two-Sided to a One-Sided Market

 So we decided to remove the driver from the equation completely. Our new service was a peer-2-peer taxi splitting service from the airport. Okay, yes this was definitely a degeneration of our original lofty environmental goal, but it is a good example of listening to your market and pivoting.

So we prototyped the idea at SFO. We showed mock-ups to people and received rave reviews, “I can’t believe someone hasn’t done this already.”

In true design thinking, d.school style, we experimented with a low-res prototype. My team sat at the arrivals terminal with signs, offering to help people split a taxi. We even put this piece of luggage on the conveyor belt. 

Needless to say we got kicked out of the airport about 4 hrs later (pretty good we thought). But alas, were not able to match a single ride.

What were we missing?

Many things, I’m sure. But based on our earlier learnings, we hypothesized that we were lacking the whole aspect of community. The monetary benefit was nice, but not enough to spend 30 mins with a complete stranger. Also, there are not established norms for sharing a cab from SFO like there are at JFK / LGA. Carpooling is a commitment to spend time with someone, why would you do that without a shared sense of community (Aside: I hypothesize that New Yorkers are more willing to do this, because they have a greater sense of city community than in SF. New Yorkers feel more connected to other New Yorkers. Further, most of the people who take cabs from SF are tourists, not residents). 

Enter Pivot 2: Introduce a Notion of Community

We decided to target conferences. These are groups of like-minded people who have some interest in meeting new strangers. We approached Google requesting to prototype a taxi-sharing app to/from SFO to the Google I/O conference. They agreed (which was not that difficult actually) and bingo! We finally had success (22 matches in one day) and Google asked if we could provide a similar service for their next conference. 

So that’s the quick and dirty on the evolution of MoveTogether. Not the most glamour service in the end, but a great testament to understanding user experience and having an openness to pivoting.

BTW, the team I was working with decided not to pursue this project further, so if anyone is interested and/or just wants to learn more about our research, feel free to get a hold of me!