How I became a Java expert
I was teaching myself C out of the Kernighan and Ritchie book (second edition, so you know I’m a poseur johnny-come-lately) when I tried to pick up Java. This was 1996 and my head was filled with «what if» scenarios that are still as absurd today as they were then. You know, like «what if all applications were OpenDoc components written in Java?» Which is second only to «why can’t we all just get along?» in it’s naïveté. But anyhow, I had nothing better to do than buy computer books and pretend that someday I’d have some use for the knowledge they contained.
Whenever I try to learn a new language, I always try a few simple tasks to familiarize myself with the syntax and the ins and outs of the language. Most of these I’ve hung on to from being taught Fortran when I was ten years old, so they’re all silly algorithms for determining pi or bubblesorting lists, stuff like that.
I did my few exercises and promptly forgot everything I knew about Java, as I had work to do in Perl and TCL. To this day I have not coded a single line of Java or C for pay.
In 1996 I began to work for CNET and I was surrounded by other graphic designers-turned-programmers, most of whom had actually been making things happen in Java for, well, weeks at least. I thought about trying to pick up Java again at that time, but there seemed to be enough people already doing Java and meanwhile I was plenty busy being tutored in JavaScript which seemed to me to be much more handy on the client side of Webdev.
Understand that at that time, Java applets were being used the way that FutureSplash is used now. We were years away of thinking in terms of JSP and NetBeans and servlets. Java was the way a few technically-ambitious designers were making dancing cartoon characters and mini video games for Web pages. Go back to magazine articles from 1996 and 1997 about Java and they’re all about how to use the AWT libraries for making fancy graphical displays.
Needless to say, I never touched the AWT libraries. I wasn’t a part of that wave and I had my own problems to deal with.
One day when we’d all been crunching hard to get a demo out to impress Shelby and Halsey enough to get the go-ahead and resources to build computers.com, there was a status meeting to show where we all were in the process. One of the developers from technology (who had jumped over from design) showed off an interface for comparing aspects of consumer electronic equipment. The graph he had up had errors, which he pointed out preemptively. It was just proof-of-concept at that stage and he was going to have to do some work to develop some logic to prevent rounding errors. He didn’t have any way to round a number off to the nearest decimal and he’d have to work something up.
To a programmer, that will sound pathetic. Anyone who lives and breathes code will make a swaggering claim to be able to handle numerical rounding in hand-coded assembler while blindfolded, but of course, why would anyone bother? There isn’t a language in existence that doesn’t already have these routines. But keep in mind what I’ve already referred to about how Java was being used almost exclusively for graphics presentation on the client-side, and that code was all being put together by people whose introduction to programming was sudden immersion in the AWT libraries without any introduction to programming methodology or computer science theory. So cut the guy in my anecdote a little slack. He was doing a great job of keeping up with a rapidly-changing field and displaying tremendous adaptability.
But I opened my big mouth and, in front of everyone else, pointed to the core libraries chart that he had on his office wall, and suggested that he look at round() in the Math. library and that what he was looking for was built in to the language. Of course, I knew nothing about Java, save for my experience calculating the value of pi a year earlier. But there I was correcting the company’s foremost Java expert on the capabilities of the language and telling him what to do. In front of upper management.
If I hadn’t done so tactfully and helpfully, I would have been killed, and I’d have deserved it. Instead I got something worse: an undeserved reputation for knowing what the hell I was talking about.
Soon people I’d never met were showing up at my desk asking me Java questions. And here’s the kicker. When someone accepts that another is knowledgeable, the words, I don’t know tend to increase the impression of competence. If that one is comfortable enough in his knowledge of the subject that he’s willing to admit he doesn’t have the answer, then he must really know what something. On an emotional level, that makes sense, and when all you’ve got is a single point of reference, the emotional level rules.
I didn’t stay at CNET very long, although I guess in 1997 dotcom terms, nine months is pretty good. I think I learned a lot from my time there, both in terms of what works and what doesn’t. Some of that stuff takes some perspective and distance to see.
I’ve been trying to learn Java again. I’m a little overentrenched in Perl by now, and no matter how much I’ve been trying to use Perl’s object-oriented methodologies, there’s still something inherently procedural about it. Even with a Java class I took at Sun back in 1998 and some occasional dabbling in the meantime, I’m still having some culture shock jumping in again this time. I can look back now and smile at having been, for a few minutes, an accidental «expert.»
I’ve still never learned anything about the AWT libraries.
When someone accepts that
[quote]When someone accepts that another is knowledgeable, the words, “I don’t know” tend to increase the impression of competence. If that one is comfortable enough in his knowledge of the subject that he’s willing to admit he doesn’t have the answer, then he must really know what something.[/quote]
People know that one of the hallmarks of incompetence is an inability to recognize incompetence in oneself. Therefore, I guess they think the reverse must be true.
This is one of my favorite articles:
http://www.apa.org/journals/psp/psp7761121.html
We’ve all encountered those too stupid to realize that they are stupid.
In any sampling of people, most of them will think that they are above average intelligence or competence within the sampling.
However, in any sampling of people, 50% of them will be below average intelligence or competence.
Here’s another one: think of how stupid the average person is. 50% of all people are *stupider* than that.
LOL! great post!
LOL! great post!
That part about all the java coders being once designers really hit home, and something similar really echoed that here today.
Currently I work as a Java programmer. On my current team, I’m the only one with serious UNIX experience, and considered the lead tech developer.
During a staff meeting today, we were reviewing resumes for some contracting slots we need to fill on my current project, and the entire team was favoring this one candidate. Who, truthfully is a very good candidate, but it was obvious to me that he lied about having a Computer Science degree. After rankling everyone’s good vibe on this guy by pointing this out. That in turn leads to a discussion about how relevant C.S. degrees really are anyways, and that further lead to discussing just what is everyone’s degree in the room. Well it turns out everyone on the team has a C.S. degree except for me — B.F.A. and M.A.
I wish I had a picture of the stunned looks.