For those who search a good book to start programming C# I would like to suggest you this book. It covers all important parts of the language in a comprehensive way with good example how to use features of C#.
With good experience in Java it is really easy to learn C# and after reading this book my last gaps between java and c# were closed.
The book is written by Ian Griffiths, Matthew Adams and Jesse Liberty published by O’Reilly Media Inc.
If you want to learn a new program language because of seeing new concepts or search for a new way to solve a problem which is difficult to implement in the language you are currently using. Give Scala a try!
t is a modern language which combines the best concepts of many programing languages and paradigms. You can program either object oriented or functional just as you wish or its better for solving your problem. The language is very extensible and support you with mechanisms to add new functionality in libraries and you can use them like built-in constructs of the language. That make the language scalable and now you can guess where the name is coming from.
Before I enumerate all features of scala take a look at the homepage or read the book “Programming in Scala”. It is very good start into scala which covers all concepts step by step. You should have already some experience in object oriented programming languages. Java would be great because you can skip some parts of the book. Otherwise you have to read a few pages more which is not really a problem.
Take a look a scala if you have some time. You will not regret it. (Beware that you will ask yourself the question “why it is so complicated to implement…?” if you write code in an other language than Scala).
My favorite book so far about concurrency in java. It is focused to the topic of multithreaded java application. Beginning with the fundamentals of concurrency in java to advanced topics like custom synchronizers and the java memory model everything is covered.
You should have some experience in java programming before you start reading this book. Chapters like “how to install your IDE” or “setting up my first hello world application” you will not find. But that is not the purpose of this book.
In the first paragraph I wrote everything is covered. Thats true for all aspects of programming multithreaded applications. Many books put into this topic everything which has to do with parallel execution of code on one or more hosts and contain a chapter about Remote Method Invocation (RMI) and Webservices. Both you will not find in this book of Brain Goetz.
In my opinion a good choice to keep the focus small and concentrate on multithreading and all related problems like Liveness and Performance (and how to solve or improve them).
If you have an account for Safari Books you can read this book online. Otherwise have a visit at you local library and take a old style paper version with the ultimate feature that it can be read outdoor while enjoying the first warm beams of the spring sun…
I found a treasure in my book shelf today. It is only a small book but it was one of the first books I bought as I made my first experiences in computer science.
It was printed in 1990 and all laws are still applicable. You only have to replace the words floppy disk by usb stick or modem by DSL. Technology may change but the problems are still the same. In my opinion a must have read book for everyone who work with computer. After reading you know, you are not alone…
During a visit at the library I found a interesting looking book. So I decided to take it with me. The title was promising because it claimed to cover professional topics.
After a deep look inside the book it is in my opinion an overview about the most common features from Java. The standard topics of course of the language like control structures, classes and how to inherit. A few words about nearly all common parts of Java like collections, exceptions, assertions with some examples. Even how to install Java is mentioned on a few pages.
If you want to get a very fast overview of the Java language without any “disturbing” details or deeper information you can read it. If you want to get a more professional introduction you should take another source of information.
During the christmas holiday I read a book about java parallel programming from Rainer Oechsle.
The book is a good introduction to the topic written which covers the main aspects. It is not a complete reference of all techniques of java but it gives you many ideas what you can do with it and where you have to research for further information. It also explain with many good examples why one way to solve a problem is good or bad and what you should keep in mind to get a good and stable application.
It covers the basic synchronize mechanism of java, advanced techniques new in Version 5, Graphical User Interfaces, distributed application with sockets, RMI and Servlets and JSP.
For all who want to do parallel programming in java this book is a good start in my opinion.
Everybody who was involved in planing and executing a project will read this book and got in mind that everything there is described is true and happened once before in a own project or in project you have heard of. So every chapter brings a little (or bigger) smile on the readers face.
For everybody who never had been attended to a project it is a good lecture before doing all the mistakes are done. Its very interesting to see that in the last centuries so many progress took place in information technology but the same mistakes are made in every generation of developers. Its no matter of operation systems or programming languages. The problem is eveytime the human who tries to handle it and fall into the same pit as many fall before.
When projects become more complex the message of the book is even more important then 25years ago. Today even relative small projects tend to be big enough that a single person is not able to do it alone. So one of the advises from the book Communicate in as many way as possible is one good example how to prevent problems. No technical device can replace the communication between humans only help to make it easier. If somebody do not want to communicate all technology we have is useless…
A good abstract can be found on Wikipedia about the content of the book together with information how to get it. Some information of the Author Frederick P. Brooks, Jr. can be found on his homepage.