This entry is part 1 of 6 in the series What It Means To Be A Writer

A little while back, I had a series of emails with a reader named Scott, who was considering an opportunity to write his first book. Scott did want to try writing a book, but didn’t want to jump into the project blindly, and so asked me what it meant, in day-to-day terms, to write a book. We had a few long emails back and forth, that I thought I’d edit/expand upon (my parts) and share here for others to benefit. In my responses, I did try to stress the negative aspects of being a writer, so as to present some of the worst case scenarios. What originally started as a couple of long emails became a long post, and now a series of posts. If you’d rather not read it all, the short advice is this:

If you want to write a book because it’s something you always wanted to do, give it a go, but if you want to write a book to get rich, become famous, or the like, you’re barking up the wrong tree!

Note that my perspective and advice specifically focuses on writing technical books and articles, which is what I do and know best, although much of the advice applies to other types of writing, too. Continue Reading…

In this edition…

Continue Reading…

Learn to Write

May 18, 2012

There was a recent posting by Jeff Atwood titled “Please Don’t Learn to Code“, which received a lot of recent discussion. It’s a bit silly, to me, because the impetus for that post—a tweet by NY Mayor Bloomberg suggesting he was going to learn to code in 2012—was almost certainly sent out as a promotional message for a NYC-based company (CodeAcademy), not as a sincere expression of the mayor’s side interests. In any case, Atwood’s piece came across to some as unnecessarily harsh, and while it’s hard to argue that everyone should learn to code, it’s also elitist to suggest that people should’t learn X because they’re not going to be able to do it in a way you think is right.

The reason I mention Atwood’s piece is because Rands in Repose had a very nice reaction post titled “Please Learn to Write“. Maybe it’s because I am a writer, but the suggestion—Hey, if you want to improve yourself, communicate better.—rings true to me.

Using the Model-View-Controller (MVC) design pattern, the look of a Yii-based site is naturally controlled by the View files. These files are a combination of HTML and PHP that help to create the desired output. Specific pages in a site will use specific View files. In fact, the View files are designed to be broken down quite atomically, such that, for example, the form used to both create and edit an employee record is its own file, and that file can be included by both create.php and update.php. As with most things in OOP, implementing atomic, decoupled functionality goes a long way towards improving reusability. But the individual View files are only part of the equation for rendering a Web page. Individual view files get rendered within a layout file. And although I’ve mentioned layouts a time or two in my writings on Yii, it’s a subject that deserves its own post. Continue Reading…

SmashingMagazine recently published an interview with Douglas Crockford. Crockford, in case you’re not familiar, is one of the key proponents of JavaScript. One of JavaScript’s “founding fathers”, if you will. His Master Class video series on JavaScript and the history of programming is really quite illuminating.

The interview is part of a new SmashingMagazine series called “How I Work”. As they describe it:

These interviews revolve around how thinkers and creators in the Web world design, code, and create. The goal is not to get into the specific nuances of their craft (as that information already exists online), but rather step back and learn a bit about their habits, philosophies, and workflow for producing great work.

For that reason, the interview is useful whether or not you do any JavaScript programming, as Crockford has great insights into programming in general. Just two things that caught my attention…

WHAT WERE THE TRAITS OF THE WEAK PROGRAMMERS YOU’VE SEEN OVER YOUR CAREER?
That’s an easy one—lack of curiosity. They were so satisfied with the work that they were doing was good enough (without an understanding of what ‘good’ was) that they didn’t push themselves.

and …

HOW MUCH OF A LANGUAGE DO YOU NEED TO KNOW?
Virtually every programming language is too big. Language standards have difficulty removing unnecessary features but as users we can choose not to use it.
I would say you can do 100% with knowing 50% of the language.

As for the first, the greatest thing about working for myself is the ability to learn whatever I want. I’m not pigeonholed into one subject or career. I can see what interests me and expand my knowledge as I see fit. (On the other hand, I’d certainly make more money if I specialized but there’s more to life than making money, they say.)

As for the second, that’s an interesting suggestion, and one I’ve not heard before. To be fair, when I write a book on a language, I have to make decisions about what to discuss and what not to (e.g., never cover goto!), but I wouldn’t have put that number at 50% or in that area. Still, it’s great that an expert on a language admits that much of it isn’t necessary, at least not most of the time.

After the interview, which isn’t too long, there are two video clips worth checking out. Both are around an hour long, but will give you a sense of what Crockford does in his Master Class videos. One of those videos, and many more, can be found in Yahoo!’s excellent YUI Theater.