Categories
Book Review

WPF 4.5 Unleashed – Book Review

WPF 4.5 Unleashed – by Adam Nathan – covers WPF, the desktop system that was preferred by Microsoft till Windows Store Apps/UWP.

Unfortunately, while these are close the apps have several annoying limitations compared to WPF.

I really enjoyed reading the book and learning about WPF, which has some fantastic features. It is sad that it seems to have been abandoned by MS in favor of UWP. But apps stores do have some conceptual advantages, and a lot of people that didn't consider it convenient to buy PC apps directly from seller prefer to buy MS (at least in theory – the older Mac app store had lot of developers dropping out because of problems, including the inflexibility of upgrade systems).

It'd be nice if UWP was more universal, and followed .NET core into more platforms. I'm not holding my breath for this though – it'd be a major project. I guess Xamarin.Forms and others will have to do for now.

Overall, I'd strongly recommend the book for people who want to learn about WPF. But keep in mind that some of it (not all as UWP is somewhat close) may be a waste of time…

Categories
Book Review

Fundamentals of Game Design – Book Review

Fundamentals of Game Design (3rd Edition) – by Ernest Adams – is a great book that covers a lot of what you need to know do design games. Note that game design is not about art or programming – it is mostly about what makes a game playable.

The book covers the many areas of design, including how to come up with the idea, how to develop it into something fun, character and level design, and even how to monetize your game.

I really enjoyed the book, and whenever I play a game now I keep noticing the small details of how it was designed – and how things contribute to the fun or harm it.

After every chapter, there is a section with questions for you to think about what was covered in the chapter and how it apply to a specific game – and also as homework on academic situations. There is also another set of questions that you can use as focus on your projects.

Overall, I loved it and feel it is a great read to anyone interested in game design.

There is also a set of very short books in specific genres – such as shooters, puzzle games, strategy, etc. I have read a couple of them already, and I recommend them – they are a little expensive for the amount of content, though (I am reading them on Safari, myself, so they were free). A couple are included with the book registration at the publisher's site – Construction and Strategy.

Categories
Book Review

LinkedIn in 30 minutes – Book Review

LinkedIn in 30 minutes, by Angela Rose, is an excellent short introduction to LinkedIn.

It has plenty of useful tips, even if you already has some experience with the network.

For great profiles I'd recommend the LinkedIn Strategy course, but this covers some of the same material, just in much less detail.

Categories
Book Review

Twitter in 30 minutes – Book Review

I just read Twitter in 30 minutes – by Ian Lamont. It did take around 30 minutes – even while going to Twitter to check things out.

I feel that the book will be almost nearly pointless if you already use Twitter (which I'd guess means you wouldn't be the target of it).

Nevertheless, I still learned a few things I didn't know.

 

Categories
Book Review

Agile Principles, Patterns and Practice in C# – Book Review

Agile Principles, Patterns and Practice in C#, by Robert C. Martin and Micah Martin, covers a number of agile practices in C#.

The book is a little old by now (2006), but while it does feel dated at points, that doesn't take away the overall quality.

I particularly liked how much time was spent going through the analysis and coding of a large practical example (a payroll) – including DB persistence.

 

Categories
Book Review

Networking for Nerds – Book Review

Networking For Nerds: Find, Access and Land Hidden Game-Changing Career Opportunities Everywhere, by Alaina G. Levine, covers the many ways in that you should always be networking to advance your career.

Some of the advice is targeted towards academics, but most should apply to everyone.

Some of the areas covered are how to network everywhere, in specific settings, how to network online and how to make your own career opportunities.

One piece of advice that I felt was missing is that author suggested that you Google your name over time to keep track of what your name is associated with – but no mention of Google Alerts. This is a minor detail, though.

Overall, somewhat useful. I feel it is a little pricy for the size (e-book version, at least), but I got it from Safari.

Related:

Linkedin Strategy Course

Categories
Book Review

Essential C# 6.0 – Book Review

Essential C# 6.0, by Eric Lippert and Mark Michaelis – cover the C# language up to the 6.0 update of last year.

Coverage and examples are pretty good. One thing I liked is that any extensions to the original language are clearly marked with a version number. If you get the book to update your knowledge, there is also a nice index for each version.

Given how little changed in version 6.0, it'd be silly to buy the book though – there are plenty of blog posts covering this. If you get it for free (maybe from Safari or something similar at work), then it might be a good idea.

Overall, pretty good coverage, although I'd recommend C# in a Nutshell instead – it felt a little more complete and had more developed examples.

Categories
Book Review

Hello, Startup – Book Review

Hello, Startup: A Programmer's Guide to Building Product, Technologies, and Teams – By Yevgeniy Brikman – is a great view into just how (and if!) you should create your startup or join one.

The coverage goes to some weird but arguably good places along the way (for example, talking about clean code), but even when it does, it is still good advice.

What the book covers is:

  • Why Startups – why would you want to create a startup, or work on one – and very importantly, why you might want not to.
  • How to come with ideas, covering the classics such as pain points (which has been advice on shareware forums for literally decades), idea journals, the now common “your idea is not worth much compared to execution” and the very important how to validate your idea – as your idea is pretty likely to not be as good as you think and you probably want to find out now, not after years of development.
  • Design, including the classics – personas, usability testing, visual design.
  • Picking a tech stack – surprisingly tech agnostic, and full of interesting suggestions on how to decide what tech to use. Pick mature ones instead of the flavor of the month. and it is not as important as it seems.
  • Clean Code – already mentioned as the relatively weird chapter. The advice is good, and cover the general stuff you'd see on Code Complete and The Pragmatic Programmer, such as good practices, refactoring, etc.
  • Scalability – review of several practices that you should probably follow – such as Test-Driven Development, design reviews and code reviews.
  • Software Delivery – again, several good practices – source control, code reviews, continuous integration and automated deployment.
  • Startup culture – how to define your companies culture, and what it means. Even if you don't read the book, check out the Netflix culture slide deck – it is pretty long but well worth reading.
  • Getting a job at a Startup/Hiring for your startup – interviews, asking good questions, and the best practices in the area.

The book has a ton of memorable quotes from other material – I didn't have a chance to go through it for my notes it, but I'll probably come back here and update this post when I do.

There are also plenty of resources on the book site.

Overall, I strongly recommend anyone interested in creating a startup to read this book. It was pretty great.

Related books/courses:

Adaptive Code in C#  – great review of good development practices and keeping your code flexible, although some examples are a little exaggerated

The Pragmatic Programmer – great, goes into the specific programming practices

App Making – more specific to apps, but also covers how to get ideas for apps, design advice and how to test your ideas

 

Categories
Book Review

Adaptive Code in C# – Book Review

I have just finished reading Adaptive Code via C#: Agile coding with design patterns and SOLID principles – by Gary McLean Hall.

It covers ways and patterns to get more flexibility out of your code – so it can adapt better with time and requirement changes, have interchangeable components instead of awful dependencies, and so that it can actually be unit tested properly.

It also has a chapter on Scrum (the development methodology), which isn't that relevant to the theme, but still sort of applies as a general practice which allows for your software to adaptable.

It ends with a ASP.NET MVC example, which I also found useful.

I've read this as an e-book on Safari Books Online's iPad app, and the code layout proved problematic on many occasions (the end of no-so-long lines would be clipped). In the very end of the book (yeah, that is a really useful spot) there is a warning that suggests reading the book in landscape mode with the smaller font available – which I would say is pretty lame. (There is a graphical link, but the listing sometimes wasn't the exact version of the main text, and would sometimes return to beginning of the chapter instead of the right spot)  I have seen similar things in other books in Safari, so I don't know who is to blame for the problem, but still annoying.

Overall, very nice, a quite pleasant read and very instructive.

Categories
Book Review

The Pragmatic Programmer – Book Review

The Pragmatic Programmer – by David Thomas is a bit of a classic (1999).

I read it way back, when it was still somewhat new, and decided to re-read when I subscribed to SafariBooksOnline (my review of the service).

It is still pretty good still after all those years. While I do use most of the practices they suggest on much of my work, there were plenty of useful tips and reminders.

And if you haven't read it, it is very much worth for the dozens of practices you might not be using yet. It does feel a little dated, and many of the practices that were uncommon at the time are very common today. Some bits are almost funny, such as the lack of Refactoring tools outside Smalltalk, or the suggestion of using USENET private groups for communication, but these are the exception.

Overall, strongly recommended for anyone that want to be a better programmer.