Tuesday, November 11, 2014

"Becoming a Better Programmer" by Pete Goodliffe; O'Reilly Media

I think that for someone early in their career as a programmer, Goodliffe's "Becoming a Better Programmer" may be a good investment.

It covers a number of topics that are of direct and indirect importance to working programmers, from error handling and working with unfamiliar code bases through to more nebulous issues such as teamwork and professional ethics.

Despite weighing in at over 300 pages, the book is very easy going and none of its 38 chapters took more than a few minutes to read. I think this gives us a good indication at who the target audience is (or who it should be), namely, someone who needs a bird's eye view of the terrain comprising the daily life of the professional programmer.

Other than simply being a laundry list of things programmers should know and do, though -- and as suggested by the title -- there is a thread running through the book encouraging the reader to become better, both in terms of the quality of their code and, importantly, the quality of their character.

The bottom line is, I think, that if you're starting out as a professional developer you'll find a lot of value in this book. Seasoned developers will have seen most (but not all) of the issues raised in the book elsewhere and so may want to spend what reading time they have elsewhere but if they have the time, or feel like what they need is inspiration, this might be just what they need too.

Monday, November 10, 2014

Recent publication: Maker, Oppressor, Memory.

I few months ago I submitted a short SF piece to Plasma Frequency magazine which they published
in their 13th issue.

You can read the whole piece online here.

Something a little different. An update.

Recently I've been using my blog primarily as a repository for reviews and the occasional public postings about my ongoing philosophy project.

It's clear that there is very little traffic here, and since one of my original intents of the blog was to document (which I did unsuccessfully) my Masters research, which I subsequently completed, it's not clear just what this space is useful for anymore.

So I'm going to just start posting whatever comes up.
Whatever I work on.
There will be no particular theme, no particular aim, just a series of posts that deal with things I find interesting and things that I manage to get up to.

I promise no useful information. I promise no edifying prose. I promise nothing more than a stream of words.

There are a few topics we can expect to pop up regularly, namely, psychology, programming, philosophy, and fiction. How regularly is the question.


So, yes, here we go.

Sunday, November 9, 2014

"Lean UX Workshop" by Jeff Gothelf

I wasn't quite sure what to expect from Jeff Gothelf's "Lean UX Workshop" but having worked my way through the videos I can say that it was a phenomenal use of, approximately, 3.5 - 4 hours.

The format of the videos is actually somewhere between a workshop and a lecture. Gothelf lays out quite a bit of theory regarding Lean and Agile, and especially how to integrate design into the process of iterative development. Much is made of the fact that all of these processes are focused on delivering real value through learning, at each step, whether what we're proposing to build both addresses a genuine need and goes some way towards solving that need effectively. This is accomplished through approaching more or less every step of the process as hypothesis testing.

To recap this theory, and as a long term reference, I think I'm going to be buying Gothelf's book on the Lean UX process.

The workshop segments of the videos were, to me, invaluable. They really act as an example of how one can practically run a workshop of this kind as Gothelf runs the participants in the video through a set of exercises designed to focus the team by helping them reach a consensus about what's important to be working on, as well as building a shared vocabulary / understanding that ensures that they work in the same direction.

Wednesday, November 5, 2014

"Responsive Typography" by Jason Pamental

Pamental's "Responsive Typography" is another one of O'Reilly's series of short and narrowly focused books covering some particular aspect of web technology and/or design.
In this case, no surprises here, the focus of the book is on using typography well online.

The book is divided into two parts. The first is a kind of capsule history of rendering text on the web. In it Pamental gives an amusing account of the hoops designers and coders had to jump through to get their copy looking halfway decent. There is, further, some useful -- but short -- discussion of typography's place in design. This might be useful to someone who doesn't quite yet get just how critical appropriate typography is in ensuring complete and effective design.

The second part of the book deals with the practicalities of using webfonts. This is the part that most programmers will find useful. While most of this information can be gathered from other sources, having it presented in this extended-article type style means that most of what you want to know about using webfonts is accessible in one go, and in a single voice. Further, Pamental gives a number of important hints regarding best practices. I, for one, found his discussion on preventing (or, more accurately, masking) FOUT exceptionally useful.

While this book is good, and I recommend it to anyone looking to implement webfonts, I cannot rate it as highly as I might otherwise simply because the book is so short. It really is as if one were reading a series of three or four articles on a design website.

I would love to see what Pamental does with an expanded edition of the book.

Saturday, November 1, 2014

"Full Stack Web Development with Backbone.js" by Patrick Mulder

Patrick Mulder's short (it runs just under 200 pages) book on Backbone.js takes you through the basics of building a full stack web application in JavaScript.
Given the scope the book's coverage is broader than it is deep and it does a good job of touching on
all of the basic components of putting together a fully fledged web application.

My own background is as someone who has made a lot of use of JavaScript on the client side (including using frameworks such as Knockout.js) in tandem with languages like PHP or C# driving the backend logic. As such I found that this book, short as it is, gave me exactly the set of tools I need to make the transition to full blown full stack JS applications. I don't think I would recommend this to someone attempting to build their first web app. Some experience is required (this is noted in the introduction).

Finally, I have to say I really appreciated the inclusion of chapter 10 on Automated Workflows covering Bower, Yeoman, RequireJS etc. These tools are all really pushing the JavaScript ecosystem in the direction of becoming a world class, professional, environment for software development. It's imperative that JS professionals are aware of, and make use of, these tools. This chapter gives just enough of a taste to get one going in the right direction.

Tuesday, June 10, 2014

"Bandit Algorithms for Website Optimization" by John Myles White

This is an intriguing and useful book.

Useful because it covers important algorithms for website testing in some detail. Intriguing, to me at least, because it can be read in a single sitting and is quite narrowly focused. Further, it is concerned with a fairly technical topic (multiarmed bandit algorithms) - it feels as though the entire book itself would ordinarily be a chapter in an imposing textbook on methods.

I'm by no means an expert on this topic, so I can't quite say how it fares against other resources - but I can say that I feel as though I grasped something important about this class of algorithms from reading this book, and on that basis, recommend it.

Saturday, January 18, 2014

"The Modern Web" by Peter Gasston

I think that the best way to approach Peter Gasston's "The Modern Web" is as a first step in coming to grips with the technologies that comprise modern front-end web development. Reading it will give you a good sense of what's out there, and what it's able to do, but will not provide quite enough detail to make you expert in any of it.
Rightly, though, the book doesn't pretend to be exhaustive - each chapter provides an (often quite detailed) introduction to some facet of HTML5, CSS3, and/or JavaScript as well as some pretty beefy reading lists if you're interested in drilling down further into the topics.

The book was a revelation for me on several fronts, as my background is primarily in back-end development I was unfamiliar with a number of the techniques presented in this book - in particular the chapters on "Device-Responsive CSS" and "New Approaches to CSS Layouts" helped me bridge some important gaps in my education.

I can heartily recommend this book to anyone who is either coming to web development for the first time, or who -- like myself -- is making the transition from the back-end to the front-end (a line that is increasingly, and excitingly, blurred).



I review for the O'Reilly Reader Review Program