Book review: Effective Java by Joshua Bloch
If you write Java as part of you job, you need to read this book. If you are learning Java, and hope to write Java as part of a future job, you need to read this book. So for many developers, the question of whether you should read this book is answered very quickly. The most important questions that remain are when to read Effective Java, and why to read Effective Java.
This is not a book to read to learn Java, Bloch assumes throughout that you have a familiarity with the language. It is also not a book to help you take the next steps after learning core Java, such as learning popular APIs such as JDBC, Java EE, or Swing. Effective Java is unlikely to equip you to accomplish any programmatic goal in Java that you were unable to code before reading it.
If you are overly pragmatic, it may seem that this book meets no real need. But if you have learned several languages, the purpose of this book, and the importance of books like this, is obvious. Read the rest of this entry »
Jeff Atwood does more good work
Jeff Atwood announced that he is leaving Stack Overflow / Stack Exchange after this month in order to have more time for the more important, world-changing work of caring for his young and growing family.
The Internet is full of praise for men whose professional successes come at a terrible cost to their wives, and to their children. Meanwhile we wring our hands at the costs of fatherlessness in our nation. Let us take our hats off to Jeff for his manly choice to do the humble, necessary work that does not lead to public praise. Read the rest of this entry »
Using find and grep.
Back in August of last year, for one of the first posts on my brand-new blog, I put up the slides from a lunch-time presentation that I gave on find, grep, sed, and awk. I put it up so that it would be available as reference to those that attended the talk, even though the slides weren’t designed for stand-alone use, and slides make a poor Internet reference.
Given the surprising popularity of that post, it seemed reasonable to repackage the information in a format that is more fitting for a blog post.
find and grep are incredibly powerful. But many never learn a fraction of what they can do. Did you know that grep can print the surrounding lines? Or that you can search for files based on permissions? Here’s a collection of examples that might expand your notion of what can be done with find and grep.
Choose your frontier wisely.
Living with cutting edge technologies is life on the frontier. Exciting new opportunities abound, but so do the challenges and dangers. The frontier is exciting because many mundane problems have been left behind, but it isn’t long until you miss the the boring benefits of community, the doctors, the policemen, the grocers, the plumbers, the libraries, and the companionship. Read the rest of this entry »
Google – not an advertising company
You’ve seen this meme, right? It usually goes something like this:
Google, the
searchadvertising giant …
Can we stop spreading this foolishness? Read the rest of this entry »
Book review: The Little Schemer by Daniel Friedman
This is an unusual book. The first thing to know is that it does not contain chapters that are made up of paragraphs. It is a list of problems. The only way to gain anything from this book is to do the problems. Sure you may look at the first few and think you get the idea, and feel like you are doing fine just by reading the problems and solutions and thinking about them. But it won’t be long until you realize that you have no idea what is going on, and worse, you won’t know where you lost the trail.
So don’t be lazy, if you are going to read this book, set up an interpreter, and start coding.
The second thing to know about this book is that it does not attempt to teach you the Scheme programming language. Which is good news, because you don’t really want to be a Scheme programmer. What this book does teach, however, is of interest to every programmer. Read the rest of this entry »
Should you get certified? Should anyone?
Technology certification exams have a bad reputation. You don’t have to go far to find someone deriding the idea that a multiple choice test could be useful in distinguishing programming skill. Some say that they are a waste of time and a marketing scam. Others even claim that they distinguish you in the wrong way, and that any certifications that you have earned should be removed from your resume, as they will actually hurt your chances of getting the job you want.
I disagree, and think that there is a place for certifications, but there is some confusion about what you can and cannot get out of them, and when they may be beneficial to your career. Read the rest of this entry »
Five things you DON’T need to get your first programming job
How do you get your first programming job? In any field there is the catch-22 of needing experience to get a job and needing a job to get experience. In software development there is good news: You can get experience without a job.
The bad news is that figuring out what experience to get can be paralyzing. Read the job ads and you find that experience with frameworks like Spring, Struts, and Hibernate are required for most Java jobs. Read forums and blogs and you find that the cool kids that get the startup jobs all have their projects available on GitHub or BitBucket. Some say that mobile jobs are hot. Others say that their are no decent jobs in Java or .NET, that you should be investing in Ruby, Clojure, Scala, and Node.js.
What if you don’t know where to begin? Let’s reduce the pressure by considering a list of things that you don’t need to have before getting your first programming job. Read the rest of this entry »
My first five Lucene mistakes

I’ve been learning my way around Lucene, the popular Java open source information retrieval software library, lately. Which is to say, I’ve been making mistakes with Lucene.
Much of the time spent with any new technology is in making mistakes, discovering mistakes, and correcting mistakes. An inexperienced programmer would view these mistakes as impediments to progress. It’s far more sensible, and more encouraging, to view these mistakes as the evidence of progress.
With that in mind, I’ll have no shame in sharing my newbie Lucene blunders, with hopes of helping someone that hasn’t yet had the opportunity to fail in all of these ways. Read the rest of this entry »
Be the worst
with 4 comments
You know you aren’t the best programmer out there. You haven’t created an open source project in your free time. You probably haven’t even contributed a patch. You don’t go to all of the hip conferences to learn about the latest “latest and greatest” technologies. You don’t give talks at the local user group, and you don’t have a widely read blog.
But you aren’t the worst programmer either. You try to do your work well and you read a few technical books a year. You attend a user group or two when it fits in your schedule. There are a few technologies that you understand fairly well, and others on your team look to you for help in your areas of relative expertise.
The problem is, you are in a rut. You aren’t gaining skills as quickly as you were last year. You aren’t exactly thrilled about your current job, but not so dissatisfied that you want to take the chance of trading your known problems for unknown problems. What to do?
Read the rest of this entry »
Written by Eric Wilson
February 10, 2012 at 5:50 am
Posted in commentary
Tagged with career, craftmanship