Archive for December 2011
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 »
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 »
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 »
I read Clean Code by Robert Martin (Uncle Bob), and it was well worth it. In about 400 pages, Uncle Bob gives real motivation for writing clean code, explains, in careful detail what clean code means for all of the regular parts of a typical system, and then applies the principals discussed on several substantial chunks of real-life code.
Martin begins with motivation to strive to write clean code. That may seem unnecessary, but it serves several good purposes, even for those that were willing to buy a book entitled “Clean Code.” First of all, in Martin’s engaging style , you become excited about the possibility of writing better code. More importantly, in my view, is that rather than appealing to prideful notions of craftsmanship or art, he makes it clear that clean code is about useful, maintainable, flexible software. That it is about reducing the cost of software, and preventing, reducing, and fighting the software rot and decay that often surrounds us. Read the rest of this entry »
I love the command line, and it is my primary interface for version control. When using Subversion, I appreciate the advantages of TortoiseSVN and Subclipse, and I use them on particular occasions. But the speed and precision offered at the CLI are too much of an advantage for any SVN user to ignore.
Some of you are snickering already. “Subversion? It’s almost 2012, past time to move to Git or Mercurial.” Sure, and we’ve all left Java behind, and spend our days coding in Clojure or Scala. The fact is that if you don’t work at a startup, you are unlikely to actually use a DVCS at work, so Subversion is still relevant to more developers than any other version control system, and will be for the next five years, regardless of how you feel about that.
If you are one of those that uses Subversion, read on, and I’ll detail the commands that you should know and use regularly. Read the rest of this entry »