Archive for April, 2007

Steve McConnell Interview

A good interview with Steve McConnell (of Code Complete and others), who seems very ready to think about all the questions asked and not ready to jump on any easy targets (the “certifications are useless” bandwagon is one of them).

The Art Of Programming

From Coding Horror, on the subject of “how to prepare for a career in software development”:

Fortunately, this is a battle you can fight on multiple fronts:

  • If you’re a student, seek out internships like your life depends on it. Some of the best programmers I’ve ever met have been college interns. Intern somewhere that you can absorb and learn as much as possible. You won’t make much money, but the experience will be priceless.
  • Participate in local user groups. User groups are an unbeatable resource for people just starting out in their careers; they’re an excellent source of advice and mentorship.
  • Contribute to an open-source project. There are thousands, so pick whatever strikes your fancy. But pick one and really dig in, become an active contributor. Absolutely nothing is more practical than working collaboratively with software developers all over the globe, from all walks of life.
  • Publish articles. The cleverest code in the world won’t help you if you can’t clearly communicate how that code works, or what it’s for. Try your hand at writing. CodeProject is an excellent sandbox to practice in. Publish an article and the large, active CodeProject community will let you know how you’re doing with ratings and comments.
  • Start a blog. Pick a writing schedule and stick with it; I recommend once a week at minimum. Select a general theme for your blog and write on topics related (at least tangentially) to that theme. And don’t be an echo chamber.

You don’t have to do all these things, but if you’re serious about your career, pick at least two and follow through. For more detailed advice, I highly recommend Rob’s advice on how to become a programmer.

These are all good tips. Off the top of my head, the best tip I’ve got is to treat everything you learn as something you’ll need to teach someone else. Knowing that you may be called upon to teach something is a powerful motivator for getting your mind to think critically. This leads to a second point: if you want to get started learning about something, volunteer to present a talk on it (at work, at the user group etc). This tends to have the same effect of really forcing you to understand the topic.

Finally! Sense and tables

I don’t do much work with CSS. Every time I do I have to rack my brain to remember what I learnt last time. But I have picked up enough to have heard “tables are bad” more than is healthy. This has always frustrated me, because CSS layout may be elegant, but it is hard.

Finally, today when listening to an old interview with Eric Meyer on Think Vitamin, I heard someone speak some sense.  To paraphrase Mr Meyer, it was along the lines of: “Sometimes you should be practical, save some time and use a table.  Sure, style everything inside the table appropriately, but its not worth spending a whole day with a CSS layout when you could have done the basic layout in one minute with a table.”
Bravo, I’m all for the pragmatic approach.