Mark Dalrymple Developer Interview (Part 2 of 2)

This is the second half of my interview with CocoaHeads co-founder and Big Nerd Ranch instructor Mark Dalrymple. You can read the first half at Mark Dalrymple Developer Interview (Part 1 of 2). If you want to catch all iTechCrossroads posts you can subscribe to the syndicated feed or the weekly e-mail newsletter.

Here are the questions and answers.

Q: Can a person learn to program well using books and free Internet information only?

A: Absolutely. You’ll go faster if you have help, and that’s where CocoaHeads is handy. If you work at a company with a good code review policy. That’s the biggest thing I miss at Google. I’m not there anymore, is the code review of everything you check in. Having another set of eyes telling you stuff is great. But, I learned to program typing in programs from magazines back in the Apple II days. Back in the Apple II days, magazines and books, like, interesting stuff and then pages and pages of basic programs. So you just type them in, make mistakes, debug them and you learn to program by osmosis.

The books today are so good. The internet resources are so good. Stack Overflow, there’s IRC channels where you can ask questions, the dev forums. So you can get help from people. But, I do think the fastest way of getting from point A to point B programming-wise is through a course. A Big Nerd Ranch course. A college course. A one or two-day intensive seminar at a conference. That kind of stuff.

Q: Why was it important to you to create a groups for Cocoa programmers?

A: That’s a very interesting question. Fundamentally, I’m not that much of a social person. I’m very introverted. When I’m going back to my hotel tonight I’ll probably just collapse and “die”. But, I like being around people. I like laughing. I like meeting new people, learning new stuff.

And I’m a firm believer that success to life depends on your contact network, who you know. Not necessarily to exploit them. It’s like, “Hey Mike. I want something from you. You were my friend in the past. Give me this thing.”, but more of like, “I like you as a person. I respect you as a person. I like to hangout and we’ve worked together and we can hang out.” So that’s fun. I can catchup on people’s lives, see what’s going on. So I get kind of the social thing and the technical “jones” at the same time.

Q: Why do you think the number of CocoaHeads chapters has grown?

A: Well. There’s the, I think the Malcolm [Gladwell], whatever his name, novel, “The Tipping Point“. So, it’s kind of like, stuff kind of happens, boiling in the background, then it’s visible enough where other people notice. So, it’s like, people probably have not known, Mac and iOS programmers probably haven’t thought, “Hey, I will get together with other people in “meat space” and give presentations and watch presentations and code together. Collaborate on blog postings, whatever. But there’s now enough CocoaHeads out there where people have heard of it. They’ve seen the totally bizarre logo, which I love. Like, “CocoaHeads, that’s kind of cool.”

And then you have individuals like Rod here, and other folks who are, know, like, “I want to meet people. I want to kind of foster a community around this topic that’s important to me,”, and kind of having an existing brand out there. So you can almost think of CocoaHeads as a brand for person to person Mac/iOS face time. That it’s kind of like, “I want to participate in this.” There’s the brand that’s the next kind of logical thing.

So like, that’s kind of in contrast to NSCoder Night, which I think is a fantastic idea, where you meet the same night every Tuesday at a coffee shop and you sit around and you code and you talk and you laugh. No presentations, but kind of like a regular community thing going on. So, if I didn’t have a full music life going on in my evenings taken up, CocoaHeads may have been an NSCoder night flavor.

Q: You have worked for several technology companies, but not including Apple. Why do you want to teach about Objective-C and Cocoa?

A: So why do I want to teach about Objective-C and Cocoa? One is I’m good at it. So, I don’t like to embarrass myself in public by talking about stuff I don’t know about and over the years I’ve found that if I teach something or tell something about it, frequently just the act of researching it and learning it to figure out what to talk about and what not to talk about is enough to cement something in my brain and then I learn it. So, this is kind of a learning mechanism for me, forcing me to learn stuff.

So, I gave a talk tonight about ARC and LLDB. I probably would not have done more than like, run a program, set a breakpoint, and, “Oh, that was cool.”, in LLDB and gone back to, know, good old GDB, but because I knew that I was going to talk for half an hour about it for my Pittsburgh CocoaHeads and teach it, and eventually write a blog posting and/or a chapter of the book about it, I needed to research, know, find out commands.

It’s like, “Oh wow, this is really cool. I hadn’t thought about this. This is broken. And then the whole Python inside of the debugger. I had never thought of that being terribly interesting. But, actually working on an example, know, you have a breakpoint, and then you look up the call stack, and see who called you, and use that as logic to figure out to actually break or not. It’s like, “That is a technique I have not though about before.” And the act of doing that as an example for a presentation is like, “Now I know something new. I have a new powerful tool that I can apply for my day-to-day work.”

Q: So, you learn through your teaching?

A: Yes, through my teaching, through my writing and through kind of a rapid learning technique that I learned from Steve Litt, who does The Universal Troubleshooting Process. He has this kind of framework of, you’re learning new technology, so you keep a record of basically terminology, definitions, how thing work and then you write little examples using troubleshooting procedures to debug those things and then that kind of leads to a virtuous cycle of learning something, build something, fixing something, going back to learning something. Then you can rapidly learn something, a new API, a new language, a new database through that kind of mechanism.

Related posts:

  1. Mark Dalrymple Developer Interview (Part 1 of 2)
  2. Mark Dalrymple Of Big Nerd Ranch Coming To Salt Lake City
  3. To Code, Or Not To Code
About Patrick Cassell

I have been using Apple computers everyday for about six years and have been programming in C and Objective-C for over 3 years. I also have taken some Java computer science college courses and edit HTML for this site.
I have followed the Apple news closely since early 2006 and have had an interest in Apple since I bought my first Apple computer (a Macintosh Performa 450) in about 1993 at age 14 or 15 .

Trackbacks

  1. [...] part 1, and part 2. Advertisement GA_googleAddAttr("AdOpt", "1"); GA_googleAddAttr("Origin", "other"); [...]

Speak Your Mind

*