Saturday 8 November 2014

Writing: Becoming a Better Programmer


It's finally here!

My new book, Becoming a Better Programmer, is fully edited, laid out, and is now available as a final product for your reading pleasure, published by O'Reilly. You can purchase it in printed form or as a digital version for your e-reader of choice.

Find out more about the book from the O'Reilly product page. You can view the full table of contents there. Or head over to Amazon to purchase. If you are a Safari subscriber, you can read it here. Grab your iBook here.

The cover image is a flying fish. I'll leave it to your imagination to work out the significance.

It's great to finally see this labour of love come to fruition, and I do hope that stands as a useful resource for programmers today.

One of my favourite parts of the book is a family in-joke in the "advance praise" at the front. Nestled amongst the luminaries and expert programmers who graciously contributed their honest thoughts on the book is another very honest opinion:


Saturday 20 September 2014

Writing: Testing Times

My latest Becoming a Better Programmer column is published in the September issue of C Vu magazine (26.4). It called Testing Times and surveys the world of developer testing, covering the what, why, and how of programmer-driven testing. We look at feedback loops, TDD, unit testing, integration testing, system testing and more.

C Vu is a magazine produced by the ACCU - an excellent organisation for programmers. It has a great community, great publications, and an awesome conference. Check it out.

Meanwhile, my book: Becoming a Better Programmer, is nearing print. It's gone through tech review, copy edit, and layout is almost complete. You can still access the early release at http://shop.oreilly.com/product/0636920033929.do.

Thursday 28 August 2014

Really useful Xcode plugins

I'm a happy Xcode user, mainly using it for C++ programming. It's a relatively nice IDE (except for when I need to break out the big guns and fire up Vim for heavy lifting).

There are a few plugins that make it an even nicer IDE.

This is as much a note to myself as anyone else.

Backlight
One of the plugins that highlights the current cursor line. I have no idea why Xcode still doesn't do this by default.
https://github.com/limejelly/Backlight-for-XCode

Fuzzy Autocomplete
Makes autocomplete work on steroids, like the Open Quickly fuzzy matching. Nice.
https://github.com/FuzzyAutocomplete/FuzzyAutocompletePlugin

SCXcodeMiniMap
Puts a wee "mini map" beside your scrollbar. Can be useful if you write insane unnavigable source files. (Hint: aim for code that doesn't need it)
https://github.com/stefanceriu/SCXcodeMiniMap

BBUDebuggerTuckAway
Hides the debugger view as soon as you start typing into the editor. Handy. Saves a common keystroke.
https://github.com/neonichu/BBUDebuggerTuckAway

AdjustFontSize
Quite keyboard shortcut for adjust font sizes. Useful as I switch between a retina display and various monitor sizes depending on where I'm working.
https://github.com/zats/AdjustFontSize-Xcode-Plugin

BlockJump
CTRL-] and [ navigate up and down by block.
https://github.com/tyeen/BlockJump

Xcode4_beginning_of_line
Command + left arrow goes to the first non whitespace character, like any sane editor should.
https://github.com/insanehunter/XCode4_beginning_of_line

XAlign
One i'm just trying out. I find this kind of alignment can help reveal code intent, although it adds extra work to maintain. So let's make the computer do the work. Command-shift-X
https://github.com/qfish/XAlign

Friday 18 July 2014

Writing: Nothing is Set in Stone

My latest Becoming a Better Programmer column is published in the July issue of CVu magazine (26.3). It called Nothing is Set in Stone. It talks about the soft nature of software, and how to make fearless changes.

Writing: Becoming a Better Programmer

I am delighted to announce that I have signed a contract to publish my latest book, Becoming a Better Programmer with the excellent folks at O'Reilly.

You can find out more about the book from it's catalogue page at http://shop.oreilly.com/product/0636920033929.do.

We have now made an early access version available with a number of the chapters. It's already looking excellent, and I can't wait to get the final version out.

Thursday 10 April 2014

Speaking: Words in Code

The slides from my ACCU 2014 talk, Words in Code, are available on SlideShare, from http://www.slideshare.net/petegoodliffe/words-in-code.

Here's the synopsis:

As software developers we do not just write code. We write many, many words too.

We write documentation, comments, manuals, specifications, technical articles, wiki documentation, and more. Maybe even magazine articles and books.

This talk discusses some practicalities of writing well, both stylistically and practically. We'll talk about prose, but also about the right "geek" way of writing, the storage formats, toolchains, and the storage of our words.

We'll cover:
- writing style
- what's appropriate: what to write what not to write
- keeping track: "source control" for words
- toolchains: what toolsets to use to write and prepare output
- markup languages vs "wysiwyg" tools
- sharing your words with non-geeks

At the end of this talk, you'll have a good idea how to put together an example "document toolchain" taking source-controlled words in a humane markup style, and creating high-quality HTML, PDF (fully styled, print-ready) ePub and Kindle output, as well as Word-friendly versions.

Monday 24 February 2014

New Book: Becoming a Better Programmer

After many years of gestation my latest book is available for purchase as an early-access pre-release.

Called Becoming a Better Programmer, it is a handbook for people who are about code.

This early access edition already contains 14 chapters, and there are many more coming. There is a free "sample" version available so you get a taster of what you'll be purchasing.

As a pre-release, it's available at an introductory price. The price will go steadily upwards as the book nears completion. Buy now to enjoy the best value! (That's the sales pitch - I suck at that kind of thing.)

Get it from gum.co/becomingbetter. Join the book discussion here: moot.it/becomingbetter.

It would genuinely love to hear any feedback, praise or criticism that will help improve the book. Suggestions for topics to cover are also of real interest.

My honest hope is that this book does just what it says on the cover: helps many developers improve their skills, to become more productive programmers.

Buy it now!

Monday 3 February 2014

Speaking: Words in Code (ACCU 2014)

I'll be speaking at this year's excellent ACCU Conference 2014.

This year my talk is: Words in Code, a technical (and not so technical) appraisal of how developers write. It's a practical distillation of my fourteen years as a magazine columnist, multiple book projects, and more.

Come and enjoy it on Thursday 10th April at 10am. The conference's earlybird booking deadline is February the 14th. ACCU is one of the highlights of my developer year - it's a truly excellent conference. If you've not considered going, check it out!

The full synopsis is available on the session page:
As software developers we do not just write code. We write many, many words too.
We write documentation, comments, manuals, specifications, technical articles, wiki documentation, and more. Maybe even magazine articles and books.
This talk discusses some practicalities of writing well, both stylistically and practically. We'll talk about prose, but also about the right "geek" way of writing, the storage formats, toolchains, and the storage of our words.
We'll cover:
  • writing style
  • what's appropriate: what to write what not to write
  • keeping track: "source control" for words
  • toolchains: what toolsets to use to write and prepare output
  • markup languages vs "wysiwyg" tools
  • sharing your words with non-geeks
At the end of this talk, you'll have a good idea how to put together an example "document toolchain" taking source-controlled words in a humane markup style, and creating high-quality HTML, PDF (fully styled, print-ready) ePub and Kindle output, as well as Word-friendly versions.