Joeflash’s Enigmacopaedia

I Do Like Writing Books, Sam I Am

Posted in Geekness, Tutorials, Business, Books, Training, Community MX, Inspirations, Personal, Presentations, Publishing by Joeflash on the January 5th, 2008

I do like writing books, Sam I Am… I would write them on a train, or in a plane, in a tree, they are so good, so good, you see!


I am writing this partly in response to Jesse Warden’s post “I Will Not Write a Book“, partly in response to all those enquiries about helping out with the upcoming Professional Flex 3 book, partly to share my experience for all those writers-to-be.

There are several reasons not to write a book, as Jesse mentions:

  • the money generally sucks
  • it’s a huge effort
  • the return is not tangible, or obvious
  • I could be playing XBox

For me, though, there are several more reasons to actually write a book or pen a tech article. The most obvious one is that I’ve always loved writing, and have kept a journal with miscellaneous thoughts and ideas since I was 14.

I also love to teach, even though I don’t do that much of it these days. I caught the teaching bug by giving private Flash lessons back in 2002, and achieved one of my dreams when I worked at Humber College in 2005-2006 as a Flash instructor, and later as an Adobe Trainer with New Toronto Group. I love watching students’ eyes light up as they figured out a key concept in class, almost as if I could see the light bulb going off in their heads. Sharing in that Eureka! moment is what makes teaching very special for me. Giving a lecture or seminar, or penning an article or writing for a book holds a similar fascination.

I also remember being inspired by the Visual Quickstart Guides and Friends of Ed books back in the Flash 4 and 5 days, by so many authors. I still get inspired by a good “Flash” book. My latest favourites are Head First Design Patterns and ActionScript 3 Design Patterns.

Now that I’ve learned a thing or two worthy of sharing with others on their learning path, to have the opportunity and the potential to inspire others, knowing that somewhere I will have contributed to more Eureka! moments as I have been inspired and coached, is a real honour. That is mostly why I write.

In describing motivations, I won’t use the word “selfless”, because I dislike thinking in those terms, for me it reinforces the notion of martyrdom — if writing for you seems selfless, as in thankless, as in feeling like a martyr to the Great Hordes of N00bs, you’re missing the point IMO.

I would also not describe the motivation as one of ego. Sure, it’s nice, seeing one’s name in print or a book on the shelf (which I have yet to experience, but I’m sure it feels good ;)), one’s name on a course completion certificate as the instructor, or an article in a reputable journal. It’s a validation, a reward for all the hard work of sharing the work and building community and paying it forward that to me says, “see, I’ve done something important, I’ve built something.” But if you let this feeling of validation, of recognition become one of the dominating raisons-d’être of your teaching or writing, the result becomes some twisted, misshapen thing funnelled through the lens of your own selfish need for gratification. I’ve seen a few developers who take the stage go all starry eyed after a few lectures, and have even fallen prey to that beast myself on occasion. Writing is also similar in this respect.

Make no mistake, more often than not the money totally sucks. As Jesse pointed out, I also could make ten times more money in consulting. It’s a given that people don’t write books for the money, it’s more of a fringe benefit than anything. That’s not to say that tech writing is completely without tangible payback. Sometimes, the money is actually pretty good, even if it isn’t a primary motivator. I don’t think I could stay committed to the hours it takes to consistently produce well-written tutorials for Community MX (with a little help from the editors ;) ) without some reasonable renumeration. At first it was hard work, but after two years of writing two or three articles a month, you develop shortcuts and tricks for quality writing that make the mechanics of it less of a chore, such that now writing for that publication is actually a pretty decent part time job for me.

And the other month my agent brought me a book for which the advance was equivalent to a few months’ salary, which granted is not the norm, but it made the proposition an interesting one to be sure — I could do it part time for four months and maybe have to either lessen my consulting workload or work 80 hours a week, or I could just take a few months off and do nothing but write the book. As it turns out the commitment was too great, so I turned it down in favour of the Flex 3 book I am currently writing. So it can pay, not nearly as well as consulting, but it can have a financial benefit to offset some of the long hours.

I won’t blow sunshine up you arse and tell you that I’m not doing it for a little self-promotion as a freelancer. I think every author is in it for that angle to some degree, whether it’s for one’s own consulting business or the company you work for, even though it’s not something we like to advertise, lest people get the wrong impression. There is no question as to the networking angle: I have gotten consulting gigs based my writing exposure, as well as the many other ways of meeting people such as workshops, lectures, conferences, training sessions and discussion forums. So there is definitely a benefit to improving one’s visibility in the community.

There is also the spirit of sharing, which I equate less to “a selfless desire to build community,” which is more a result than a motivation, as it is a desire to share some awesome thing and totally geek out on the coolness of some shiny new toy. Which to my mind is very similar to the drive programmers have to develop open source code and blog about their discoveries. It’s announcing to the world, “hey check this out! Isn’t this like, SO COOL DUUUUDE! Geekout, man!!” (okay, I would never actually say that, it sounds dumb, but you get the idea.)

And then there is the self-exploration angle. Someone once said, “I write to know what I think.” * For me, there is a very direct and personal gain I get from writing. Because this particular book I’m writing now is on the cutting edge of the technology, it feels a little like writing a PHD thesis (not that I’ve ever written one, mind you), where you log the results of experiments investigating new territory, with empirically verified results for other scientists to replicate. And in every tutorial I write, no matter how basic, I always discover something new, reinforce something I thought I knew, and boy, do I ever know it well now. So writing actually makes me a much better programmer. In fact, I don’t know how I could remember half the stuff I know without having written about it.

* I’m killing myself trying to find the author to that original quote. If anyone knows who said it please let me know. Some days the internet feels like a billion terrabytes of utter shiite when you’re looking for something that should so obviously be there.

I am excited to be writing my first book on Flex 3 with a group of superbly talented individuals, none of whom need another book under their belt, believe me. The fringe benefit of writing this book with such brilliant people* is that I would have never met them otherwise. And writing these past two years alongside the likes of Tom Green, Stephanie Sullivan, David Stiller and many many more has been a huge huge honour, and to be considered a close acquaintance and even friend by some to be an even bigger honour still. So another benefit to writing is meeting such cool people.

* Sorry I cannot announce who else is on the team at this point because the co-author lineup has yet to be finalized)

So to summarize, to me the benefits of tech writing in general are:

  • I get to inspire others and share in their victories
  • I get a warm and fuzzy feeling of accomplishment
  • I get to geek out on sharing cool shit I’ve discovered, or cool shit others have discovered
  • sometimes it actually pays
  • I am a much better programmer as a result
  • I may even get a contract or two from the exposure
  • I get to meet cool people in the industry I’ve admired for years

And if everything I’ve been coached on by my estimable colleagues and my agent is of any indication, writing books is indeed hard work, make no mistake about it, so I can see how one could get burned out on them if you don’t balance your life. Granted, most of my experience is in article writing and teaching for the moment, so my enthusiasm for book writing may be premature, but somehow, with the proper perspective and balance, I think these words will still ring true for me in a few years to come.

When evaluating enquiries in response to my call for writers, if the first question in the email was “what’s the compensation,” forget it, out to lunch, not even worth a reply. Or if the email did not contain a link to any work or writing of any kind, ditto. You’ve got to give something to get something. So I apologize to those whom did not get a reply to their queries; many of you did.

You’ve got to be passionate about sharing knowledge to do technical writing, and it can’t come from a place of ego or martyrdom, and you’ll need to balance your life carefully to go the long haul. Humility and generosity are huge must-haves if you’re going to go into this. One starts in the writing biz much like in programming: at first you get volunteer, pro-bono work, like tech editing or making a contribution, eventually making a name for yourself in training, teaching or publication writing, and eventually graduate to being asked to co-author or write a book on your own. And it need not be a thankless job without tangible recompense: if the money is not good enough, hold out for another book, another writing avenue, or go into corporate training.

It’s a long, arduous road, but if you’re passionate about it, it’s worth it in the long run, so I’ve been told, and based on what I’ve experienced thus far on the path, I am certain that is completely true.

Learning AS 3.0 is Easy (or at least no harder than AS 2.0)

Posted in Flash, ActionScript 2.0, ActionScript 3.0, Training by Joeflash on the January 3rd, 2008

There’s a great article on the O’Reilly DigitalMedia Blog about whether it is harder to learn AS2 or AS3, by Colin Moock.

As I commented on the Flash In TO forums, great article. Should go a long way to dispelling a lot of myths and apprehensions that beginners have about delving into AS3. Every college multimedia teacher and Flash instructor should give this to their students.

Although I do have to disagree with Moock on one fundamental point: you do need to teach basic OOP principles to beginners for them to get AS3. In AS2, you could get away with not learning about classes and objects until you used some of the Flash 7 API stuff like MovieClipLoader, and it was essential to do anything with Flash 8 API classes such as BitmapData or Tween.

But teaching OOP to beginners is not the daunting task most instructors or writers think it is. In fact, if you teach the basics of OOP — what is an object, what is a class, class inheritance — without getting into building custom classes, you’re doing beginners a huge favour, and will vastly increase their comprehension of the material. I usually find a Taxonomy/DNA metaphor works best when explaining OOP concepts.

I’ve taught an AS3 course the old way, without OOP until the end, and with a discussion of OOP right at the start, and I’ve found that students absorb the material much easier when exposed to the concept of objects and classes and inheritance right from the start. If you don’t teach them OOP at the very start, you’ll find there’s a barrier of comprehension when they try and increase their knowledege to an intermediate level (i.e. coding with advanced API functionality, but still on the timeline). And you can talk about OOP and still teach timeline-based coding.

The one argument I’ve heard arguing for AS2 being easier than AS3 are events, or more particularly the new event model. As an advanced ActionScripter, it’s heaven. But I have to agree, for the novice ActionScripter, events in AS3 do seem more complicated. Although, like I mentioned, I found that once students had a firm understanding of objects, classes and functions, the leap was not that large. What is crucial in the understanding of the Flash designer is whether they get function scope. Once they understand function scope, the benefits of the AS3 event listeners over AS2 event handlers is evident. The disadvantage of AS event handlers does not become obvious until the student moves into intermediate projects, and they wonder why their project isn’t working, because AS2 doesn’t use closed methods. It’s far harder to explain mx.utils.Delegate than to show them the AS3 event model IMO. So to the novice who is used to learning AS exclusively by doing, yes learning AS 3 may seem harder on the basis of the AS3 event model. But once they actually understand the fundamentals, the benefits of AS3 become obvious and this perceived barrier to learning is not so daunting.

Slightly OT, there are a few things that piss me off about AS3 I wish they’d continued from AS2, such as private constructors (though I understand the reasoning behind this move), and the lack of equivalent for the AS2 onReleaseOutside event. But the advances in so many other areas in AS3 far far outweigh these annoyances.

As Colin mentions, another great resource to convince would-be AS3-ers is Grant’s 50 Reasons ActionScript 3.0 Kicks Ass. :)

On the whole an excellent article.