Welcome to our continuing series of Code Project interviews in which we talk to developers about their backgrounds, projects, interests and pet peeves. In this installment we talk to Susan Buck, who splits her time between teaching, developing and helping other women learn to code.
Who are you?
My name is Susan Buck. I'm the co-founder of Web Start Women and a developer with Photojojo.com. I also teach web programming, most recently at the University of Pennsylvania. I’m a recent transplant to the Boston area, by way of Philadelphia.
What do you do?
Most recently I’ve been putting a lot of energy into projects surrounding Web Start Women, an on-the-web and in-person endeavor focused on getting more women involved in technology and web development. On a local basis, we run community events and classes. I spend a lot of my time on the latter, building, polishing and running curriculum on topics such as PHP, JavaScript, jQuery, HTML/CSS, WordPress, and numerous other pieces of the web dev puzzle.
The other big project I have going on is developing Codagogy, an online learning platform I’m building from scratch. I’m pretty excited about this task, both as a personal programming challenge and also what it means for Web Start Women because it’s going to allow us to reach beyond large metropolitan areas, helping more women enter the web development field.
What is your development environment?
I work on a 13-inch MacBook Air; I love the portability of it. My previous machines where a 17-inch PowerBook followed by a 15-inch MacBook Pro. Each downgrade in size has been an upgrade in flexibility.
My dev environments revolve around MAMP and git with Coda as my primary editor. The majority of my programming is done in PHP-JavaScript-HTML/CSS land.
On the client side I’ve recently started using the CSS extension Less and am loving it. CSS organization has always driven me crazy, and I’ve flip-flopped a lot on ideal conventions, but Less helps solve that. The nesting ability has been a joy, and it’s helped keep things super tidy and clear. The ability to use variables has also been a lot of fun; I love being able to define all my colors in one file that can be included in other files and accessed by descriptive names instead of hex codes.
I even put together a little PHP parser that will run though my colors file on a particular project and show me the palette I'm working with.
It's that kind of organization on the CSS front that makes my brain happy. The only downside is when I have to switch over to older, shared projects where we’re not using Less and I have to revert to plain old CSS.
On the server side, I’ve spent the past year working more with OOP and MVC within PHP, which has been a lot of fun and a nice remodeling of my code practices. I’ve been building the online Web Start Women Courses platform on a custom brewed, OOP-based MVC framework, and I’ve been working hard on developing it in such a way that I can easily reuse it on future projects.
Oh, and on a daily basis I’m amazed by the magic that can be produced with jQuery.
What is your coding pet peeve?
When you find a really great code sample online that you’re excited to try out, but there’s no way to copy the raw text. Because of this, you end up with extra lines, spaces and line numbers from their HTML that you have to clean out before you can run it. Hate that!
How did you get started programming?
My hacking career started pretty much as soon as my family got our first dial-up connection when I was in middle school. I quickly dove into dissecting how sites were built, laying my early web foundation across places like GeoCities.
Meanwhile, I taught myself Photoshop and Flash, then got more into web development in undergrad where I majored in the Multimedia Arts and Sciences program at UNCA. Within this program, I got to dabble in digital arts – playing with 2D and 3D animation, as well as crossover to the Computer Science department where I really started the groundwork of learning about server- and client-side technologies. I kept this up through grad school, focusing on web programming at NYU’s Interactive Telecommunications Program.
The developer community has more than influenced my coding, it’s really formed it. Long before I ever began “officially” pursuing this field in an academic institution I was learning and growing with the information and resources freely distributed by the community I found online. I’ve purchased a few reference and textbooks in my career, but for the most part, the answers I’m looking for are found within Google search results. And more often than not, at the end of that search result is some Stackoverflow message or blog post created by peers who are walking on the same path I am.
More recently, I’ve been able to enjoy the offline version of this community as well. My work within Web Start Women and teaching has given me a great opportunity to spend a lot of time with other developers and budding programmers.
What advice would you offer to an up-and-coming programmer?
Start building. The best way to learn how to code is to tackle real tasks you’re interested in. I know many students who spend a lot of time trying to absorb information; always concerned about learning the next technology or language. They get so stuck doing this, they never actually start using the language they’re working with. My suggestion for this is to focus on the problem you're solving instead of the tool you're using. Break that problem down into little bits and then figure out only the techniques you need to get it done.
The other part of this pep talk I give students is to try and remember that any problem is solvable. Being a programmer is just about solving puzzles, and you’ve got the biggest resource of information and help at your disposal; all you’ve got to do is spend enough time searching and chipping away at it and you’ll eventually crack it.