Grow your CSS skills. Land your dream job.

Five Questions with Jeff Starr

Published by Chris Coyier

I first knew of Jeff through his website Perishable Press, which has long been a fantastic web design resource blog focusing on CSS, WordPress, and a lot of hard-to-find-elsewhere .htaccess stuff along with a good amount of Jeff's personality (which I consider to be a prerequisite of any good blog) . As you may know, Jeff and I co-author Digging Into WordPress together, both the book and the blog. Jeff is really a get-things-done kinda guy and I've always admired that about him. I thought I'd get him to do an interview where I could ask him some things I'd never asked him before.

*Chris: Your writing style is extremely comprehensive. For example, you recently wrote an article about CSS border rules. It's not an overview or tutorial, but more of an encyclopedic approach documenting these properties. Is this a conscious choice? Or just "your style"?

Jeff: That particular post was one of my lazy "note-dumps" with a quick intro and closing slapped on. Typically, I will take a post from that point and continue to flesh it out with as much relevant information as possible. This usually results in longer articles that cover more ground and/or go into greater depth. It's always a matter of addressing the target audience where they're at, which is generally an educated guess. How much do you assume your readers already know? Do you begin with how to turn on the computer and work your way to the point, or just assume they're exactly where you're at and deliver the goods? I think a lot of my articles try too hard at catering to the least common denominator when they would probably be just as useful if I had cut directly to the point. I think finding the balance is key to writing good tutorials.

I do get obsessive about web-design stuff and writing about it. It's a rush to see work come to fruition, and I like to make sure that I'm not missing anything along the way. All the details need to be accounted for. All the nuances need explained. I think maybe years in school have warped my writing style to sort of echo that academic textbook voice. I personally find that style easier to digest when dealing with lots of material, but for anything else it's probably overkill. When I first got into writing web-design tutorials/articles five years ago, I was literally writing for myself, entirely for the sake of learning. The more information I could lookup and include in an article the better. These days, I enjoy this sort of "encyclopedic" approach when it's useful, but continue to try to "tone it down" and "loosen up" as much as possible. I still associate the idea of "quality" with well-produced, well-researched content, but don't worry as much about being so comprehensive with everything. There's just not enough time to keep up when you're working on that level.

*Chris: The "target audience" issue I find interesting in our field of tech writing. It was a question we got asked a lot while writing our book: "what level audience level is it for?", to which I typically responded, "well, uhm, sort of intermediate but there is value in it for all levels." Then on this blog, I tend to waver around quite a bit in terms of what skill level any particular article is best suited to.

What is your approach on Perishable Press? Do you try and keep it targeted the same level reader all the time? And perhaps more interestingly, do you think tech publications in general would be more successful if they remained consistent in their skill level targeting?

Jeff: I think it depends on the topic. When I write about "blogging" or "social media" for example, I don't mess around explaining and defining everything – I just jump right in. Writing about specific code examples or techniques is the same way -- you just have to assume that, if someone is checking things out on that level, they're probably savvy with the basics. On the other hand, when you're exploring broader topics, such as how to secure a website, readers of all levels may be reading, so it's more important to explain everything. Also important when writing is the idea of "breadth" vs "depth." Stuff can be very broad in scope and deep in explanation and nobody will read it because it just looks scary, or it can be so pointed and shallow that people will dismiss it outright as spam. Personally I enjoy writing from the other two perspectives: "broad and shallow" or "focused and deep." Either of these approaches tend to make for great articles. For example, I recently did a post that covers 76 WordPress techniques that is extremely popular. Nothing too deep there, but it sure covers a lot of stuff. You see amazing content like this from Smashing Magazine, Six Revisions, and Nettuts all the time. Likewise, there are posts that fall into the "focused and deep" category. For me, that's where the quality is -- a well-focused article that deeply explores its topic. That's the kinda stuff that I like to read, so that's the kinda stuff I try to write.

As for tech books, I love 'em and think they're useful, but they all seem to follow the same general format: boring intro, cover the basics, slog through some theory and then spit out some examples. And it's always written in that stiff "academic-textbook" voice that puts so many readers to sleep. These books can be awesome learning tools, but there's no reason they all need to be so plain, boring and predictable. I think this is one of the reasons why we chose to self-publish and go the DIY route for Digging into WordPress. If you look at the difference between what we've created and how it would've been with a major publisher, you totally get why we made that decision. Whether or not taking risks, being creative, and changing things is right for other tech books depends on too many factors to even think about.

*Chris: Organization is another attribute I associate with you. For example there is a classic series on Perishable Press about obsessive CSS formatting. In one of them you claim to order your CSS rules by their line length, which I have to admit I find borderline insane, mostly from a maintenance perspective. Although I do also find it visually appealing. Do you still do it like that? Anything new? Where does that obsessive organization come from?

Jeff: Haha, yes compared to your single-line style of writing CSS, I can see how organizing by line-length would seem tedious. But for me, writing my CSS that way makes it easier on the eye and easier to maintain. Everything is so neat and organized that if something -- even the smallest little thing -- is out of place, it really stands out. A quick scan through one of my stylesheets and you know immediately whether or not it's complete or needs work in certain places. But not just for CSS, I get obsessive about any code that I'm working with, whether it's HTML, PHP, JavaScript, or even HTAccess. I'm just an extremely organized person, both online and off. It isn't always beneficial in the "real" world, but when it comes to working with code, pixels, and writing, strong organizational skills make it possible to get more done in less time. I think organization is fundamental to how the digital world operates. Essentially, the Web is nothing more than a complex organization of binary data. I think that the more organized you are, the closer you get to the true "essence" of the Web.

I have to admit though, working with you on the DiW site has given me a new appreciation for writing out CSS declaration blocks in single line format. It does seem a little quicker when scrolling through longer files, and so I have been integrating single-line declarations into my own, line-length-organized stylesheets. Good examples for when a single-line declaration is going to work better than the separate-line approach include simply styled elements such as strong, em, code, a and so on. I think punctuating stylesheets with different coding styles improves readability and maintainability. Instead of just miles of similarly formatted code, you get these nice breaks that help to divide the document into readable/scannable sections.

*Chris:So what's the "day job"? I know you work in some kind of lab. Does that involve any web work or is that relegated to freelance and side projects? Any future plans?

Jeff: Ah yes, the "day job." When I first jumped into web development around six years ago, I did it sort of "on the side" on a part-time basis. Back then, I needed a day job to pay the bills while I learned the ropes and got things up and running. Since then, I have established a small design company called Monzilla Media, where I do web development, graphic design, and other creative work. Fortunately, things are at the point now where I could probably survive without my day job, but I guess I've just been too lazy or paranoid to let it go. Having that regular, full-time job provides health insurance for my family and provides a little extra "cushion" each month. But when the time is right, I'm looking forward to moving on and focusing entirely on web design, writing, and other creative pursuits.

Future plans include anything and everything. For now, I am just going with the flow and working as much as possible. Eventually I would like to focus more on writing, and maybe even teach a few classes and try to help some folks here in the local community. But that's far-future thinking. Until then, it's all about doing my best online and enjoying life along the way.

*Chris: As we both know, and most people in our community know, managing your time is no trivial skill. Responsibilities and commitments can pile up to the point of being overwhelming very quickly. You are juggling our book, your online business and blog, your day job, your family, and I'm sure much more. Do you just take it day by day and react as needed? Or do you have a master plan for keeping things in check?

Jeff: Great question. I Mostly just take it day by day, but I do some planning as well. With the dynamic nature of the Web and working online, most of what I do is either spontaneous or reactionary, depending on the situation. I just sort of know what to do intuitively without too much explicit planning. I know what I want to accomplish, and just sort of direct my daily activities toward my long-term goals. The book is a great example. I don't recall sitting down and saying anything like, "okay, now let's figure out a plan for getting this done." Instead, the goal of completing a WordPress book was there, and everything else -- writing, editing, design, printing, etc. -- just got done during the course of things. If one of us had wanted to try to schedule and plan everything, much time would have been wasted. By keeping things fluid and flexible, we made a better book in half the time.

For me, the flexibility of flying on "auto-pilot" enables a much greater degree of multitasking and scheduling flexibility. I hate planners. I have never used any calendar or scheduling program. It would just take too much time to try and figure everything out and fit everything in. Rather, I get things done by keeping everything as wide open as possible. Along the way, if I have an appointment or deadline, I will add it to a sticky note and then work everything else around those static things that cannot be changed. This enables me to flow everything else on the fly, as needed, according to opportunity, and as desired. Beyond staying fluid and flexible with my time, I also like to take care of all the "little things" and miscellaneous tasks and errands before doing anything serious. I find that it is much easier to concentrate on design, writing and coding when I know that all the little stuff is taken care of. A good day is when I get up early, take care of all the daily tasks by 9:00am and then spend the rest of the day doing what I truly enjoy: well-focused web design and content creation.

I guess if you are doing what you love, you just do it. When I get to the point where I am constantly scheduling stuff and trying to figure out how to get everything done, it's time to switch gears and pursue a different passion.

Thank you for the interview! :)

Big thanks to Jeff for taking the time for the interview. He's also on Twitter @perishable.

Comments

  1. Charles

    Good interview, I totally agree on the importance of being well-organized when developing for the web. Unfotunately not everyone is like that.

  2. Great stuff, love the book and the website for digging into wordpress, glad you guys got together for that one.

  3. I LOVE this quote:

    “I guess if you are doing what you love, you just do it. When I get to the point where I am constantly scheduling stuff and trying to figure out how to get everything done, it’s time to switch gears and pursue a different passion.”

  4. Thanks for conducting an interview with Jeff, never know that about him!

  5. Organizing your CSS by line-length? That’s CSS OCD! :D I find myself doing similar things like that sometimes (mostly subconsciously when I’m auto-pilot). I might spend outlandish amounts of time renaming a class/ID because it doesn’t look “good” (what is the definition of “good”? I dunno) in the stylesheet or markup with the others.

    • Oh and just to add (kinda weird to reply to your own comment): I’ve been using 1-line CSS back in the day when you’d get flamed for proposing such a ludicrous idea. Then when Chris verbalized the advantages on one of his posts, I was like, “See, I’m not so weird after all!”

      When it’s one line, it’s like writing sentences. And others have said when they watch me write CSS that I write it as fast as writing in plain English. It’s not that I’m super-special, it’s just more natural to type horizontally than vertically. Plus it’s really awesome when you rock widescreen monitors.

      This changes when I write JS though (especially using terse libraries like jQuery), I’m criticized for excessively adding a new line for a simple method. (like this post, using jQuery — you’ll have to scroll down to the very bottom, “Code Block 14″ to see what I mean.)

    • I’m the same exact way on both accounts. Single-line CSS just feels better to me because I don’t have any problem scanning to find what I need quickly even when it looks like a big messy block to most people. It just keeps more of it on the screen for me to see.

      JavaScript though, and perhaps because I’m more of a beginner at it, I like extensive linebreaking. I’d probably use even more lines than your Code Block 14 examples, just because whitespace really still helps me understand what I’m looking at in JavaScript.

    • I have switched back and forth between 1 line CSS and the vertical CSS style a couple of times. Idk, seems like it depends on my mood at the time or something.

      That said, I find that both have different advantages, or reason for doing them one way or the other.

      As you both said, 1 line code is a more natural way, like reading/writing a sentence. Which is usually not difficult, but I fell it can be difficult to find a specific smaller code admidst the longer styles, for example, the margin is harder to notice here and could be easily overlooked.
      {background: url(images/btn-search.png) left top no-repeat; margin:0; border-bottom:1px dotted #ccc;}

      On the other hand, the vertical coding style where you have one style property per-line I’ve found to be just as easy, if not more so, to scan the left part of the code for easily seeing all the things that are used, making it less likely to overlook anything that is applied to something. Sometimes I organize each thing alphabetically too, so i know the background/border/color items are on top, whereas width or text etc items would be on the bottom. There’s other ways people organize the code too I’ve seen.

      It’s really all a matter personal preference, and the way that works best for YOU, as everyone learns and understands things different ways.

      I just like using both methods, always have.

    • Idk about doing it how Jeff does though, I have before, but only for a few things, and just don’t have the patience or time to line it all up for everything like that.

      Great interview btw :)

    • CSS OCD FTW! :)

      I could spend hours writing and formatting CSS. It’s like web-design therapy or something – rhythmic and relaxing. It’s perfect for working in “subconscious auto-pilot” mode, like late-night zoning out: listening to music, enjoying a beverage, and fine-tuning some CSS!

  6. This was a great interview. Thank you for taking the time to ask Jeff these questions. You guys are great!

  7. I actually order my CSS according to “line length” a bit too, but I think most people would misunderstand it. What I do is simply put all the properties that would take up a lot of space last, so I can find things easier up front. This is usually typography, background, borders, and CSS3.

    Great interview.

  8. Great interview – and having the benefit of seeing you develop over the last six years, Jeff, I can tell everybody that your meticulous and tenacious approach to web development, and obsessive organization have really paid dividends! It’s all about zen and focus!

  9. Glad to read this interview, I’m a big fan of perishablepress.com.

    Thanks !

  10. I am kinda switch back and fort on one line or block style on css as well. I don’t know if it is true that using one line style can possibly increase performance by the browser since machine scan less lines from the document. Correct me if I am wrong.

    • Just as an educated guess, I’d say it’s better in one line because the computer doesn’t have to parse out all the extra blank space created by putting in a hard return. It’s actually quicker to process the information with fewer irrelevant “items” in the stylesheet or code and blank spaces are counted in that information. Also it can shave off a few kb.

      It’s almost an equivalent of minifying your code, like in the .min version of jQuery where there’s almost no line breaks, it’s just quicker for the computer to get straight to the business parts.

This comment thread is closed. If you have important information to share, you can always contact me.

*May or may not contain any actual "CSS" or "Tricks".