We write to teach. We write because sometimes we have something we want to tell people about. Sometimes it's because we are excited about a topic, and sometimes we write because we think people need to know about something.\n
So the first question I get from people when they find out i write books is "Do people \n
They sure can. But they have to look through the blogs, they have to vet the writer and the writer's experience. If you've searched Google for the answers to problems, sometimes you have to do a lot of sifting.\n
You come to the table with answers backed by experience. Out of the 20 ways to solve that JS problem, you know the one that works in a particular given situation. You've been there. \n
You&#x2019;ve got something you want to talk about, so now let&#x2019;s see if there&#x2019;s interest.\n
When you're writing, you want to share what you know, but you have to be sure you know who you're talking to. \n\nAre they experts? Are they beginners? \n
You want to decide early on who your target audience is. But also think about who is out of scope. If you're teaching beginner topics, you may not go very deep into anything.&#xA0;\n&#xA0;\nIf you're teaching an expert topic, don't be afraid to skip some of the beginner stuff. \n
This is our reader profile It's a persona. You may develop more than one of these, but you want to think of this person as the person you're working with as you write your book.\n
Understand their problems, their mindset, and their goals.You want to be their guide. \n
There&#x2019;s more to skill levels than just being better, smarter, or faster.\n\nExpert staff members working in the trenches aren&#x2019;t alwaysrecognized as experts or paid accordingly\n&#xA0;\nNot everyone regarded as an expert actually has the abilities we think they do.\n&#xA0;\n&#xA0;\n
Novices are very concerned about their ability to succeed; with littleexperience to guide them,\n
They don't really want theory, they just want to get stuff done. They know the basics. People who run to the API first are typical Advanced Beginners.\n
They can also seek out the advice of experts and synthesize it.\n
When you call tech support about your computer, you get irritated because they give you the runaround.\n
Experts are not perfect, and experts may disagree with each other.\n
Experts may disagree with eachother an the appropriate approaches.\n
In your field, how many of you are novices?\n\nHow many are advanced beginners?\n\nHow many are competent?\n\nHow many are proficient?\n\nNow how many experts do we have?\n
They're still close to the novice, they are still learning themselves, and they've not gotten too far into something to forget what it's like. \n
Because they move on to something else. It takes a very long time to become great at something, and we don't really have a field that lets us do that.\n
Start with a novice, and make them an advanced beginner.&#xA0;\n\nStart with an advanced beginner and make them competent.\n
What is your main topic? What problem are you trying to solve? What are you trying to teach?\n
Think about how this thesis will tie into your reader profile. What goals are you setting for them?\n
The more detail you can add to your outline, the better off you'll be as you go into each chapter.\n
It always comes back to this.\n
Assuming you can get these questions answered, and you&#x2019;re optimistic enough to think you can move on, then....\n
So now that you have an outline, a thesis, and a reader profile, start writing your first chapter\n
Saying &#x201C;The HTML5 Boilerplate, written by Paul Irish of Google, is the best option.&#x201D; Explain why you use it.\n
Write every day. \n
750words is a great way to track your writing. The idea is to write 750 words a day. There&#x2019;s a scorecard. You get 1 point for writing something, 2 points for 750 words, and 3 points or more for writing even more. \n
We often rely on humor to make tech books more interesting, but if you do it too much you&#x2019;re just going to come off annoying and grating. A good editor or technical reviewers will help that process greatly. \n\n
We have a tendancy to write very academically. We tend to use bigger words than we need to because we see it all the time in other writing.\n\n
We don&#x2019;t need to focus on things that the reader doesn&#x2019;t care about.\n
Having your book published under the banner of a publisher that's respected in your firled can carry a lot of weight.\n
They know about other books coming along, they have access to technical reviewers that you might not have. They can turn out great looking copies of your book for the iPad and the Kindle.\n
Some publishers offer an advance. That means they pay you up front for the work, but y ou don't receive any royalties until you accrue the amount of the advance.\n
This comes out of future royalty payments.\n
So, to many of us, with the technology available, why not self-publish?\n
How many of you do your own taxes, or accounting work, or your own legal forms?\n\nWe pay experts to do this.\n
Nothing helped me more as a writer than having a couple of excellent developmental edtiros after having a couple of very mediocre ones. \n
If you are going to self-publish, hire a developmental editor either on a royalty basis or a flat fee. Don't go it alone.\n
You'll want someone with a keen eye for grammar and spelling, especially if you're not that great at it.\n
You also need a writing tool.\n\nPen and paper is good, and it's important to use whatever works best for you in order to get the words out of your head and in some organzed format.\n
Microsoft Word may be an easy place for some people to start writing, but I promise you that path leads nowhere good.\n
Markdown was created by John Gruber and Aaron Swartz and it&#x2019;s a simple way to write up content. You don&#x2019;t use tags, you just use some conventions.\n\n
We use equals signs underneath the main header to convert that to a header. We indent our code four spaces. We can italicize words by putting asterisks around them.\n
You can&#x2019;t express the meaning of things with Markdown. It&#x2019;s great for the attention deficit, and while it may be a nice way to throw some slides together, when you&#x2019;re writing a book you need something more.\n
Docbook. It&#x2019;s an XML markup language for writing books.\n\n
There&#x2019;s a hatred for XML because iwe&#x2019;ve seen it used for configuration files in big programming frameworks. But XML is a markup language and is really quite nice to work with when writing books.\n
Don&#x2019;t write in the dark. Get feedback, and get it from lots of people. Get it from strangers, experts, newbies, etc.\n
Get people to promote your book for you. Give copies away to people early on. Have them review it.\n
Find someone you can work with.\n
The reader needs to feel as it&#x2019;s one author writing the book. And you need to be able to reconcile your differences of opinions. You also need to be able to pick up the slack. Writing is hard stuff. Sometimes you can&#x2019;t do it. So your buddy needs to take that on with you.\n
Planning, writing, editing, tech reviewing, promotion, all of that stuff still applies to written communication.\n
Turning Passion Into Words
Turning Passion Into Words Tips, Tools, Techniques for Aspiring Authorstwitter: bphoganemail: brianhogan at napcs.com
http://www.flickr.com/photos/jjpacres/3293117576/why do we write?
http://www.flickr.com/photos/gemmacowan/303427032/But do people even read books anymore?
Yes. Very yes. http://www.flickr.com/photos/30743345@N04/4694171907
Define your target audience and decide who is outside
Create a reader profileTammy is a backend software developer She worksprimarily with Java. Shes great with VIm, knows how toconfigure Tomcat with XML, and understands how tough itcan be to get requirements out of users, but when itcomes to picking colors, fonts, or layouts, she needs help.She wants to be able to understand design concepts sothat her conversations with the UI team will go moresmoothly.
Most people stop progressing at Advanced Beginner.
Learn about this modeland use it to move your reader from one stage to the next.
Define your thesis!What are you talkin about??
HTML5 and CSS3 are the future of webdevelopment, but you don’t have towait to start using them. Even thoughthe specification is still indevelopment, many modern browsersand mobile devices already supportHTML5 and CSS3. This book gets youup to speed on the new HTML5elements and CSS3 features you canuse right now, and backwardscompatible solutions ensure that youdon’t leave users of older browsersbehind.
Outline your writing 1. HTML5 Forms 1.New form fields 1.Email, url, tel, number, range, date, color 2.discuss fallbacks 1.implement fallback with jquery-ui for calendars 2.discuss modernizr 3.Placeholder and Autofocus 1.Placeholder 1.Placeholder fallback with custom plugin
What do you want the reader to learn? Set goals at the start and see if you meet them at the end.
Research your market• What books out there are similar to yours?• Why would yours be different?• What is your audience size?• How many of them would buy a book on the topic?• What other books would have similar sales numbers to yours?
Your first chapterand don’t start with “Introduction!”
Write about what you are excited about first to gain momentum.
Writing about CodeThe best books about code talk more aboutthe why than the how.Don’t just explain the code. Explain whythe code you’re demonstrating is the bestsolution.
AVOID APPEAL TO AUTHORITYBe the expert Don’t use quotes from well-known people to bolster your argument.Use your experience!
Beware of emulationDon’t write like you think you should write or how you see others write.
AcademicBehavior driven development (or BDD) is an agile softwaredevelopment technique that encourages collaboration betweendevelopers, QA and non-technical or business participants in asoftware project. It was originally named in 2003 by Dan Northas a response to Test Driven Development, including AcceptanceTest or Customer Test Driven Development practices as found inExtreme Programming. It has evolved over the last few years.
Less AcademicBehavior driven development is a software developmentmethodology created by Dan North in 2003 as a responseto traditional Test Driven Development. It includeselements of Extreme Programming, such as acceptancetesting, and it encourages collaboration between technicaland non-technical members of a software developmentteam.
Say more with less• “Utilize” should be “Use”• “At this point in time” should be “Now”• “What x does is...” - just tell us already!• “really”, “very”, “quite”, “severely” don’t emphasize things as much as you think they do. Look for them, remove them, and see if you like how it looks.
Compare:There are twenty-ﬁve students who have already expressed a desire to attendthe program next summer. It is they and their parents who stand to gain themost by the government grant.Twenty-ﬁve students have already expressed a desire to attend theprogram next summer. They and their parents stand to gain the mostby the government grant.
So you have an idea,a thesis, an outline, some content that we’ve written and self- edited... let’s get published.
Can you1. write a concise book that meets the needs of your reader, reasonably free of errors?2. get an unbiased opinion of your work?3. deliver your book in print form to those that want it?4. deliver your book in PDF, ePub, or Kindle format in a way that actually looks good across multiple platforms and devices?5. be willing to promote the hell out of your book through web sites, user groups, communities, trade shows, etc?
Finding a publisher• Start with a publisher you respect.• Each publisher has a different process, but most publishers have acquisitions editors that work to find authors for topics. – http://pragprog.com/write-for-us/ –
A good DE can• Be a sounding board for your ideas and help you find your target audience• Give you feedback as an outsider on your content• Help you keep your tone consistent• Help you stay on track
Extending Ruby============Instead of using monkeypatching, we caninclude our codeas a *module*. module NinjaBehavior def attack puts "Youve been silently killed" end endWe can then bring this behavior into ourclasess. Thistechnique is often called a *mixin*.
You can convert Markdown to HTML and PDF with relative ease.
Docbook features• Descriptive markup• Automatic chapter and section numbering• Automatic cross-referencing• Table of Contents generation• Support for indexing• Extendable• Complete separation between content and presentation• Export to HTML, PDF, ePub, etc
Docbook example<chapter xmlns="http://docbook.org/ns/docbook" xml:id="models.association.ext"><title>Using Association Extensions to group records</title> <para> Association extensions let us apply methods to our ActiveRecord associations so we can quickly get access to your collected data. </para> <para> Our registration system needs a report of all currently enrolled students in a given workshop. We can do that fairly quickly by defining our own <methodname>currently_enrolled</methodname> method on the <classname>Workshop</classname> class like this:. </para> <programlisting language=”ruby”> <![CDATA[ class Workshop < ActiveRecord::Base has_many :enrollments has_many :students, :through => :enrollments def currently_enrolled enrollments.find_all_by_enrolled(true) end end ]]> </programlisting>
Structural markup• chapter – sect1 • sect2 – sect3 – para – orderedlist • listitem – para – unorderedlist • listitem – para