What can you, as an individual, do to maximize your chances and minimize your pain during tough times? Suggestions: lose your religion, look over the fence, and learn something. [This is part of the Tough Times series.]

No Religion · Here’s what I hear online and in conference hallways: “Perl is write-only.” “Java is stupidly verbose.” “Ruby is appallingly slow.” “PHP sucks.” And so on and so on. Suppose all those statements are true? Right about now it doesn’t matter, because none of them are going away. When times are tough and work is scarce, technology religions become a luxury we really can’t afford. Maybe you’re lucky, maybe you can afford to blow off a great big chunk of the business you’re in and you’ll still get through just fine. Lots of people can’t.

As a side effect, I’d really like to hear less of the phrase “I’m an ‘X’ developer”, for pretty well any value of ‘X’. People who have problems and want to put the Net to work to solve them mostly don’t give a flying fuck about X or Y or Z. Or more likely, they already have all of X and Y and Z in production, and if you want to help them out, you’re just going to have to deal with that.

Designer/Developer · I’m also becoming increasingly short-tempered when I hear variations of these two themes: “I’m a designer, I don’t really code” and its mirror image “I’m a software guy, I just do data; the design weenies will fix it up with CSS and pictures.”

To the designers of the world: Have you had a look in the last few years and seen how easy Web app coding is getting with things like Rails and PHP? If you’re smart enough to organize color and language and white space on a screen and produce something that is eye-pleasing and functional, you’re probably smart enough to code up big pieces of any good ideas you have. Coding won’t make your hands dirty.

Developers of the world: real deep design skill is rare, but there are a few principles of design and color that, if you follow them, will keep you mostly out of trouble and produce something that may not seduce the viewer’s eye but on the other hand won’t revolt it. Bookstore shelves are full of books on the basics of online design, have a look. Here’s why: when you get a great idea and code it up, if it ends up looking like dogshit, when you show it to someone to see if they like it, they’ll look at your idea and see dogshit. Because almost nobody can see through gross visuals to the underlying truth and beauty, if there is any.

Learn Something · My advice here is to open your mind and lose your attitude about the other pieces that make up our profession. I’ll go further than that: right now is a good time to take a concrete step and do some learning. Since most readers here cluster around the Web, here’s a list of ten examples of Useful Web Knowledge, selected more or less at random as they came into my head and presented in alphabetical order: Alpha channel, AtomPub, CSS, Django, Java App Servers, JQuery, Leading, PHP, and Rails.

Any of these that you don’t have at least a basic grasp of, well, that’s a shortcoming. Start learning one that you don’t know. Do it now. I am.


Comment feed for ongoing:Comments feed

From: ATSkyWalker (Oct 24 2008, at 12:36)

Great Post and IMHO very true. The problem I usually face is the design part. I can do CSS and know Photoshop very well, but like a lot of other developers I know I'm very challenged when it comes to design. In my experience no amount of color theory or design for dummies works for me :-).

I know very well a good design when I see it, and the same with bad design; but I'm usually paralyzed when it comes to figuring out ways to make a bad design look better :-(

You mentioned that bookstores are filled with design books, I'd really appreciate if you can give a couple of examples out of personal experience.



From: J David Eisenberg (Oct 24 2008, at 13:34)

"You mentioned that bookstores are filled with design books, I'd really appreciate if you can give a couple of examples out of personal experience."

Although it's print-oriented, I found a lot of excellent guidelines in: The Non-Designer's Design & Type Books, by Robin Williams, ISBN-13: 978-0-321-53405-7

Not design per se, but wonderful and, I think, relevant: Understanding Comics, by Scott McCloud, ISBN-13: 978-0060976255


From: Ralph Churchill (Oct 24 2008, at 14:46)

As an engineer, I understand the mechanics behind good design and I feel like I can certainly "know it when I see it". However, the more subjective parts of interface layout, color choice and information presentation elude me.

Some specific examples of books about the "basics of online design" would be greatly appreciated.


From: Janne (Oct 24 2008, at 17:02)

Hm, not so good advice here.

First, saying you're a general developer, or saying that you can program in lots of languages, or that you can both design and program is a bad idea. Sounds good in principle, not so good in practice.

Thing is, when a company is looking for an "X developer", they want somebody doing X. If you say you're general, or do X and also Y, Z oh and some P and Q too they are going to (with reason) wonder just how deep your knowledge of X actually is. If another applicant comes by saying they're an X developer, guess who gets the job?

Second, you're shortchanging both programming and design as professions. Let loose a designer on your code base after a week reading "PHP in 24 hours" and you'll have an unmaintainable mess in no time. Let a developer design a user interface and you get - well, ok, about 90% of all current software out there. Which is the point. Most software is hideous, usability wise, and the main reason for it is developers who think usability design is easy.


From: Tony Fisk (Oct 24 2008, at 17:31)

I agree with most of this. Unfortunately, most employment agencies do not, and will not consider any application that doesn't fit in the pigeon hole of the moment. It is an anti-pattern I refer to as 'the Glass Wall'

I suppose the corollary is to bypass employment agencies.


From: Hanan Cohen (Oct 25 2008, at 11:20)

I am not a programmer nor a designer thus my total reliance on examples and templates.

I start a project using a site template that can be found all over. Usually I use Wordpress or Drupal templates.

For colour, I use palettes which I choose from. Lately, I have subscribed to a feed from COLOURlovers.


Just seeing colour combinations every day make me think and look at colours.


From: Michael (Oct 27 2008, at 05:26)

Should I really learn "Leading" ? ;)


From: len (Oct 27 2008, at 06:40)

Unfortunately, unless you have a contact inside, most good applicants are stopped by inadequate resumes at the HR desks where underpaid overpraised people without the ability to decipher your terse application are the gateway. Failure to include the right code words or including the wrong ones can easily halt your future in that stack.

If you do get past the HR filters and are scheduled for an interview, attitude counts for as much as skills. Who do I reject even with good resume cred? Do these sound familiar?

1. "I need to know if I can work with this organization and you. I want an organization that does things right!"

Could be a person with moxie, but is more likely someone who failed to get along with anyone for whatever reason.

2. "I don't do Windows."

Rejected without comment.

3. Weighs 300 pounds without the loafers.

Might get through with good attitude and chops but a health risk. Put on stack to be considered but all other things being equal, equal chops and attitude and less weight win.

4. Nervous and obviously covered up the smell of the cigarette they put out just before they got out of the car with the last cigarette. I don't mind that they smoke. I mind that they are hiding it. Health risk physically and mentally. Put beneath the fat guy's resume.

5. Overdressed and bored with the interview process. Looks at watch a lot and sighs deeply when asked about technical qualifications. Gives the Gwynneth Paltrow look.

Reject. Even with good chops, a team disrupter. Also likely to take vacation without regard to schedule.

6. "We wrote a Visual Studio project in eight days. I got an A. What language did you use? Umm... I got an A."

Reject without comment.

There are more. The point is simply when hiring, I need team members and team leaders but the operative term is 'team'. If they don't want to be part of one, they can't lead one and if they don't want to be led, they can't lead.

No amount of technical excellence makes up for bad attitude towards self and others. Technical problems are challenges. We delight in those. Mammal problems are painful even in good times.


From: Andrej (Oct 27 2008, at 10:18)

I understand the importance of diversifying one's skills, but I can't help but cringe when I read the recommendation for designers to learn how to slap together a web application.

There are enough catastrophic (yes, really) security problems in applications done by "professional" developers -- do we really need to be encouraging even more clueless people to deploy attack vectors (I mean, applications) on the Internet?


From: JulesLt (Oct 27 2008, at 14:07)

As someone who looks at resumes, I think a good secondary skills are interesting - the majority of our company development is in Java, but I'd definitely pay interest to someone who said they had Python, Ruby or Perl skills over a pure Java specialist, and particularly if it was outside of their day job - it shows you're keen and keeping tabs on the general industry, rather than expecting to be led by the nose / trained for everything you do.

Of course there is the recruitment filter, which is really annoying, because some of our strongest people would probably 'fail' the filter. It goes without saying that most people who have learnt another OO language can adapt to Java, but people who have only ever been educated on Java seem to find it harder to move.

On the subject of design :

Application design is not graphic design - it's closer to industrial design / engineering, or more technically 'ergonomics'. Unfortunately, a lot of companies make the error of thinking developer + graphic designer equals good site. It's amazing how many people think 'look and feel' means 'look'.

A lot of design is rules based - it's not for nothing people talk of the 'language of design' -developers are good at learning rules. Think how hard it was to learn the coding standards you now apply without second thought, or how much better your code is today than 3 years ago.

In fact, if you're a developer who understands design you probably stand a better chance of automating some of those rules in software than a designer trying to get their head around coding. You have the skills to programatically create all dialog boxes using the golden section. I'm not saying that's a good idea, just an example.

It strikes me that a lot of what people like about Rails, for instance, is that is has some nice visual defaults (using larger fonts, for instance, than a default Tapestry page).


From: MichalT (Oct 28 2008, at 04:31)

Saying that programming became easy because of Rails etc. is like saying graphic design became easy because of Photoshop.

Of course, materializing the design became _easier_ for designers, now that they have Photoshop, Illustrator etc., just as programming websites became less of a hassle for programmers now that we have great tools for it.

But easier isn't the same thing as easy.


From: len (Oct 28 2008, at 09:52)

The idea that the tools enable everyone to contribute is related to the idea that economies based on scarcity are no longer relevant. Two scarcities cannot be eliminated: talent and good ideas.

What tools enable is others to build their work on the talent and good ideas of others. Like view script, they can learn and improve their work and might improve the quality of the web art, but overall, it just raises the level of mediocrity.

As the film Amadeus points out with Salieri's last speech, one can be very commercially successful as the king of mediocrities. In the songwriting world, some use a metric like Google: a songwriter's success is rated by the number of other artists who record their song.


From: Jacek (Oct 28 2008, at 22:12)

"but overall, it just raises the level of mediocrity"

I consider this an unnecessarily negative remark. A higher standard of living can be phrased as just a raised level of mediocrity. Are you happy to live in a place with a raised level of mediocrity than other places? I sure am.


From: len (Oct 29 2008, at 07:45)

Not biting, Jacek. You are trying to frame a discussion of the quality of a product with a politic of returns for having it.

If you consider a BigMac a quality meal because of its ubiquity, then a raised level of mediocrity may satisfy you at least until your kids become obese and you are paying for the insulin.

Means matter.


author · Dad · software · colophon · rights
picture of the day
October 24, 2008
· Technology (77 fragments)
· · Web (385 more)
· Business (105 more)

By .

I am an employee
of Amazon.com, but
the opinions expressed here
are my own, and no other party
necessarily agrees with them.

A full disclosure of my
professional interests is
on the author page.