Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
My self-published book on being a great developer (theseniorsoftwareengineer.com)
138 points by davetron5000 on July 16, 2013 | hide | past | favorite | 64 comments


First off, congrats! I can only imagine what a good feeling it is to publish a book (let alone two, as it appears you wrote a Ruby book as well.)

I'm going to offer some friendly criticism on marketing. (I can't really comment on the content of the book, given that I haven't read it.)

- Invest $50 and buy a nice Wordpress theme off of ThemeForest, because junior software engineers are picky folk. If it nets you two more sales, then it's already paid itself off.

- The table of contents tells me what I'm going to learn from this book, not why I want to learn them. Often, the answer to "why" is either "to make a lot more money" or "to build a lot of cool things I wouldn't otherwise." The three points you outline underneath the ToC hit those aspects much more strongly, so I'd move those above the fold.

- Throwing up an email list where you send me some snippets and then try to upsell me is advised. I haven't heard of you before, so I'd prefer some credentials before I commit to a purchase (remember, I'm a junior software engineer, so both time and money are scarce resources.) Testimonials would also be helpful here.

- There's nothing wrong with a second call to action at the bottom of the page.


I'm a designer who periodically works with ThemeForest themes for my clients. The problem with most of the themes is that they look good but you realize how badly they really work only when you attempt to adapt a site to them.

I believe the author's current design is clean, functional, and honest. It won't win any awards, sure. There are some immediate issues with design elements needing a bit more space in which to live. But IMO the most improvement the author can make right now is to improve the book cover. That is practically lost territory compared to the rest of the site's large text and easily-followed bullet points. I recognized the image to the left as a book cover only on my third website view.


> I'm a designer who periodically works with ThemeForest themes for my clients. The problem with most of the themes is that they look good but you realize how badly they really work only when you attempt to adapt a site to them.

Completely agree. They (and themes from other sites, and rather too many open source themes) have been designed with no thought of customising beyond the options on the "Options" page, have badly structured templates and CSS, and rely on graphics in such a way that changing the look of one part has a knock-on effect on others, and needs extensive CSS rewrites.

Rant over. TLDR: themes are great if you use them as-is.


Good comments! And congratulations as well.

> Invest $50 and buy a nice Wordpress theme off of ThemeForest, because junior software engineers are picky folk. If it nets you two more sales, then it's already paid itself off.

Second this! Being a software engineer is so much more than writing efficient algorithms. It's also about beautiful design in many ways. Average website design gives a feeling it could correlate to average design in other fields.


Average website design gives a feeling it could correlate to average design in other fields.

I couldn't disagree more. I personally see no correlation between the design of his site and his software engineering ability. It's like saying you don't trust that engineer to design a bridge because the ring he's wearing is all jagged along the edges. What?


While I agree that there isn't necessarily an actual correlation, better visual design can make the content seem more trustworthy.


Agree I could care less about marketing. The less the better, I'd rather have basic 1990s html than obviously purchased templates which are needed to peddle snake oil. It's like when I see a site that uses those standard images of business suits pointing at a screen or models pretending to be tech support I don't use them.


One of the primary traits of a good developer is a strong desire for excellence. If a developer is willing to settle for a mediocre and boring design, then that is some (perhaps small) evidence that the book may contain mediocre and boring content.

Anecdotally: At the TechWeek Chicago job fair, there was a very high correlation between booths with good logos and graphic design and interesting people behind the booth. All of my good conversations were with people at the well designed booths.

EDIT: This is especially true since we are expected to pay for the book before we get access to it. This means that we cannot judge its quality in any holistic way, but must do our best to pre-judge its quality through various social signals.


I personally go for things that have bad design. Like slackware linux. I associate bad graphic design with great software. I love seeing a great science fiction novel wrapped in a generic illustrated cover. It seems more quirky and personal to me. I think good design can be bought, so I distrust it. I really hate it when the packaging is slick, with a perfect logo, and a perfect website, but the product is terrible. Like you were fooled into buying it. It happens more often to me these days because good graphic design can be bought, or copy-pasted.


I tend to agree with you, but it's possible the places with budgets to allow for high-quality graphic design and production (let alone conference attendance) also have budgets that allow for the salaries high-quality people often demand.


The ring an engineer wears is supposed to be be jagged along the edges, for a very specific reason. http://en.wikipedia.org/wiki/Iron_Ring#Material_and_design

Are you implying some connection? How is an at best average website design related/justified? I don't get it.

(I actually don't really mind the design...with a few changes/simplifications on fonts, and some padding for extra whitespace on a bunch of elements, I think it could pull off a nice, clean, simple look)


I'd say generally, yes, design is disconnected from software engineering. However, there's also the human element to it -- we all have unconscious biases and preferences, which creative designs can play off of.

To put it another way, I don't think less of anyone for having bad design (unless it's defectively bad), but a good design will naturally draw me and endear me to the content without me even reading a word.


Yes, I would get that feeling, if I knew that the ring was designed by the same engineer designing the bridge. If you set out to do a book well, you also want to promote it as best as you can. Average website here raises the question why it's average.

There isn't necessarily a correlation. I am talking about the feeling the website gives.


The only way to be sure is to conduct an experiment such as an A/B test.


Beautiful design is an optimisation. It's far better to ship the book now and add the design later than it is to hold off shipping the book because the design isn't yet good enough for a subset of potential customers.


GitHub pages provides free hosting for something like this, some templates, and with some fairly simple changes in Markdown and CSS you could have this up relatively quickly.


Rather than buy a (most likely) generic template on WordPress, since the site is a single page, take the first 10 or 20 sales and invest that money in paying a designer to design that single page site as good as possible for further conversions.

Also, don't link in the same tab to your blog posts, you are taking people away from the chance to purchase, and they will typically not be back (there is probably a little higher chance because the market is developers that they will remember to come back and purchase). You should at a minimum, open the links in a new tab.

I definitely second the email list, sit down and write up 52(? more/less?) short "tips" and put people that sign up on an autoresponder that emails out every week, that includes a way to come back and purchase in each email. Obviously leave a way to unsubscribe, and keep track of who purchases and put people who have purchased on a slightly different list (can still send the tips, just don't push the sale anymore).


An email list is a great idea, but please don't open links in a new tab. Opening a new tab breaks the "back" button, which makes it harder to get back to your page, not easier. If people want to come back to your site they'll come back; trying to force them to keep your site open will not work and will not sell your product.

On a more positive note I liked the excerpts (especially the part on interviewing) and will likely buy the book!


On the other hand, it's quite annoying to have a website opening links in new tabs when you don't want it to, that would make it less likely for me to come back on the original site to purchase the book after that.


Agreed on the advice for better presentation, but running WordPress for the single benefit of displaying one single landing page is overkill. He could just get a free Bootstrap theme from http://bootswatch.com/ or buy a landing page template specifically made for books/ebooks from somewhere else.


I don't know. It's great that you wrote it and I can completely understand what sort of undertaking it was, but the problem with any mentoring book is that it should come from a recognized and credible source. If this were an auto-biography book, written from the "what worked for me" angle, it would certainly have an audience. But if it just dispenses advice, then it begs the question what makes you think you are in a position to do that.

I am also not sure who it is written for - pretty much every developer above summer intern thinks of himself as a senior :) Over-inflated self-assessment is a norm.


[disclaimer: I helped proofread the book]

FWIW, I worked with Dave at LivingSocial and took over a bunch of code that he wrote. Whatever a senior developer is, DaveC is that. He wrote great code, was excellent in terms of executing on tasks, made major contributions to tons of projects, was helpful, cheerful, all that good stuff.


This blurb needs to be on the landing page!


Really? Nothing in that blurb tells me that he's exceptional. Just a nice guy who writes good code.


Or a few people could read it, review it favourably and it could become recognized as a credible source. I'd suggest either reading it, or letting others read and comment on it. Don't judge a book by it's cover as they say.

I would suggest though that the author should have solicited a few reviews before posting about it here.


Perhaps soliciting initial reviews was exactly the point of posting here?


I wasn't going to assume that, not sure if anyone else will either. Unless it was mentioned somewhere I missed.


So maybe this is nitpicky, but it's the difference between books I buy and books I don't.

In the 'Technical Debt and Slop' excerpt, there is an example about determining whether an order is free. Basically it compares the customer's store credit plus discounts against the price of the object. It does not account for quantity, or other items in the user's cart. Essentially, the same store credit amount gets applied to every item. This is a bug in the logic, and it took about 30 seconds of me scanning the article to notice it.

Now I realize that's not the point of the excerpt. It's about code duplication. But it's still sloppy writing. That's fine for your blog, but if you expect me to pay, I expect content that is of high quality. Code examples should be complete, and free of bugs.


I think it is worse than that. To begin with, it makes no sense (to me) for an order to have a single product by definition. This is what I think you quickly spotted.

I understand that the author does not have an "Order" because that is supposed to be somewhat definitive (a domain object stored in the database). If that is the case, a much better approach would be to have a "PreOrder" object, that is basically the same but lives in the session scope.

This PreOrder object (or ShoppingCart, or whatever) should basically "extend" (share everything with) the Order object, inheriting all its capabilities _except that of being persistent_. This includes the logic for computing prices based on discount codes/rates/delivery chargers/whatever that you normally apply to a regular Order.

Now, if you want to check if a product would be free, you just add a helper method "free?(product)" to the PreOrder. That method would just get the "price()" of the order, add the product to the PreOrder (itself), check if the new "price()" is higher than before, remove the product, return the result of the price increase check.

At this point you have accounted for any possible interaction between product quantities, discount codes and rates, user credit, delivery costs and whatever. No code duplication involved _at all_.

Moreover, I would say that it is actually _less_ complex (as in difficult to understand) to build such "PreOrder"s than to add random methods to your domain objects...


I think you've misunderstood the example code. Each instance of that Order class has exactly one product. There is neither a quantity to consider nor other items in the cart. That may not be the same design as whatever ecommerce system you're used to, but it's definitely the design of this example.


(Hasty, possibly unfounded criticism follows)

I'm a software engineer myself, and I already believe that great advice can come from unexpected sources, so I visited your website willing to be convinced that you really do know what you are talking about.

These are a few things that I had immediate and decisive opinions on:

- Your title here: "My self-published book on being a great developer" - Sets me up to expect advice from someone like myself (otherwise why would you self-publish?) -- which is a good thing. It's a sign that you relate to me. And "on being a great developer". Concise, I really like that. Off to a great start!

- "theseniorsoftwareengineer.com" - Good domain name. I like you already. Connotes relation to career and adding the "the" makes me think about the true meaning of "senior".

Then I get to your website. Sorry to say, but that's where it goes south.

- It reminds me of those scammy "make millions on the internet" advertisement websites. They may actually make a lot of money with their over-the-top styling, so I'm not saying I'm right, but it's a turnoff to me.

- Excerpts - Good! But they don't stand out. Call them out! Maybe even link some great quotes to the excerpt page instead of the word "excerpt".

- The checklist - it's gotta go. I didn't read it, even though the text was huge.

- Try to neutralize the statement "Not interested in management?". I don't think you need to preemptively limit your audience.

- The cover -- Your style is up to you, but because the text is fairly small, in thumbnail size it doesn't balance well against the huge text on the rest of the page. And I like large text -- but it just needs to balance well.

- Avoid generic statements like "A guide for making the most of your career" or "simple techniques for fixing bugs" -- everyone offers these. What is unique about your take? What did folks like about your blog posts that motivated you to write this book?

- Some of the good content, stuff you should highlight better: Stuff about you, "instant download", "197 page eBook", links to your blog posts.

Sorry if this is harsh -- I think you are off to a great start and I hope this helps even a little bit.


Author here. Thanks for these comments. They are not harsh and very useful and I can see where you are coming from with all of them. I do want to address these issues, but I also wanted to ship, so hopefully I can evolve the design and other aspects as you've mentioned.


I don't think your comment was harsh at all: all very useful advice for the author. More critisicm like this!


I think $25 is a bit too much for me, unless people start raving about it. You can price it however you want, you wrote it, but I'd give it a shot if it were half the price, considering you're self-published and without reviews. I'm not trying to devalue your work, but just keep in mind that you may actually make up in quantity sold what you lose in price per item.

Also, is this your final product? Knowing that it's going to increase in refinement over time would add to the value proposition for me.

Anyway, congrats on writing a book! It's a great accomplishment.


You're being the "I'd buy your product if..." guy.


Nothing wrong with that if it's genuine i.e. if it's "I'll buy it for $10" rather than "the price is higher than I perceive the expected value, I might buy it if it was less". It doesn't make a lot of sense to sell for less than $25 based on expected volumes though.

Based on initial impressions I'll agree the book isn't giving off the vibe that it's worth much more than 1-2 coffees of value ($5-$10), but after looking into it a bit more there's no reason why it can't improve that (it is after all a decent length book by a previously published author who has relevant experience, so $25 sounds quite reasonable).

1. Better site design would make me more confident the book is well designed.

2. Include chapters in the same format/design as the book (rather than just HTML pages).

3. Tell me front and center that the book is 197 pages (that's quite a lot!). First impression I thought this was a couple of blog posts worth of generic advice, not a decent length book.

4. Make the links to the successful blog posts that spawned the book more prominent (bonus: site adds credibility).

5. Make it easier on scanning that he's already an accomplished well-reviewed author (Build Awesome Command-Line Applications in Ruby). Include reviews from here initially in the context of showing author credibility (need to make it clear they're not for the current book though obviously).

6. Highlight the experience in an easier to skim way

7. Make the book cover look different, e.g. 3D rotate with imaginary book pages, or border, or on a darker background or something (the white edges for me at least didn't look like part of the book, so I see the slim narrow purple band and think "booklet" not book).

For reference, Nathan Barry does some of the best sales pages I've seen (Patrick McKenzie aka patio11 happens to agree).

Nathan's advice:

http://nathanbarry.com/learned-selling-6000-ebook-today/

http://nathanbarry.com/step-by-step-landing-page-copywriting...

Samples:

http://nathanbarry.com/webapps/

http://nathanbarry.com/app-design-handbook/


I was being serious about my price point. Not because I expect he'll lower the price, but just to give my data point to take into consideration with whatever other feedback he's getting. If it were $12.50, I'd buy it. That's on the high end of what I like to pay for eBooks, but I respect what the author's doing, and I want to be a better senior engineer. To me, that's a reasonable price to pay with the preconceived notion that I'll probably have to dig through the book for the gems that really resonate with me. Maybe it's my background in econ, but I often approach things with my valuation in mind.


I agree totally here. You cannot price an e-book the same as a textbook. Plus e-books give you a much wider audience so lowering the price is not necessarily a bad thing. Check out Joe Konrath's blog. He is a fiction author but much of what he says cover the span of e-book publishing.


Nice job. I also did this. I got tired after twenty some years of repeating myself to juniors, so I wrote "Coding: On Software Design Process". -- Jonathan

http://www.amazon.com/Coding-On-Software-Design-Process/dp/0...


Thanks for the recommend, I purchased. So far as I can tell, this book isn't so much about how to code, as how to work with people. It's by Jonathan Locke, who has an impressive history, and (judging by the online preview) a lovely writing style.


If you want your experience to come through, don't make it the primary point. Your experience will become apparent in the things you write and the way you write about them.

Out of the first 9 paragraphs in 'Focus on Delivering Results' you use "I" in 6 of them - you start 3 of them with "I". The excerpt reads more like a biography.

I don't know whether you worked with a copy editor - if you didn't, you should have.

You also should have had some independent reviews prior to publishing - maybe someone would have been kind enough to tell you about all of those "I"s - they make the text "feel" rough and unfinished.

You could go crazy with the "I"s in your "about the author" section, yet let the book's content speak for itself.

Given this, the excerpt diminishes the book's value for me, so it's unlikely I would pay $25 for it. If I wanted a biography, I would get a biography.


First impression is that you may be a great engineer, but you need a great designer if you want to sell your book. I'm still interested in the content, but it's a definite turn-off to see a site that looks like something I designed (aka not good - references available upon request).

Somewhat related, there's a 914kb 1007x1024 black-and-white PNG for a 197x200 image of the author. That should probably be fixed, if for nothing else than it's killing your bandwidth. I only noticed because I thought I was back in dial-up days with how slowly it came through.

All of that aside, I'm intrigued. I'm going to bookmark this and come back in a couple weeks, I'll have to see how it looks after you've taken the other comments here on HN into account.


I'd like to point out that $25 is probably not too much to pay for a book that might earn you an extra $X,000-$X00,000 over the course of the rest your career. There's of course a chance that you could read this book and increase your earning power by exactly zero, but I have a hunch that there's at least $25 worth of good advice here.

The design is FINE! It communicates what the book is about in a way that takes very little effort on the visitor's part. I think Dave did a perfectly okay job with it.

I've actually been saving up thoughts and writing scraps to write a book like this myself, but I'm probably not qualified and I'm glad somebody else did a better job first. Nice work.


The cost of reading this book isn't $25. It's $25 plus the opportunity cost of however many hours it takes to read it.


Nice. I'll take this as an opportunity to link to an Austrian economist. Austrians happen to be the best economists. https://en.wikipedia.org/wiki/Friedrich_von_Wieser


Not to mention that the payoff is a big question mark.


And the benefit has to be multiplied by the odds I'll ever actually read it after purchase. Ebooks are so tempting!


This design is visually abrasive. I would suggest getting rid of the the purple accents and changing your typography.


This comment is verbally abrasive. I find the site very clear, legible, and intuitive.


A lot of negativity here, mostly based on the 90s site.

Reading the excerpts, what the author is doing is quite clever. He creates an identity, the reliable, effective Senior Engineer.

The reader wants to be more like that identity, so he takes you through different situations and says, 'This is how a Senior Engineer would act and think in this situation'. For example, [A senior engineer would not ship his code until it was really production quality, even when rushed].

The situations and issues he talks about are often a result of social pressure (to ship, to deliver features that don't matter in order to show progress on the burn chart). It's easy to get caught up in those moments. If the book allows you to step outside that, and think 'What would a true Senior Engineer do here', and the answer is 'The long term right thing', I think it's valuable.

But not $25 of valuable. Sorry, that is too much for a speculative purchase (which this is, given the author isn't a known quantity like Jonathan Locke at bottom of the thread.


You absolutely need an email capture. I'm not ready to buy yet but if you sent me periodic posts I would be more inclined over time.


Author here. Apologies that the design of the website has been so distracting. I ultimately decided that I needed to ship, but I can see where those commenters are coming from (and I appreciate that most of you have been constructive). I CAN say you should all be glad to not see the 3-D book I created in Pixelmator. I saved you from SOMETHING, at least :)

Since I've now made real revenue just on the first days' sales, I feel more confident spending actual money on the site design.

I opted NOT to use a template because none of them seemed adaptable to what I wanted to do.

Anyone willing to help me out, or can recommend someone who would?


Congratulations Dave! About a year ago I self-published my first book and it ended up being the best thing I ever did (so far). How did you write the book? I used LaTeX for mine, less mess with the tools! Another thing, have you considered going Print-On-Demand as well? I've got my book on Amazon using CreateSpace, they don't take a lot of the money and the book gets good exposure; while I also have a DRM free PDF, ePub and Mobi. As well as on Kindle.

Good luck with the sales and again, congratulations on becoming an author!


I just wanted to say congrats on getting something out in the world.

Don't worry about all the criticism on this page, particularly from anyone who has never written a book before.


Congratulations on self-publishing your work. I know how much work it is (published a book this year, working on a second) and I know what it's like when you get criticism. Keep up the good work and a big lesson we learned was this:

Take the negative criticism on your book and reverse it. Every time we got dinged on a problem with the text in our book we worked on that chapter until we felt like no one could ever complain.


I can't help but think that giving generic coding advice by using a dynamically typed language is anathema to a book, because you see all these symbols in the source (customer, account, etc...) but you have no idea what methods they respond to and which ones are compatible with which other ones.

I hope that as a senior software engineer, you make your points using other languages than Ruby in your book.


Author here. There is very little code in the book and it is split between Ruby and Java. The chapter on writing includes a fair bit about how the API documentation burden in statically typed languages is lower, since the types are part of the method signatures.


Sorry to he a hater but that landing page looks like balls and the book cover looks like balls. Looks like a high schoolers HTML project. Also, 'Who you are and what you have done and what makes you qualified' should be higher up and more noticable. I would find someone who has done something similar in the past and base your sales pitch/designs from that.


Congrats and Thank You! I just purchased the book, and look forward to reading it. As a young software engineer, I enjoy reading books like this to get many different points of view that I can learn from.

In relation to the comments about the price--I think it is reasonable. It really depends on how much you think you can get out of this book, or a book like this.


I hope the book had a good revision using a good spell-checker. Please fix the e-reaeers on your page to e-readers.


One mild criticism. A book such as this is really going to depend on the author's reputation. You buried the info about yourself way below the fold.

I'm also not certain about the price. I would pay that price from a big name. For anybody else, I wouldn't go above $10.


You have a minor misspelling under book types:

ePub (iPad and most other e-reaeers)


Nice to see a programming book that's more meta. I'm sure that it will be useful; especially for new college grads.


Has anyone read this yet? I'd like to see a basic review before I through $25 at a relatively unknown author. Though regardless, congratulations on self publishing and getting a book out!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: