I’ve been saving a lot of links in my Bloglines account. It’s time to share some of the best reads of the last couple of weeks. Enjoy.
Learning
This is an article from the Pragmatic Programmers that is dear to me. It is about learning. A great article.[Hunt and Thomas] Designing Learning
(There is also a very good article by the authors, Cook Until Done, which explains why software development isn’t as easy as it seems.)
Java
Sun changed its naming conventions with the upcoming releases of Java.[Hamilton] Goodbye “J2SE”, Hello “Java SE”
Spring
Spring is in full swing lately. Development swing, that is. Spring framework is gaining popularity. Why? Because it is flexible, because it lets you do J2EE-type services without the J2EE weight.[Tate] Five Things I Love About Spring
SOA
There is a lot of ambiguity when you hear about Service Oriented Architectures. Some people mean Web Services, some people mean component-based architecture, etc. There is not a uniform definition of SOA. Martin Fowler agrees. He also shares his views on SOA.[Fowler] Service Oriented Ambiguity
Managing Time
Johanna Rothman writes up a very good article on managing your time. If you’re used to creating to-do lists, get used to not-to-do lists, she argues. Very good article.[Rothman] What痴 on Your Not-to-do List?
Also, if you are involved in creating schedules, the Schedule Games series by Rothman is just great. Jeff Atwood created a list of the author’s posts on the subject.[Rothman] Schedule Games
Tools
Eclipse 3.1 is out. Download it here.
JDeveloper is now FREE! I think that’s big news. I hear that it is going to put pressure on other App Servers providers (IBM, BEA), to release their versions for free. That would be great. I downloaded JDeveloper – it looks sleek, and feels quick. I have not tried anything on it yet, but it looks good so far.
There’s been a lot of talk about AJAX (Asynchronous JavaScript and XML). Mainly because of what Google is doing with it. But AJAX, in my opinion, will be a key part of web development in the future. If you’re involved in web development, you will have to learn it (this year or next). I actually wasn’t sure what the fuss is all about. Until I read this excellent, easy-to-read article, Asynchronous JavaScript and XML (AJAX) with Java 2 Enterprise Edition.
How does AJAX work? You make an asynchronous (non-waiting) call from JavaScript to the server without submitting a page, the request is processed, and the result is returned to a JavaScript function as XML. Nice, heh? And simple.
AJAX is a breakthrough in web development. Hopefully, it will become a standard soon. (Go to maps.google.com to see it in action.)
I’ve been reading some really good articles lately. Below, you’ll find the best ones.
Readings of the Month
J2EE Project Dangers by Humphrey Sheil
If you are involved in J2EE development (seems like everybody is, lately), this article is a must read. It’s well written and very practical. And the article makes me think about today’s IT marketplace. Even though a lot of people call themselves J2EE developers, very few understand the whole architecture. Very few see the whole picture. What comes with it, a great possibility to mess up. It’s almost safe to say that if you’re using J2EE, you are doing something wrong (unless you have a true J2EE guru). I have to admit, I know several different J2EE technologies, but I’m still not seeing the whole picture (different beans, expertise in app servers, and more). J2EE is a beast. But in a year or two, I’ll have it conquered.
J2EE in PracticeContinuing the J2EE theme. This article, actually a chapter from this book, asks some important questions (answered in different chapters in the book) about J2EE development. If you consider yourself a J2EE guru, you should be able to answer most of them. Challenge yourself. If you feel that you need more training, read the rest of the chapters from the book. I will try to. (I would definitely like to see the book published, though, as I I’m having hard time finding a good, practical J2EE book.)
Better Software Magazine — April 2005 issue
This is a great issue of Better Software magazine. I marked three of the articles — It Takes Two to Tango, Injecting Testability Into Your Designs, and The Pleasure of Finding Things Out — as excellent and two other as very good. If you go to BetterSoftware.com and request a subscription, they give you three issues for free (that’s what I did). The articles are short and very practical. If the quality of the articles will be that high every issue, I might have to pay to extend my subscription.
Ever since I read Goals by Brian Tracy, I’ve been writing my 10-15 goals every night as the last thing before I go to sleep. I am going to share the goals that pertain to becoming a software craftsman so you get a sense of where I am going.
First, I’d like to know J2EE by heart by the end of 2005. That means different J2EE technologies, as well as J2EE application servers (we use WebSphere now at work). I’m keeping my eye on EJB 3.0 and J2EE 5.0 as I think they will be important. (J2EE 5.0 will contain JavaServer Faces and EJB 3.0, among other things, of course.) How? Mostly by practicing. And also by reading.
Second, I’d like to have all of the important design patterns grasped by the end of 2005. How am I going to achieve that? Mostly by reading books. I’ve read Agile Software Development, Principles, Patterns, and Practices (which I recommend), J2EE Core Patterns (also a great book). I’m reading (or referencing) the famous GoF book — Design Patterns. I recently purchased Refactoring to Patterns. What else? I’m reading different articles. Also, when I’m coding, I’m thinking about different patterns. I think I’m on track here.
Third, I’d like to be a well-rounded software engineer by the end of 2005. I’m thinking about becoming certified by IEEE — Certified Software Development Professional (CSDP). I’m planning to read books on requirements, design, testing, and architecture. I might pick a book on RUP.
Fourth, I’d like to become a good software architect by the end of 2006. I plan on reading couple architecture books. I might attend a conference or two. I’m not yet too sure what I need to do, and this goal might take me well beyond 2006, but I know I’d like to become an effective software architect.
What else? I’d like to become more visible in the software field in the next couple of years. That means writing magazine articles, maybe teaching a class. Or simply put, getting more involved in the field.
Am I too aggressive? Maybe, but that does not mean I cannot re-adjust the dates. As I keep writing the goals, they also might change, but that’s where I stand now. One thing is for sure, I’m totally commited to becoming better every year. I am committed to achieve my goals. I work towards them every day.
Do you get notified of every email you receive? You don’t find that distracting? I find it very distracting. I remember receiving emails every couple of minutes at my old job. I finally had to turn off the notification alerts because I could not concentrate on work. At my current job, we use Lotus Notes and though the amount of email is great, I don’t get notifications like you do in Outlook. That helps a lot.
I agree with Jeff Atwood completely:
If you want more productivity: turn off automatic email notification. Concentrate on the thing you’re doing and finish it. Then, check your email.
Do you program according to specs laid out by designers/architects? If so, you’re a programmer. On the other hand, if you design, if you talk to customers, if you elecit requirements and do other areas of software development, you’re a developer. I like to call them software engineers: you engineer the software from start to finish.
Eric Snow from SourceGear is looking for a developer. Read his explanation of what a developer is and what a programmer is. I like the way he writes. Plus, it’s good stuff.
What’s happening in the software engineering world? Here are two articles that are worth reading.
Gary Pollice looks at changes and progress in software engineering over the past two decades.
Improve the quality of your J2EE-based projects
Jimmy Jarret advises developers on tasks they need to perform to ensure their system’s quality. He basically explains different plug-ins that are available for Eclipse that can be used to ensure quality. If you’re using Eclipse, read it.
Would you want to see the most interesting software-engineering stuff that I came across each month? What do I mean by “stuff?” Books, articles, events, and anything related to software engineering that was worth my time. I’m going to try to do that in this category.
Interesting Reads – or Readings of the Month!
Reading About Design PatternsBy Allen Holub
Allen discusses two recent book about patterns: Refactoring to Patterns, and his own, Holub on Patterns. He goes on to say that a good programmer knows patterns. I agree. I have both books on my must-read list and I ordered Holub on Patterns.
Out of Site, Out of a JobBy Larry O’Brien
Do you want to make sure that your job is not outsourced? Read this article and follow his advice.
Best Essays of 2004
Joel Spolsky is coming up with a book composed of best essays that are listed on the forum he created. Take a look. Dive into some of them. I enjoyed reading some of the essays by Eric Sink. I commented on the ones I liked.
The Pitfalls of Outsourcing Programmersby Michael Bean
There’s been a lot of talk about outsourcing. Some are against it. Some are for it. In this article, Mike tells you when you should not outsource. This is one of the best articles about outsourcing I’ve read. I totally agree with this main point: If you outsource your core, you lose competitive advantage. See the discussion as well.
Java 5by Andy Grant
I’ve read several introductory articles about the new features of Java 5.0. This one is the best. It is simple. It shows you examples. It is written well. Nice job, Andy.
How do you make your revisions of sentences, paragraphs, ideas easier to understand? Brian Marick has several tips on revision. I think they’re very good.