37signals logo

This is Signal vs. Noise, a weblog by 37signals about design, business, experience, simplicity, the web, culture, and more. Established 1999 in Chicago. Follow us on Twitter for more information on our products.

Jobs:

See more on our Job Board.

Knowing 'How' Ryan Jul 07 2011

43 comments Latest by Emir Bukva

I’ve long argued that UI design, programming, and product strategy should be learned apprentice-style with your hands and through experience, not through school and pedagogy. That can sound anti-academic, but it’s not. I recently got around to reading The Design of Everyday Things, the classic by Donald Norman (himself an academic) and he has this to say:

People function through their use of two kinds of knowledge: knowledge of and knowledge how.
...
Knowledge how [is] what psychologists call procedural knowledge.
...
Procedural knowledge is difficult or impossible to write down and difficult to teach. It is best taught by demonstration and best learned through practice. Even the best teachers cannot usually describe what they are doing. Procedural knowledge is largely subconscious.

I couldn’t have asked for a better statement of the problem. It’s really darn hard to take all the physical and mental processes going on when you do something like design an interface and boil them down to declarative statements like “do this or that.”

When I learned design, I was partly self-taught and partly mentored by Jason. When I learned programming—as much as I’ve learned—I didn’t make progress until I got personal explanations from David and Marcel.

When I go to conferences about design I see a lot of declarative knowledge. Knowledge of. The latest CSS rules. The new JavaScript syntax. Ten ways to make users happy (supposedly) or whatever else. What I don’t see are procedures—somebody standing up there with a pen or a text editor and making things happen and showing how it’s done. That’s what I want to see and that’s what I think our industry needs more of.

––
Addendum: Some examples of showing ‘how’:

  • A Tour of the Design Process at 37signals, my presentation from FOWA London 2010, demos the mechanics at each stage of a design: modeling, sketching, coding, Photoshopping and implementing in Rails.
  • Tom Preston-Werner sits down with a laptop and teaches the fundamentals of Git by actually typing commands in Mastering Git Basics.
  • Kent Beck’s screencasts on TDD show how test-driven development is done by a master with real code.
Looking for a job? Got a position to fill? Check out the Job Board.
Got a web design project in mind? Find a web designer on Sortfolio. Browse by visual style, portfolio, budget, and geographic location.
Over 1 million people use 37signals' simple web-based software to collaborate on projects, track contacts, and organize their business with an intranet.

43 comments so far

Christopher Hawkins 07 Jul 11

I agree 100%. Apprentice-style learning is highly effective. It is also, unfortunately, relegated to second-class status compared to classroom learning in the minds of most.

I love it when someone smarter or more learned than I am can show me the “how” of something I’m interested in. It’s so much more real than book-work.

Cameron Stitt 07 Jul 11

Great post Ryan. I agree with the apprentice-style learning also. I have learnt more from mentors both in the work-place and online then I did from 3 years of banging my head on a desk at University.

Luke Holder 07 Jul 11

Wow, absolutely agree.

I am self taught, but have being doing it long enough that I have now learnt more from the people around me.

I recently moved from Australia to a great job here in the USA , and was excited to attend my first large dev/design conference. I thought I would learn soo much but I was sorely disappointed – not because I am that advanced, but because the speakers where only speaking about knowledge of all the html5 and css3 features, and nothing was actual problem solving or practical application of features.

I was blown away when someone doing a presentation on css3 animations and gave a great demo actually said during the Q & A session: “I am not an engineer so I don’t know about that” to a question on browser support for css3 animations!

Sometime I feel like the smartest and most talented are too busy in the trenches to be on stage.

Sawyer 07 Jul 11

I’m currently attending college for Web Development and Design and agree 100% that an apprenticeship would be the way to go. The issue though, is that finding a quality mentor to apprentice under is pretty difficult. I’m actually attempting to do exactly that. (sawyerhollenshead.com/apprentice)

Do you have any recommendations or resources on how to find a quality apprenticeship?

Chris 07 Jul 11

The same can be said for how people learn. This reminds of a first year university module I took while studying for my Software Engineering degree. The class was essentially matrix and vector mathematics, and I failed.

Luckily freshman were allowed to retake failed exams in the summer so I was stayed with a friend who happened to be an Architecture student. After sitting with him for no more than two hours I finally understood what 12 hours of lectures couldn’t get across.

It can be difficult to grasp concepts when someone is just spouting knowledge at you in a lecture theatre or conference presentation. Sitting down and working through the problem with someone experienced is far more effective in my experience. Also explains why I’m a far better programmer in my profession than I ever was at school.

Mark 07 Jul 11

I agree 100% also. One of the most frustrating years of my career was spent “teaching people how to think like me” when it came to debugging CSS and JavaScript (pre-Firefox, meaning IE6 with alert statements).

The problem was that many situations were unique, and a trial and error process was king for discovering the subtleties of client-side coding and recognizing recurring scenarios. I couldn’t simply do a mind dump, walk through a few examples, and send someone on his way. But 90% of our developers were taught to “program” in one- or two-week lecture-style classes and this is how my manager thought it should work (if I was any good).

Now we work in a more collaborative, agile fashion and it makes all the difference. We learn from each other, and the background chatter always lends itself to accidental discoveries and teaching in a much more effective way. As romantic as it seems, the days of someone building The Next Killer App alone in a basement are gone if they ever existed in the first place.

Éric Chamberland 07 Jul 11

While there is often clearly not enough hands-on practice in academic settings, there is a need for declarative knowledge in all trades. Just as there is a need for procedural knowledge, and a need for conditional knowledge too (knowledge when, as in “under which conditions should I…”). All three kinds are required to some extent for competency in any line of work.

There is a lot of overlap between procedural and implicit knowledge (the knowledge you can’t quite express with word), but that doesn’t mean all procedural knowledge can’t be explained. But even when it is explainable, procedural knowledge sets in with practice. Ditto for conditional knowledge : while it can sometimes be explained, it is often implicit, and you mostly get it with practice.

In sum, we should not ditch declarative knowledge; we should just make sure we don’t stop there, as it is required but insufficient.

Alex Humphrey 07 Jul 11

There have only been a handful of times where I’ve had the opportunity to work with a master at something that I was just beginning at. I have learned more from those brief experiences than my entire time at University.

There is a lot to be said for “how to” learning (I read several books a month for that very reason) but I completely agree that there is something special about doing that can never be taught in a class room.

Cory 07 Jul 11

Pedagogy is not anti-academic

Marc 07 Jul 11

@Sawyer

“I’m currently attending college for Web Development and Design”

There is a college major in Web Development & Design?

What a waste. Much more cost-effective to learn on your own … or instead, attend university for computer science

Neal Sales-Griffin 07 Jul 11

This does not have to be a black and white/either or issue. I think there is a way to create an environment where a duality can be established.

And rather than theorizing about it, I decided to create that place, because I need it more than anyone I know.

It’s called Code Academy. It’s a 12 week bootcamp that provides apprenticeship as well as formal instruction for ‘pure’ beginners to learn Ruby on Rails and entrepreneurship. We are starting in Chicago but are hopeful that we can expand to all the locations that would benefit from what we are providing.

If you’d like to know more feel free to message me at neal@codeacademy.org. We can use all the help we can get as it relates to getting the word out about our fall launch. We are looking for mentors, supporters, and we’re going to be accepting students!

:)

- Neal

Adrian Edwards 07 Jul 11

The rise and rise of video tutorials in our industry is going some way towards helping address this issue.

Rasyadi 07 Jul 11

Appretice-style method has been practiced by the great scholars a long time ago and it has proven as the most effective method of learning. For example, look at the Socratic method practised by the Greek scholars, Talaqqi method practised by the Islamic scholars and the Oxford Tutorial Method that are still practicing until now.

Sawyer 07 Jul 11

@Marc

“There is a college major in Web Development & Design?

What a waste. Much more cost-effective to learn on your own … or instead, attend university for computer science”

Hence why I’m looking for an apprenticeship.

Technically it’s called New Media Interactive Development...it’s a mix between design and various programming languages.

Kathy Sierra 07 Jul 11

Yes, yes, yes. Another angle: in most text and tech books, the (mostly) declarative knowledge is Just-in-Case, but we’re more motivated to learn when we really NEED to do this thing NOW , which is Just-in-Time. Both have strengths and weaknesses, but our goal in helping someone learn should be to make just-in-case FEEL more like just-in-time. A flight simulator would be the best example, but for tech/design, just letting relevant, meaningful, use-cases and scenarios drive the learning would make a big impact.

So much of what we learn in advance (just-in-case) is decoupled from how/when/why we would use it… then we find ourselves months later needing to actually DO that thing, and think, “if I had known THIS might happen, I’d have paid attention…”

Apprentice learning does not scale, but it is the best. Still, we can do a better job with what we do create for learners, and that includes our end-user support materials as well. They are learners too, or could be.

Gwyn ap Harri 07 Jul 11

Knowledge of = Learning Knowledge how = Experience

Experience = Learning * 1,000,000 (give or take)

Great post Ryan.

catwell 07 Jul 11

Programming classes, especially for beginners, should always have the teacher write code live at some point. A good example of that is Julie Zelenski’s Programming Abstractions class at Stanford: http://www.youtube.com/watch?v=kMzH3tfP6f8

I was taught C++ in a similar way at Cranfield University (UK) by Peter Sherar. Courses with live code in the morning, hands-on afternoons. It is probably the best class I’ve ever had from a teaching methodology standpoint.

Kevin 07 Jul 11

Ryan, I agree very much and in fact I am going to do exactly that by joining a rails consultancy to become (much) better at building products. I have been learning by myself but it has just been too slow and isolated.

Gerard Kelly 07 Jul 11

Totally agree with this – teaching programming using slide after slide of code is like teaching carpentry without allowing the student to pick up a tool. I wonder if there is a need for programming “lectures” at all?

I discuss this a bit more on this blog post:

http://themodernprogrammer.com/post/attention-programming-lecturers-let-the-boys-play/

Atle Iversen 07 Jul 11

The art of programming should be learned at school.

The craft of programming should be learned at work/home.

(or replace art with science if you prefer that)

You learn the BIG ‘knowledge why’ at school, and all the SMALL ‘knowledge why’ while practicing.

Kurt 07 Jul 11

Excellent post Ryan. I’d like to get your thoughts on a service like lynda.com. Does their approach to teaching (online screencast demonstrations of software) qualify as “somebody standing up there with a pen or a text editor and making things happen and showing how it’s done” or is the direct interaction with the instructor (missing from Lynda) essential in your opinion?

Courtney 07 Jul 11

Kurt,

I tought you were dead. Call me, we need to talk.

Love, Curtney

el 07 Jul 11

Theory(Science) is the captain, and practice the soldiers.

The most important thing in this quote is how they relate to each other. Capitan is ones soldiers are thousands. Of-s should be ones how-s should be thousands.

Sadly, all education systems in every topic, including technology are working exactly the oposite way. 500-1000 page techical books, video tutorials, screencasts etc. All of them are just shit and unnecessary garbage.

Einstein wrote ~100 page book and changed everything in humanity and that’s the max amount of pages in of books shoud be.

Leonardo da Vinci said this two quotes about 5 hundred years ago, but nothing learned yet :/

All sciences are vain and full of errors that are not born of experience, the mother of all Knowledge.

Ka Wai 07 Jul 11

Great points Ryan. It’s a bit like the Dreyfus Model of Skill Acquisition – which I will bastardize and simplify—people learn by understanding what before the higher level ‘why’.

“How I do this” is really showing what you do. It’s easier to get from that to the higher level why’s by showing how first, then vice-versa.

Ryan Austin 07 Jul 11

Completely agree Ryan. Showing how is the best way to teach and doing is the best way to learn. If only public schools would wise up to this principle we might enjoy a Renaissance of education.

I’ve personally benefitted from the lynda.com and Rails Tutorial videos which helped crystallize many important concepts which cannot be conveyed in procedural language. Nothing beats being able to look over the shoulder of a great teacher.

Hrishi Mittal 07 Jul 11

Ryan I’m in the process of designing a new product, and I was wondering about how the good designers do it. So, this is a very timely post for me. In fact, I was already thinking I wanted to watch your old talks again.

This article by Paul Stamatiou is also quite useful – http://paulstamatiou.com/startup-web-design-ux-crash-course

Bryan Sebastian 07 Jul 11

I believe Codeschool.com has done a wonderful job of creating an online teaching by doing website. I also think the Khan Academy is also amazing. Sal does what Ryan mentions, gets the pen out and shows you how to do whatever it is he is teaching you.

Phil Coffman 07 Jul 11

I completely agree Ryan. I too have grown tired of “knowledge of” resources and presentations. While I believe they have their place, I yearn for the “how” of design: learning from others’ processes and methods.

This is why I set out to create Method & Craft. One thing I’ve noticed while working with our authors is it’s extremely difficult for them to put into words how they do what they do. I’d say the majority of us suffer from that, because I feel design is as much about education is about responding from our gut. Naz Hamid spoke about this a little on his site. This is why with Method & Craft we’ve opted for more of a “show & tell” model rather than focusing on the psychology of design as there is plenty to be gleaned from watching someone work.

Craig Willis 07 Jul 11

I left school at 16 and embarked on a 5 year apprenticeship in the electronics industry. At 26 I went to University to study politics. While I agree that hands on is a ‘better’ way to learn I have seen other apprentices completing the so called ‘apprenticeship’ without learning what they really needed.

I studied politics because it was a topic I was personally interested in but outside of my degree I have always worked in tech. What university taught me, that may be a product of the fact I had real work experience first, was ‘how to learn’.

I see this day to day now, I see some colleagues that work at something until they find the answer and others that will ask everyone until they are ‘told’ the answer. The chances are the later will come back and ask the same questions again. As with everything there is a balance somewhere.

Fake Kathy Sierra 07 Jul 11

100% disagree. Exposing someone to the procedural ‘how’ knowledge without first giving them solid declarative ‘what’ knowledge will in the best case not amount to anything, and in the worst case end up being totally confusing, even harmful for them as well as potentially for many others.

However, a person in solid possession of profound knowledge of ‘what’, that is, declarative knowledge, will almost always be able to deduce the best way to go about ‘how’ to implement it.

I’ve seen that when teaching guitar. I can show my students hands-on how to play improvised solo lines over John Coltrane’s “Giant Steps”, and this will only scare and confuse them. Instead, I teach them the declarative side of music—what does it all mean, what is the lay of the land, what makes the chord changes work. Once they grasp that, they’ll figure out on their own how to navigate the tricky waters of playing along the Coltrane’s changes on “Giant Steps”.

So you’re blowing hot air in your post here.

RS 07 Jul 11

@Fake:

What works for guitar doesn’t necessarily work for interface design or programming. Music theory is totally comprehensive and well-understood. We don’t have a body of theory like that for interface design. I think they are very different cases.

Maureen 07 Jul 11

We do have bodies of theory to draw on for interface design. The principles of human perception, memory and learning could be seen as analogous to music theory in teaching guitar no?

RS 08 Jul 11

@Maureen: No. Those principles are nice but they don’t help you to actually create software. You can create nice harmonies purely mechanically by following principles in music theory, but I’ve never seen such a thing with software or UI.

TVD 08 Jul 11

@Ryan: I’ve gone from Lead Developer to Starter and everything in-between. As an industry we have plenty of excellent resources on Knowledge Of. Everything from Douglas Crockford’s JavaScript: The Good Parts to Andy Budd’s CSS Mastery. Yet, we are missing a key element of greatness. Fundamentally, I too believe that missing element is Knowledge How. My passion, in particular, is mentorship.

We need to value that connection between the inspired youth among us. There is benefit in mentorship – both people learn something. But, as you point out, mentorship isn’t the only venue. Presentations coupled with break-out sessions is a happy medium – one I’ve seen executed with quite some success.

@Sawyer: I’m not going to mix words – I believe your skill level is superb! That said, nothing beats the kind of experience you get working for another person. I’m going to be a contrarian here and recommend you work for a high-profile Advertising Agency. Two things will happen.

First, your skills will multiply (which, for me, it’s hard to see how better you can get – but you will and that will be a defining moment for you). Finally, they will work you to the ground! I know this last one is a bit puzzling as to how it is a benefit, but hear me out…

You can’t hope to lead a great team if you have no idea what it’s like to be managed by lesser men. You have to be able to see things from your employee’s point of view. You have to be able to empathize. Most importantly, it will build your character.

Feel free to drop me a line anytime. Take care.

Brett 08 Jul 11

Sometimes you just can’t apprentice to anyone – you have to learn on the job, iterate often, improve quickly.

But as for the declarative and procedural, I agree that I’d like to see a lot more procedural examples, tutorials, etc. I want to see how a specific person got to a specific solution. Sure, they worked within a specific set of rules (declarative) but I want to see how their mind worked, step-to-step (procedural). I want to try and discern the inspirational insights that steered the process.

The more ways we have of working towards a solution, the more opportunities we have along the way, the more creative we can be.

sean wood 08 Jul 11

Great examples. Thank you for these.

Matt 08 Jul 11

College (Computer Science) gave me a basic foundation to build off of, but I didn’t actually blast off and LEARN until I dove in and coded/designed.

There’s a big difference between archiving tons of information in your head from a class or book, versus actually getting in the mud and physically getting dirty.

Mattias 09 Jul 11

It all comes down to that we all have different learning styles. The best way for you to learn something can be the opposite for someone else. So never draw the conclusion that whatever works the best on you must be the overall best solution for everybody.

Want a start? Google “Kolb learning styles”

Chris 09 Jul 11

Thanks for this post. I just watched your talk at the “Future of Web Apps”. Really, really good. Thanks for that resource.

Paul Montwill 11 Jul 11

Wow! This is a kind of post I’m visiting this blog for. Great insight, Ryan.

This part was really good: ” Procedural knowledge is largely subconscious”

Manuel 11 Jul 11

Hi, I´m late…

I think this is crucial. The Mentor-Apprentice method of teaching-learning is just the best, no matter what. It´s just that, in order to educate massively, the modern world broke this method in favor to our current way: one teach by lecture and while other learn by repeat, most of the time, repeating out of context.

Another crucial thing is how we approach learning. If you do it the right way, the need for a mentor is reduced. the best example I can tell for this is: http://es.wikipedia.org/wiki/Luis_Zambrano (in Spanish) Luis Zambrano deduced on his own the value of PI and invented an electric turbine back in 1940 without any help or instruction. His approach: Don’t wait to know. Do in order to know. Learn by doing If you are doing something, finish it.

Sjoerd Luteyn 12 Jul 11

There is a difference of beging INFORMED and having KNOWLEDGE .

In my personal opinion many people are informed about something (e.g. de rules of interface design or music theory) but few people have kowledge (the capacity of moving people with it).

Emir Bukva 13 Jul 11

Ryan,

This is why most college-level design classes are studios. I.e. limited to about dozen students at most. The idea is to make it a semester-long apprenticeship as much as possible through a fair deal of one-on-one critiques. Demos are also a crucial part of art and design instruction.

@Mattias has also got it, different people have different learning styles. Which is why no class (or conference) size instruction can really match a one-on-one apprenticeship.

Comments are closed