The Education of a Programmer (Me)

Just another site

Category: Education

Book Review – Microsoft Visual C# 2013 Step by Step

I’ve recently been reading Microsoft Visual C# 2013 Step by Step by John Sharp. As usual, the disclaimer is that I received a copy of the book for free in return for the review. I’ve not linked to the book because I blog as part of O’Reilly’s reader review program and recently Microsoft Press books have been removed from their site. Out of courtesy to them, I am not going to link to Microsoft’s site for the book.

The book is aimed, as you read it, for programmers who are wanting to get a foundation in the basics of C#. As such, the book is a good reference work. It takes apart each of the different parts of the language and shows you how they are used in basic format. The first part of the book introduces you to the language, it’s absolute basics, and Visual Studio. The second part, getting the object model under control. Part 3 extends it, and finally, part four shows you how to build something simple for Windows 8.1; as that is Microsoft’s application focus currently.

Overall, Mr. Sharp does an excellent job describing the basics. If you’re a more experienced programmer wanting to see what’s new in the language, this isn’t really your book. But that’s not a negative. It’s not designed for that level of programmer. The examples are clear and concise. However, my one concern is that, as with most beginning books, what you’re learning along the way doesn’t build on itself until the final portion of the book when it all builds at once. However, if you’re going to be new to C# and you’re not coming from Java, this is certainly a good book to start with.


Book Review – Algorithms in a Nutshell

I’ve recently been reading Algorithms in a Nutshell by George T. Heineman, Gary Pollice, Stanley Selkow. As usual, the disclaimer is that I received a copy of the book for free in return for the review. This book is dense. It was tough for me to get through. That’s not really a negative, it’s an admission that for all of my education in learning programming languages and writing programs, I’ve never taken the time to learn the Computer Science behind the craft of programming.

That said, this is not a book for getting an introduction into algorithms. This is a book for reference when you know what you’re doing and you want to confirm how this algorithmic pattern or that pattern will impact the program and the speed of computation. The book is well written and there is tonnes of example code throughout the book to explain what the authors are saying about each type of algorithm. There are also a tonne of algorithm types in the book to demonstrate the principles. The epilogue alone is worth the price of the book when you read it. I might have placed it at the front as a prologue to explain what I was reading first. However, as I said, I don’t have the same background and I certainly would have benefited from an introductory level book on the topic before attacking this one.

However, when time and tide avail me, I will certainly read something more introductory first and then I will return, with more knowledge in hand, to this book to see what else I can extract from it and see how it can make me a better programmer. If you are already a programmer dealing with these types of algorithms on a daily basis, then you should have this book at your side.

Goals for 2014

Ok, I am going to do this post, along side everyone else who does it at some point around the new year. If you’ve been reading this, you know I do a lot of book reviews. Well, I need to change that a little bit. I need to start writing more about how I’m getting from point A to point B in my career as a professional programmer. At the same time, I have to do what all programmers should do and work on my skills to increase my abilities and my value as a programmer overall. So, with that in mind, I’m setting out a list of goals for 2014 and expecting that I will blog more about it as I go along.

1. Continue my degree course. I’ve been in school so long these days, I’ve become convinced I won’t get out of school. Well, all kidding aside, I’m around midway through my first term at Western Governor’s. I enjoy it and I’m seeing good progress, so I need to get moving faster in my mind. 

2. Learn a new programming language. I’ve heard it said many many times that if you want to get better as a programmer, learn a new language and  preferably something outside your comfort zone. Well, I need to learn two languages for the degree above: Java and Perl. So somewhere in there, I should start getting a jump on things and work my way into this.

3. Rebuild my current codebases. This is a punt as this is already planned for this year. I’m almost done with one site’s re-write and soon I’m going to do the other re-write and then re-do the major project. Really, I’m doing this because I know what I wrote works, but it’s not the cleanest or most efficient way of doing things, so I want to get better and if getting better means doing full re-writes, then so be it.

4. Write more websites. I have a list of sites I could be building or should have built by now, so it’s time to start scratching them off the list and getting stuff done. Take a couple of those sites and use them as portfolio pieces where I can show off, because I already know the customer needs on them and in those cases the customer doesn’t really worry about web presence, so it’s really a playground for me.

5. Blog once a week. Most days, I don’t know if anyone actually ever reads this, but if I want people to read it, I need to write more often. So I’m going to commit to at least one post a week so I can start writing enough to get attention and hopefully keep an audience. It’s my fault that this blog seems to languish at times, so I am the only one who can fix it.

Well, that’s a lot for one programmer this year, so it’s time to get cracking. See you soon!

Book Review – Jump Start CoffeeScript

I recently read Jump Start CoffeeScript by Earle Castledine from SitePoint books.  As usual, the disclaimer is that I received a copy of the book for free in return for the review. The “Jump Start” format seems to hold great promise. Take a scenario and affix the paradigm to it to gain a basic foundation with the highlighted technology. The flow of the book felt episodic in the delivery. In this season, if you will, we tackle CoffeeScript. CoffeeScript is one of a growing number of languages, like Google’s Dart or Microsoft’s TypeScript which try to give a developer a better Javascript when writing the code before it is compiled into Javascript in the delivery to the viewer.

Leaving aside the relative merits of this approach to coding. The book is a quick and comical read by an author who really knows the ins and outs of Javascript and CoffeeScript. In this “season”, the developer (Mr. Castledine and by extension you) has been roped into a seven day “Build-A-Game” competition and partnered with a team of less than diligent designers, artists, etc. So in the end, you’re on your own to build a web based game in 7 days. To make it either more entertaining, or more insane, you decide to code this in a language you’ve never used before. Again, I will leave the relative sanity of such a decision for another day and just follow the book.

Chapter 1 sets you in motion, describing what CoffeeScript is and getting you familiar with the fact that it is much more terse than Javascript and that it will compile, when finished, into Javascript. You are pointed to a few resources to ensure your .coffee files are able to be compiled into .js files and basic syntax structures. The next 5 chapters are 5 days worth of game development. Really, I think the book does a better job of teaching you the whats and hows of creating a browser based game than the CoffeeScript itself. You are exposed to a lot of code snippets and the author explains his thinking, but if you read the code from the book’s site, you see that you’re not getting all of the code to build the game in the book. You cover important pieces, but it’s assumed that you will compile the code and run it. Or at least that’s what it felt like to me. The final chapter is more a pat on the back for finishing the game and the book.his in a language you’ve never worked with before. Again, I will leave the issue of the wisdom of your choice aside and go with the book’s scenario.

I would recommend this book for someone who wants to build browser based games. This book taught me a lot about that. It gave me a few ideas for what and how to make some killer games. However, I will look for more sources on CoffeeScript, especially if they can explain why I want to do this in the first place.

Book Review – HTML5 Canvas, 2nd Edition

I recently read HTML5 Canvas, 2nd Edition by Steve Fulton and Jeff Fulton. As usual, the disclaimer is that I received a copy of the book for free in return for the review. In this case, I am very glad that I was able to read and review this book. I’m not a designer, I know enough about Illustrator and Photoshop to be dangerous, I’m a programmer by comfort level, so this book is really geared for me.

Most of the book is centered on Javascript and how to leverage that to create some very interesting experiences with the canvas element. A lot of the book is focused on game development, which with today’s programming trends, makes a lot of sense. However they also do an excellent job covering audio and video inside a canvas element as well. Overall, the book does an excellent job with building up from the absolute basics to some very advanced effects.

My only criticism of the book would be that there is, strangely, too much code. In many of the chapters, when they build on the code, you not only get the new additions ,but then they give you the entire code with the new additions. In one chapter that meant 16 different examples which were all built on each other. I am more accustomed to tech books which tell you to replace or insert the new code at a particular point and then move on. I know this is a style choice, but to me, it makes the book easier to get through.

However, that really is my only criticism. The book is well-written, explains the concepts thoroughly, and the ebook versions link you to the libraries they use throughout the programming to make it simpler for you to follow along. By the end, I felt like I understood the subject. I would certainly suggest that anyone reading this book have a good grasp of Javascript before they start. There is no unnecessary hand-holding to bring you up to speed. You’re expected to know the material, which is a positive to my mind, and then go farther with their information.  By the time you finish the book, you will go far indeed!!!

HTML5 Canvas, 2nd Edition is a good book and well worth the price if you want to have a lot of fun seeing what you can do with the canvas element.

Book Review – Instant HTML5 Presentations: How To

First off, the disclaimer, I have received a free copy of the book in exchange for the review. For most of my readers, this is well-known and established, but I like to also post a reminder so people are fully aware of my involvement. The book is Instant HTML5 Presentations: How To by Davi Ferreira.

Now that I have that out of the way, I will admit, I thought the book was interesting. It is, basically, an extended tutorial on using reveal.js, HTML5, and CSS to create a Single Page App (SPA) that functions as a presentation. Reveal.js is a very interesting library and he covers it in good depth. There is also supplemental code if you don’t want to type in the code from the book.

Mr. Ferreira steps through each portion of the process carefully and by the end of the book, 60 pages later, you should have a very good understanding of how to do this yourself. His subheadings in the book included being able to not only customize the presentation, but add notes. One idea I wish he would have elaborated a little further is setting the same presentation up on two monitors so you could use the speakers notes effectively. I have an idea on how to do it, but I think a little more explanation there would be beneficial to someone who wants to throw a presentation together, but isn’t a programmer naturally.

He also discusses in the book how to configure and use Sass to build your CSS faster, but he pays no attention to Less for people who either can’t or don’t use Ruby and Rails for the website. To me, the example on this would be creating a presentation and then putting it on a flash drive, using some WAMP stack to create a temporary server for the presentation, and then running the presentation from the flash drive. His only suggestion is to write CSS. Could you find a way to use Less since you’re likely not going to be using Ruby on someone else’s machine? Or, for something I may be doing later this month, I have a presentation due in a class and would love to use this as a way to deliver that presentation. I have a private web host or I could even upload the page and the CSS/JS here, either way, there is no backbone support for Sass.

Overall, I was impressed at how much I picked up in 60 pages. Mr. Ferreira is a good writer and doesn’t spend time adding in anything unnecessary. I would recommend this to anyone who has to create presentations and is looking for an alternative to PowerPoint which gives more flexibility. Go buy the book, it is wort the few dollars Packt is charging for it.


HTML5 Presentations How-to