Design and Code: My Next Steps

I haven’t posted in a while – mainly because of a newborn baby and the corresponding lack of time and energy. But I’ve also taken a break because I’ve been thinking about what I want to do with Sketchbook B.

Sketchbook B is my outlet for side projects. Those fun or challenging projects that end up in my sketchbook that I want to build for myself. What I’ve noticed recently is that most of the side projects that I’m really interested in will require me to learn to program to some degree.

I’ve worked with web design before, but I never really truly embraced writing HTML/CSS/Javascript by hand. I’ve played around with Objective C, but I’m ready to get serious about iOS development. I’ve designed type, but I never tapped into the added power of using Python.

If I really want to design in these spaces – and have the control I want – I need to get comfortable with code.

I’m started the process of learning. My real focus is on Objective C, Xcode and iOS development. I’ve already been working off and on since last year on learning Objective C. I’m going to try and move forward with developing some apps. I’ve got a bunch of resources that I will be trying out and hopefully posting about.

I’m working a little bit with HTML/CSS/Javascript with CodeAcademy. I do know HTML/CSS reasonably well, but I figured a refresher wouldn’t hurt. And I’ve never really done much more than tinker with Javascript.

I’m leaving Python for last. The typeface development tools are pretty sophisticated as they are. I’m happy with Glyphs and I look forward to working with RoboFont in the future. Python adds power to the development process, but I can develop type without learning Python. So I’ll hold off on that until I have Objective C under my belt.

The result of all this learning is that I will likely be doing fewer typefaces and one-off projects over the next year. Instead, I’m going to be posting about the learning process and other topics that interest me.

But my real focus for the foreseeable future is learning a ton. And hopefully – eventually – that will mean lots of new projects in new areas.

“This book assumes you have a working knowledge of C.”

I’m slowly plodding along with learning Objective C, with the goal of developing an iPhone application. I really don’t have time for classes. So I wanted to find a book to get me through Objective-C at my own pace. But when I started looking at iPhone programming books, many of them started with the phrase “This book assumes you have a working knowledge of C.” Well, I don’t. I’m a designer, not a programmer (yet).

So I started looking into books on C. But there’s a problem with that. Objective C - the programming language that is used for iOS and Mac programming - is different than C. So I’d have to learn C, and then learn Objective C. I’m not that patient. Plus most of the C books started with “This books assumes you have some programming experience.” Which I don’t. I’m a designer.

Finally, I found Programming in Objective-C 2.0 by Stephen G. Kochan. And in the introduction, Kochan writes “This book does not assume much, if any, previous programming experience. In fact, if you’re a novice programmer, you should be about to learn Objective-C as your first programming language.” Perfect. Exactly what I was looking for. So I bought it for Kindle so I could view it on my iPad and my Mac.

I’ve started going through the book chapter by chapter. And so far, I like it. It’s challenging. I’m doing the assignments at the end of the chapter. Writing simple programs to solve mathematical equations or perform simple functions. All command line programs with no graphical interface. Sometimes, it’s easy and sometimes, it’s really not. iOS and Mac programming are still a long way away, but I’m making progress.

Learning something new

When we are young, we learn lots of new things. And when I say new, I mean completely new. Something with which you have no previous experience… Like learning a new foreign language. Or a musical instrument.

Challenging. And sometimes frustrating. But most of all, it’s exciting.

As we get older, it’s rare that we are presented with these kind of monumental challenges. We forget what it’s like to struggle with vocabulary words in a new language. Or learn scales on a musical instrument.

I don’t think it’s that we become lazy… Instead, as we get older, we focus on things that like. Getting better at doing things that we already do well. It’s rare when we challenge ourselves to learn something completely different. Something radically outside our comfort zone…

Well, I’m there. Completely outside of my comfort zone. As part of my new focus for 2011, I’ve started the process of learning Objective C with the goal of releasing an iOS app. And while I’m familiar with the basic concepts of programming, I’m anything but comfortable. I’m a designer. I’m used to the visual side of things. I swear I’m using parts of my brain that I have used since high school calculus.

I’m working through books and tutorials. And I’m making progress. But, right now, I’m doing the programming equivalent of learning basic vocabulary or musical scales. Slow and simple progressions. And hopefully, before I know it, I’ll be doing the programming equivalent of Twinkle Twinkle Little Star.

I’m definitely challenged. And occasionally frustrated. But most of all, I’m excited to be learning something completely new. I’ll be posting more on the books and resources I’m using and other observations along the way. But for now, back to work…