When trying to explain the difference between knowledge and experience, I heard someone jokingly mention a formula between the two. While there isn’t really a formula (at least as far as I know), his point is still important. When interviewing, knowledge, experience and skill all come into play. Let’s look at the differences.
- Questions: Do you know how to do what needs to be done? Do you know where to find out?
- Example: Do you know how to read in a file so you can go through it and look for data?
- Why it matters: While technology changes fast, the ability to find knowledge quickly, is an asset. And caching it in your head or knowing what to look for in the API makes things faster.
- Where it is on the resume: list of technologies. Which tends to be buzzwords over depth. After all, if you list “Spring”, you could have just heard of it or be an expert.
- Questions: Do you know how to identify what needs to be done?
- Example: Do you realize using scanner with a regular expression can make the problem trivial?
- Why it matters: Solving the right problem is what makes development part art (and not all science.)
- Where it is on the resume: Sometimes shows up in the form of on the job accomplishments, but often has to be determined by talking to the person.
- Questions: Have you done something similar? What worked? What didn’t?
- Example: Do you identify this is the wrong problem to be solving and a better one would be to ….?
- Why it matters: Who wants to repeat the mistakes of the past!
- Where it is on the resume: In some form, it is on the resume as number of years. However, this doesn’t show what the person actually learned. I’ve met people who have managed to learn almost nothing in 7-10 years.
Why this matters at an interview
An interviewer should be interested in all three of these. (Plus potential, fit and many other things.). Everyone has some experience. If you are entry level, it might have come from school or a toy project.
What do you think? Post here or in the coderanch jobs discussion forum.
In 2007, I wrote an article about ant dependency graphing in the JavaRanch Journal. I had cause to try it again to visualize the FIRST robotics complex build scripts. This time, I’m on Mac. At the moment, the MacOS version of Graphviz is in beta. This isn’t critical so giving it a try.
It was easy to install with a wizard to accept license, choose location, etc. Installation was successful and less than a minute.
The contenders from 2007
- Ant2Dot – hasn’t changed since 2007
- Visant – hasn’t changed since 2002
- Grand – hasn’t change since 2005
Since there haven’t been any updates, my analysis should still be the same. Since Grand generated the most useful output then, I went with it.
<project name="Grand" basedir="." default="grand">
<typedef resource="net/ggtools/grand/antlib.xml" classpath="grand-1.8.jar" />
<grand output="grand-build.dot" buildfile="/Users/nyjeanne/sunspotfrcsdk/build.xml" />
- File > Open – choose grand-build.dot
- As before, I can navigate around the file. This time the graph is ugly. But I was doing this because the build file was so large and complex it was hard to understand so I’m glad I visualized it.
- File > Export
Not sure why Graphiz is still in beta; it worked perfectly. Maybe for more complex operations there are problems?
This series of Ant builds has a really large number of targets and dependencies so it makes for a complicated graph. A snippet is at the top of this post. The full one is available online:
pdf (decent number of bytes – still tiny so you’ll want to soom in and scroll around)
gif (the file is a large – 1MB download – which is why I’m not including it in the main blog entry. It’s also tiny, so you’ll want to zoom in and scroll around)