Friday, December 03, 2010

Knowing specific frameworks

Ten years ago, not many frameworks existed in Java, so the average number of third-party libraries included in a project were 1-5, but today, the average has grown to around 30+ like Spring, Hibernate, JUnit, Struts, Commons, TestNG, Google Guice, GWT, apache commons family et al. These frameworks change rapidly and it is impossible to know all these frameworks and it is also impossible to know some frameworks completely. The biggest detrimental this is causing is in the hiring process. Managers pass over qualified resumes looking for the names of frameworks only to land on someone less qualified who decided to put a particular framework on their resume. These folks are not necessarily technology experts so they try to bring in a candidate that has the exact blend of frameworks that the company is using. This does tend to exclude perfectly qualified candidates with real talent.
Ten years ago, having just the knowledge of a language or knowing one object-oriented language, could get you a job doing Java or C++. Now, you have to learn and have experience with every framework imaginable just to get your resume to a hiring manager. It doesn't matter what language/framework a developer knows, they are all similar. A talented developer has an interpreter and compiler in his head and thinks in pseudo-code anyway. Applying that to a language or framework is just a matter of figuring out the syntax...and that is the easy part. The talented developer just assimilates the differences.

Most jobs require a combination of 1) wisdom/sound judgment, and 2) knowledge/education/training. Of the two, the second is much easier to pick up on the job.