Linux Format logo

Paul Hudson's Coding Academy

If you've received your copy of LXF128, you should by now have spotted that our new special edition magazine, Paul Hudson's Coding Academy, is now on sale - you can read more about it at

The problem is, it's selling a bit better than we had expected - we had 200 copies ready for sale online alongside the thousands destined for newsstands around the world, but all the online copies have already sold out. We're trying to get more for online sale by pulling copies back from newsstands, but it's not easy.

So, there are some things you need to know:

  • If you ordered one from us online, you will receive your copy. It says Sold Out now, but if you placed your order then you will get a copy even if I have to print one out myself and post it to you.
  • If you haven't ordered one online, it's very unlikely you'll be able to get one now, because they have all gone.
  • That means the only place left to get your copy is in your local store. They are in many stores across the UK, such as Asda or WHSmith. They are being shipped over to North America for sale in places like Barnes & Noble, Borders and Frys. In South Africa, try CNA or Exclusive Books. If you're in Norway, try Narvesen stores. Swedish folk should look in Pressbyrans. AKO stocks some if you're in the Netherlands. They are in many independent bookstores across Australia. In short, we've sent copies out around the world, so just ask in your local large book/magazine store. If stock hasn't arrived yet, you'd be smart to reserve a copy otherwise you're likely to miss it.

If you spot spare copies in your local store, please do let other folks know because chances are there are other people nearby who are struggling to find it. Or, if you're feeling crafty, buy them up and put them on eBay.


Your comments

Good stuff

I usually don't read through a lot of blogs but I found the debates here to not be just flame wars. I do hate Micro$haft too for the many years of stuff they have done but here is a point that nobody has mentioned and that is that we are getting to use something that Micro$haft has spent time and money developing and we get to use it for free. Although I'm sure the Mono guys work real hard to make it work.

I actually didn't check the forums to debate Micro$haft but had a problem right away with the first lesson. When typing my first code in the Reading from a file section I typed "cd ToDoList/ToDoList/bin/Debug" exactly like it's printed I got an error message. It said No such file or directory.I am running the live cd that came with the mag and am boggled as to why it wont work. I am a little bit of a noob so any help would be great. I have a few programming books and this is exactly what happens and then I give up because I do everything the way it's written and it never works. Some books I get a little ways into it before I run into problems. Of course I'm having problems reading the captcha and then I tried the audio and I don't even hear any letters. Oh well a few more refreshes and I should find something.

Santa Monica California Barnes & Noble - In Stock

Finally found a copy Yesterday ( U$D 20.99 ) @ Barnes & Noble Santa Monica, California. Hidden between other magazines as I was expecting it to be sealed with a cardboard cover just like previous LFSEs. Looking forward to C# dev.

Very Much Looking Forward For The Python Version :)

My first reaction when I saw it on the shelf was: "Hey this is awesome! (immediately followed by..) But hey! Its not in Python!"

I'm new to programming and like most other guys new to programming, I'm learning Python and have made some investment in it. Its fun, its great, I'm loving it, and if there's an LXF special teaching about Python, now that would be perfect!

But its in another language...
so... I put it back on the shelf.

But hey! Now I'm thrilled hearing that there is a possibility to do a Python version of it!

Please do! Pretty please! I'll buy it right away upon sight! A Python version would be awesome! :)

@ Good stuff by Anonymous Penguin

I take it your running from the live CD.

The correct path is

cd /Projects/ToDoList/ToDoList/bin/Debug

Good stuff part 2

I am running from the live cd and have tried a lot of different things and you were close. It was cd Projects/ToDoList/ToDoList/bin/Debug. You had a forward slash at the beginning that wasn't supposed to be there. Thank you for helping me figure it out. I hope the rest of the magazine isn't like this.


In fact I work for them. I picked up this mag because I'm looking to switch jobs and the new place is an all linux shop. I have ZERO experience in Linux.

So I picked up your mag and I wanted to see what was up. Then I see that it's all about Mono/.NET and C# and I immediately feel welcomed. :)

Then I go further and boot the DVD and allow that damned penguin onto my system, fire up the MonoDev and decide hey let's see what this can do.

It read my NTFS drive no problem, I navigated to a C# solution I had been working on in Visual Studio and I opened it up, MonoDev read it, loaded it and to my amazement built and ran it without modification.

While I won't even joke and say that MonoDev can even hold a candle to Visual Studio, I have to admit that I was floored, and impressed. It's nice to know that if I make that move that my old friend C# will be there.

Good mag, good projects and Great Job Paul!!!

In Stock at B&N, Anchorage, AK

As of 2 March 2010, 14:00 AKST, there were five copies of Coding Academy in stock at Barnes & Noble in Anchorage, Alaska, USA for $20.99. (There were six, but one jumped into my arms and insisted I take it home with me.) It's not exactly next to the other computing magazines, but if you know it looks like, you'll find it.

After a quick flip through the magazine, I'm quite encouraged. All of the basic programming principles are covered, and we pretty quickly move beyond the command line (I can't say the same for my first two semesters of university-level programming classes). What's more, they're not just educational exercises; many of these programs could be quite useful later on, either in their original forms or with a few "improvements", which you'll know how to do by the time you finish the book.

For those who avoided this book because it's not {Python|Perl|Haskell}, I'd advise giving this book a try. The syntax is a little different, but the most important thing a new programmer needs to learn is how to think like the computer, and that doesn't require a specific language. Once you're done, you could take on the additional challenge of rewriting these programs in your language of choice.

Coding Academy - PDF

Okay, so now I have searched widely enough that I am fairly well convinced that there are no further copies of Paul Hudson's Coding Academy available online. Given the comments by several folks (including Paul Hudson), it would appear that newsstand copies are exhausted by this point as well - probably doubly true here in the U.S.A.

Okay, so here is the argument:

The publisher presumably calculated whether to publish Paul Hudson's Coding Academy with some profit motive in mind - as opposed to an idealistic one - lose money but spread the word. So the # of copies and pricing was such that this would make a profit even if not all copies were sold (one would think that the publisher has some break-even point in terms of sales that is way less than 100% sales).

So... if all the copies are gone, then presumably the publisher has succeeded in making money beyond their wildest expectations for this edition (since they are all gone and presumably therefore none published for which no money was received).

So... any further distribution of Paul Hudson's Coding Academy either costs the publisher more money and at higher risk (how many to do in a 2nd edition, how many more will really be sold, etc. etc.), or costs them virtually nothing if it is done digitally but makes a bunch of folks happy who missed out on the original limited production run.

Therefore... the publisher can make a lot of folks happy by creating a PDF (for example) of it and either handing it out for free or handing it off to an online publication sales company that is already set up to sell digital copies. The cost/benefit is that there is some minor cost to create the PDF, the benefit is that a lot more people can get a copy and be favorably impressed with the publisher.

Surely, in this day and age, the source material for the printed version started out in digital format and was probably entirely laid out digitally. How tough could it be to produce such a PDF? And the companion DVD (I believe there is one?) - well, distributing that ISO should be a slam dunk.


It is online


Just plain wrong.

So two things so far frustrate me about this book.

1) What the heck is Mono (other than a really bad infection)?. Mentally, I just replace the word Mono with C# and I seem to be doing okay.

2) WOW - I can't believe this was released like this. Project 3 has a call to the Directory.GetFiles(directory), expecting to get the file names back. Instead .net on Windows returns the full path and file name - effectively blowing up the program before it begins. If I'm wrong - I take it back - but so far this seems like VERY POOR programming and even WORSE edit checking.

Just plain wrong.

So two things so far frustrate me about this book.

1) What the heck is Mono (other than a really bad infection)?. Mentally, I just replace the word Mono with C# and I seem to be doing okay.

2) WOW - I can't believe this was released like this. Project 3 has a call to the Directory.GetFiles(directory), expecting to get the file names back. Instead .net on Windows returns the full path and file name - effectively blowing up the program before it begins. If I'm wrong - I take it back - but so far this seems like VERY POOR programming and even WORSE edit checking.

Requests/Suggestions - Ruby version & clever Linux tips

I browsed through Coding Academy at my local bookstore (I live in Canada) and it seemed great. The reason I didn't purchase it is because it was C#/Mono. While I've no problems with C#/Mono, I really would like a Ruby version.

For work: I already know enough Java for my work that I don't want a Java version. For my personal learning and development, I chose Ruby as the language I wanted to learn and it'd be really nice if you could produce a version for Ruby.

My second request/suggestion is that in your next version, you could include some Linux tips as well. For example, if there is code that writes something to log or some file, you could give a tip to the user to tail the log file or output file "tail -f foo.out".

Tips like these helped me immensely as I started learning Linux. Since I mostly use Windows at work, I don't consider myself a power Linux user yet. So, I, for one, would love to become more efficient and power user of Linux while going through Ruby-coding-tutorial. As opposed to simply reading a book on bash-scripting or a general Linux usage book.

Just getting started

Coding Academy went on sale on 26 March in Bega, about 80 Km away from my remote little spot in the south east corner of NSW, so I guess I was lucky to find a couple of copies still there on 7 April. I'm not interested in the arguments for and against using Mono (or C#). I simply want some brain exercise; important at my age (well and truly retired). So far that exercise has come mainly from finding and correcting two errors in Exercise 1 - the missing "Project" in the CD command mentioned above, and the missing "(" in the first line of code about a third of the way down column 1 on page 12. The "(" threw me for a while until I remembered an important lesson from years ago "if you get a syntax error, match your pairs of brackets". Anyway, it was corrected in the next column.
Thank you for the work you put into this special edition. I'm looking forward to tackling the remaining projects.

Any Discussion Group?

Is there a discussion group where people are discussing the projects and the solutions to the homework assignments? Finding a solution is usually possible but without some feedback it is difficult to know how efficient it is.

Any Discussion Group

Not really a DG but peeps have asked questions at forum.


Down under it appears that some Newsagents display copies of Linux Format a week after subscription issues are received. These are Air Express and sell at a premium of about 25%. Approximately 2 months later the surface mail reaches the news stand.

The issue of Coding Academy were on sale in early April about a fortnight after LXF128. After a long wait and frequent inspection of the news stand & Borders (where I have yet to locate a copy) I obtained a copy and have spent some time working on Project1. Unfortunately the code supplied does not appear to work. “add” is OK but the delete option (del) results in the todo.txt file being deleted and the following message produced .

Unhandled Exception: System.FormatException: Input string was not in the correct format

at System.Int32.Parse (System.String s) [0x00000]

at ToDoList.MainClass.Main (System.String[] args) [0x00000]

john@john-desktop:~/Projects/ToDoList/ToDoList/bin/Debug$ ls

hello Main.exe Main.exe.mdb ToDoList.exe ToDoList.exe.mdb todox.txt

I suspect that there is some incompatibility regarding conversion of args(1) into an Integer value and then comparing the contents of the array 'contents' with this. The file in the above list ( todox.txt) is my backup of the todo.txt file.

@ JohnMac.


Post your code at in the programming forum.


Editing problems

I'm sorry but I, too want to express my disappointment with the "Coding Academy." I had (and still DO have) high hopes for this book.

'Good Stuff' expressed my frustration exactly when s/he said, "I have a few programming books and this is exactly what happens and then I give up because I do everything the way it's written and it never works." Quite true, but most books usually don't give you major frustrations until much later in the work! I have re-read Project One several times trying to understand some of the 'simple concepts.'

I found all of the same errors that that have been mentioned by others. But let me add another concern. The author often switches between ACTUAL code and PSEUDO code without differentiating. Most of the time the pseudo-code is fairly obvious (at least to people who have some familiarity with programming), but this is not always the case. The simple expedient of labeling the code snippets (this works! this is just an example, etc) would have been nice.

This book is conceptually a wonderful idea. I hope that the 'readability' improves as I progress!

I was thrilled to get this

I was thrilled to get this but.... I thought it'd be a great way to get an understanding of the basics of programming, but haven't got past the first project; it's very confusingly written, as others have mentioned, and at first I thought it was down to my not understanding, but my faith in the author was lost when I magnified the screen images accompanying the text and saw that it didn't fully correspond to what he'd written, with vital info missing in the text. I tried to figure it out using the screen images, and got some way forward, but there basically weren't enough images to follow the steps, and the written text was simply confusing. It's no fun to be made to feel stupid, but am pretty certain it's not my fault!

I agree that it's conceptually a wonderful idea but the execution is shoddy.

I haven't got past the first

I haven't got past the first project either. On Linux, MonoDevelop crashes when I try to run the first "Hello World" code. On Windows, MonoDevelop gives me an error when I get to printing "contents" - the 3rd step on Project 1: "A namespace does not directly contain members..." I was hoping there'd be some actual errata or links to help somewhere obvious from the link given in the magazine.


no good deed goes unpunished.

I think Paul is doing something very unique and very difficult in helping to keep magazine computer publishing alive in an increasingly hostile environment for magazines.

I can only imagine how tempting it would be to throw in the towel and just go all digital online. The fact that Paul persists in the racks is good... it performs a sort of outreach that the web can't. The fact is that many aspiring programmers become just overwhelmed on the web and this magazine format gives them something to start with that's tangible and well thought out.

Basically, Paul is extremely talented at teaching... and his Coding Academy proved more popular than he imagined. Of course it's hard to predict sales volumes.

What astounds me is that he seems to know so many languages at a level that he can teach them. I mean, has anyone stopped to consider how freaky that is? It seems like less time should be devoted to combating his language choices and more time spent just appreciating his multilingualism. If I've noticed one thing about the great coders I know is that they spend most of their time programming... not debating languages.

I suspect he could make far more money just disappearing into a cubicle and coding. The fact that he instead keeps cranking out tutorials and magazines is something I am very grateful for.

This sounds I'm sure like a fanboy rant... I've never met Paul or even emailed him... but I'm definitely benefitting from what appears to be an extraordinary pedantic streak.

I think everyone disappointed in delivery times to note that he said that subscribers have access to PDF versions of a lot of the past material.

Anyway... I guess this is a mangled rant of appreciation and also a wish that everyone would lighten up a little in their reactions to various problems in delivery times and availability.


Absolutely not for beginners

Hi, I bought it and I spent a couple of hours trying to apply the first project. First, I found out that the path to change to the ToDoList direcrtory under the title "Reading from a file" was not complete. One needs to add the folder "Projects" to that path. Second, the author talks about the variable line and does not precise where exactly it should be written. I tried to do it in several places and each time I receive at least one error saying something like "parsing error" or "unexpected symbol ...". I was expecting something for beginners, but the text seems to be addressing "mono beginners" who already know how to program.

Web hosting by UKFast