10. Create a reader profile
Tammy is a backend software developer She works
primarily with Java. She's great with VIm, knows how to
configure Tomcat with XML, and understands how tough it
can be to get requirements out of users, but when it
comes to picking colors, fonts, or layouts, she needs help.
She wants to be able to understand design concepts so
that her conversations with the UI team will go more
smoothly.
12. Dreyfus Model
(of skill acquisition)
"The Dreyfus model describes how
and why our abilities, attitudes,
capabilities, and perspectives
change according to skill level."
-Andy Hunt
26. HTML5 and CSS3 are the future of web
development, but you don’t have to
wait to start using them. Even though
the specification is still in
development, many modern browsers
and mobile devices already support
HTML5 and CSS3. This book gets you
up to speed on the new HTML5
elements and CSS3 features you can
use right now, and backwards
compatible solutions ensure that you
don’t leave users of older browsers
behind.
27. 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
28. What do you want the reader
to learn?
Set goals at the start and see if you
meet them at the end.
29. 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?
32. Writing about Code
The best books about code talk more about
the why than the how.
Don’t just explain the code. Explain why
the code you’re demonstrating is the best
solution.
33. AVOID APPEAL TO
AUTHORITY
Be the expert Don’t use quotes from well-
known people to bolster your argument.
Use your experience!
40. Academic
Behavior driven development (or BDD) is an agile software
development technique that encourages collaboration between
developers, QA and non-technical or business participants in a
software project. It was originally named in 2003 by Dan North[1]
as a response to Test Driven Development, including Acceptance
Test or Customer Test Driven Development practices as found in
Extreme Programming. It has evolved over the last few years[2].
41. Less Academic
Behavior driven development is a software development
methodology created by Dan North in 2003 as a response
to traditional Test Driven Development. It includes
elements of Extreme Programming, such as acceptance
testing, and it encourages collaboration between technical
and non-technical members of a software development
team.
42. 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.
43. Compare:
There are twenty-five students who have already expressed a desire to attend
the program next summer. It is they and their parents who stand to gain the
most by the government grant.
Twenty-five students have already expressed a desire to attend the
program next summer. They and their parents stand to gain the most
by the government grant.
44. So you have an idea,
a thesis, an outline, some content
that we’ve written and self-
edited...
let’s get published.
48. They have people to help you
• Developmental editors
• Copy editors
• Professional indexers
• Production managers
• Marketers
• Artists
• Professional Typesetters
• Foreign Rights brokers
55. Can you
1. 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?
57. 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/
–
59. 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
66. Extending Ruby
============
Instead of using monkeypatching, we can
include our code
as a *module*.
module NinjaBehavior
def attack
puts "You've been silently killed"
end
end
We can then bring this behavior into our
clasess. This
technique is often called a *mixin*.
67. You can convert Markdown to
HTML and PDF with relative
ease.
71. 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
72. 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>
73. Structural markup
• chapter
– sect1
• sect2
– sect3
– para
– orderedlist
• listitem
– para
– unorderedlist
• listitem
– para
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
\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
\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
\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
\n
\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
\n
\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
\n
We don&#x2019;t need to focus on things that the reader doesn&#x2019;t care about.\n
\n
\n
\n
\n
\n
Having your book published under the banner of a publisher that's respected in your firled can carry a lot of weight.\n
\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
\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
\n
This comes out of future royalty payments.\n
So, to many of us, with the technology available, why not self-publish?\n
\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
\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
\n
\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
\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
\n
\n
\n
\n
\n
\n
\n
\n
\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
\n
Get people to promote your book for you. Give copies away to people early on. Have them review it.\n
\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