I'm Trevor. Mostly I lurk, but I've got this idea for a book

I’ve been a web developer in an IT department for a few years, a hobbyist and freelancer for a couple more. I’ve recently had an idea for an book aimed at people who

  1. Aren’t technical (yet)
  2. Have an idea for a product, and
  3. Would rather learn the tech side of building a web-based product than hire the expertise.

I’ve got a couple Facebook acquaintances who say they’d be interested in such a thing, and a gut feeling that says there are more. So I wrote up an outline of the topics I thought something like that would cover:

  1. HTML
  2. Cascading Style Sheets (CSS)
  3. JavaScript
  4. Install, configure Apache, start serving HTML over HTTP on local box
  5. HTTP basics
  6. Basics of Programming via Python
  7. Basic Python CGI app to demonstrate server-side logic
  8. Explain why databases are useful. SQL basics
  9. Add SQL to CGI app
  10. Explain how frameworks do bunches of stuff for you. List python frameworks, introduce Django
  11. Build Django app (probably multiple chapters, including setting up payments)
  12. Deploy Django app on Apache on local box
  13. (Assuming you’re on Windows). Explain “why Linux”, Set up virtualbox, install Linux
  14. Linux basics
  15. Deploy to remote Linux server: SSH, iptables, methods for automating deployments
  16. Hosting / DNS Resolution / IP addresses

Obviously such a broad book wouldn’t also be able to go very deep into every included topic, the idea being you could give people a firm handle on the basics and point them at more comprehensive topic-specific references online (MDN for example). Would this kind of guide be useful to anyone here?

PS - If anyone’s interested, I’ve started drafting it already. It’s obviously nowhere close to being finished, and the headings there mostly are stubs. I plan on keeping an HTML version online for free and offering an ebook for sale, likely with other higher-priced packages on down the road.

1 Like

I know nothing about publishing e-books, but I bought a few in the recent year, and none of them had the full content online. Many had teaser chapters though. I believe there must be a reason for it.

If I knew nothing about programming I’d like to learn as many shortcuts as possible. For instance, the whole install Apache (why not nginx?), Python etc thing I’d happily swapped for “get a $5 VM at DigitalOcean with all required stuff pre-installed”.

In fact … you may build the full DigitalOcean and/or Amazon image and include clones as a part of a premium bundle. Saves hours and hours of work, after all!

1 Like

In fact … you may build the full DigitalOcean and/or Amazon image and include clones as a part of a premium bundle. Saves hours and hours of work, after all!

Something similar to this occurred to me - building some kind of console that would walk them through the installation step-by-step. I keep waffling between providing pre-built components, and teaching people enough to be dangerous on their own.

For a non-technical person, I wonder if even an Amazon image is too big a barrier to getting started?

I’m reasonably technical, but I think I’d want a book that was perhaps a little bit more prescriptive and built in a lot of best practices, like version control, automated testing, infrastructure as code, automated deployment, etc etc BUT ALSO let me get started in 20 mins.

To do that, you’d really need to say ‘hey, go and use this editor which has git/github support built in. then, grab a github account. grab a heroku account. use x tool to generate a project that includes tests. build. commit. push to github (or similar). push to heroku (or similar). wow, your app is online!’

(Side question: is there an online editor that integrates with git/github? Is there an online service that would let you deploy to heroku w/o using a command line?)

1 Like

I was just thinking about this strategy today, as I recently read Michael Hartl’s Ruby on Rails Tutorial (bought the book on Amazon due to high reviews). It turns out that every single sentence of that book is available for free online (http://ruby.railstutorial.org/ruby-on-rails-tutorial-book). At the very least, this is certainly a good way to gain exposure and make a name for yourself as long as the book is well-written and useful. I for one would rather buy a print book (or PDF that I can take with me on a reader) than navigate through a series of web pages…so I imagine the strategy is a good one (even better if you can grab their email address).

I’m wondering: Would something like this need to include instructions for both Windows and OS X? In my HTML introduction chapter, I wanted to include an exercise for the reader that required them to create a new HTML file from scratch and I started typing up the instructions for that in Windows and realized that if I’m really aiming at non-technical beginners, I might want to NOT overlook the Mac marketplace. I guess the real questions is, “what sort of computer literacy should I assume?”

Thoughts?

I think the Mac should definitely be addressed, mostly because there are a large number of designers who are on Macs who don’t know programming that want to (or need to) that would make an ideal audience for your book, let students, many of whom are also Mac owners.

Depending on how much of your content requires a separate explanation for Mac and PC, you may want to use a “For the Mac” callout within your content that highlights what a Mac user would do differently.

I’m attending this next week and it sounds like it may help you, too: http://www.selfpublishinghangout.com/. It’s on Monday evening at 5P (PST) and is hosted by a handful of guys who have done the self-publish thing before.

1 Like