Advert TechBookReport logo

Independent developer book reviews by and for practitioners

Modern Java Recipes

For those of us who have been coding in Java since before the days of Generics there are times when modern Java code looks like anything but Java. All computer languages evolve and adapt, but in the case of Java the rate of change in the last few years seems pretty intense — with Java 10 and 11 already waiting in the wings as of this writing. Given the scale of some of the changes in Java 8 and 9, you might be in need of some help in getting to grips with things. Which is where Ken Kousen's Modern Java Recipes steps in.

This is a book explicitly written to help experienced Java developers get to grips with some of the newer features of the language. It is definitely not the place for a beginning developer — you are expected to have a good grasp of the language and of the kinds of use-cases that the book presents as recipes. So if you need to learn Java, or your knowledge of the basics is pretty sketchy then you really need to be looking elsewhere.

The Recipes or Cookbook format is well-established in programming books. They can vary both by the depth of material included and by the degree of abstraction offered. Where some recipes manuals are very concrete in their examples, this one is fairly high level. For example recipes are mainly of the type 'Optional flatMap versus map' or 'Check sorting using reduce' rather than of the 'how to do x using y'. There's also a certain terseness to the text — which is no bad thing given that some recipes books weigh in at 700 or 800 pages (in contrast to the 300 pages here). [Continued]
Excel VBA Cell Comments

Whether you are working on a spreadsheet alone or with a group of colleagues, cell comments are a useful mechanism for flagging items to come back to later, or to ask questions or even just to draw someone else's attention. However, when you have large numbers of comments distributed across multiple sheets it can sometimes be difficult to keep track of things. Sometimes it would be useful to be able to see all the comments in one place — particularly if you have a mixture of comments which are hidden and shown. Luckily we can easily use VBA to write some code to list the cells, values and comments on a separate sheet. As an added bonus we'll add hyperlinks to make it easy to get back to the original cells for editing.

As an example here are two sheets with some comments on them, note that cell D11 on the Data sheet contains a comment which isn't displayed.

To make our example a bit more useful we're going to ignore all comments which aren't tagged with 'Review:' — so we want to ignore the comment in cell B13 on the Data sheet.

The starting place for our VBA code is the Comments collection — this contains the set of Comments for a given range. This has the advantage that we don't have to check each cell to see if it contains a comment — we can check the entire sheet to see if there's a comment on it.

In this code we're going to delete the content of the comments sheet each time the code runs, and we're assuming that a sheet called Comments already exists. The format we want is simple:

Programming : A Primer

The first thing to check when looking at an introductory programming book is who the target audience is. There is a world of difference in a book designed for someone wanting to study computer science or for a career in development, compared to a book pitched at the hobbyist. And is the book really about teaching programming or is it about teaching a specific language? These will shape the resulting book - and, more importantly, whether the book gives you what you're looking. In this case the book is subtitle 'Coding for Beginners' — and the back cover suggests that this is aimed at anyone who wants to learn to code, from beginning computer science students onwards. If you think about it that's pretty ambitious for a slim little book like this…

The opening chapter attempts to set the scene by introducing computer programming and some simple ideas — explaining what a program is, what a programming language is and so on. But to be honest it's not a great start — the explanations are a bit laboured and frankly a bit on the simplistic side. For example programming languages are described as being either compiled or interpreted — with compiled languages having the source code turned into a separate executable file whereas for interpreted languages the interpreter translates the source code at execution time. But why? There's no discussion why this is so, nor what the advantages are of one over the other. [Continued]
Modern PHP

All computer languages evolve over time or shrivel up and survive as museum pieces of interest only to academics, historians and a few die-hard fans. The funny thing is that there are some languages that have evolved in directions that few would have been able to predict. Two very good examples are JavaScript and PHP, which have both evolved and matured and have established themselves as central players in the modern programming language ecosystem. Who could have imagined that the collection of CGI scripts that Rasmus Lerdorf christened Personal Home Page would end up evolving into the current PHP platform that powers a big chunk of the web, including Facebook.

For those of us who have not looked at PHP for some time the changes in the language are quite significant, and are matched by a maturation in the broader platform and practices that have been adopted by the PHP community. 'Modern PHP' is a book that brings the reader up to speed on these changes - going far beyond purely language constructs to look at standards, development environments, best practices, testing, deployment, profiling, alternative virtual machines and more.

The starting point though is the language itself. The first quick chapter gives a whistle-stop historical run through and then it's on to the second chapter devoted to the language changes. Topics include name spaces, interfaces, traits, generators and closures. This is where you get to see that PHP has indeed kept up with other modern languages - though in a later section of the book you learn about the Hack language which takes PHP further towards languages such as Java and C#.[Continued]
Learn Python The Hard Way

OK, I have to admit it, I just don't get it. Zed Shaw's 'Hard Way' series of books have sold in huge numbers and continue to do so. Aiming to lead the non-programmer into the 'terrifyingly beautiful world of computers and code', these books are pitched at the absolute beginner with no previous knowledge of programming in any language. There is actually a pretty crowded market of books that are pitched at that same audience, so what makes these books different and, more importantly, does this one succeed?

Where most beginner books lure the reader into promises of easy victory - learn X in 5 minutes, 5 hours, 5 days etc - these books sound more honest. Personally I find that approach more appealing than empty promises of an easy road to expertise. But where I don't get it is when we look at what that 'hard way' really entails. It's hard not because the material is difficult or theoretical, but because it's a hard slog of learning by rote. Yep, this is programming as taught by a drill sergeant. You do as you're told, you don't ask too many questions and you keep at it. Again. And Again.

The simple Python scripts that are developed have to be typed in by hand. There's no use here for fancy programming tools like an integrated development environment, it's text editor and command line all the way. That I can live with, it's the having to type in everything again and again. The idea is that cut and paste makes you lazy, it stops things sinking in, whereas manual repetition will help things stick. [Continued]
Coming Soon...
Python Playground and more..
Excel High School offers accredited Online High School courses for students nationwide.
Excel/VBA Tutorials
Web TechBookReport

Other recent reviews

Site design by viper69 productions-All contents copyright of authors. No copying for commercial use allowed. Site © 1999 - 2017.