Note that usenet is more an academic place than a job place
meaning that there are always some people willing to
find problems in a solution and come up with clever ways to
refine it.
I had been wondering if some of the criticisms of my code were a bit
purist/perfectionist and could correspondingly be taken with a bit of
salt.... Which is not to say that they are wrong or unimportant, just
that they may represent a standard higher than an employer might
typically have.
In job context bosses want code delivered on tight schedules.
I can definitely write Java code that works. That's got to count for
something! I'm as resistant to tight schedules as anyone else but I don't
think I'm MORE resistant ;-)
Maybe it is time to focus on writing some 90% good code and
let the last 10% come over time.
I had hoped I was nearing the point where my code was at the 90% level.
But some of the responses I've received have made me think I was more at
the 10% level....
I truly don't know right now. Obviously, no one can say without looking
at more of my code.
I'd like to think that the deficiencies are ones that could be rectified
fairly easily in most cases but that might be wishful thinking. I can
picture a few bumpy code walkthroughs at the beginning with lots of
criticism of the code I write but, as my mistakes are explained to me, I
see those criticisms diminishing quickly and my code becoming much
better. For instance, someone might point out that I overuse constants or
put them in the wrong place but if they give me some guidelines on
when/where to use them, I feel sure that I can start following those
suggestions fairly easily.
Sorry about that, Arne, but I've gotten into a rather pessimistic mood
;-). It's a mix of the criticisms of the last few days and some general
stuff that goes back for years.
One of the most startling job-hunt experiences I've ever had was some
years ago where someone put a job ad on one of the Java newsgroups. They
were insisting on 5 years of solid, full time experience with several big
aspects of Java. (I don't remember the specific areas but it was
something like CORBA, JNDI, servlets, midlets, and several other things
as well). Now, I started coding in Java when it was still in beta
(version 0.x) and had been coding it (for my own amusement, not for
money) for six months. Java itself had only existed, as best I could
determine, for only two years but these employers were INSISTING on FIVE
years experience!! It was like someone taking out an ad looking for
commercial airline pilots with five years experience the year after the
Wright Brothers first flew at Kitty Hawk! And I'd be tempted to write
this off as a simple anomaly - one employer who was either completely
clueless about the history of Java or someone who was playing some sort
of game - but I have seen many ads like it since. Ads containing long
lists of "must have" experience insisting on multiple years in each of
several major areas of Java. I look at those ads and find myself doubting
that more than five people with all of that experience could exist in the
entire WORLD, and yet this is a local ad for a mid-level sort of
position, not an international recruiting campaign for a senior architect
of a major multinational.
This kind of thing makes me despair about the prospects of ever finding a
job writing Java....
Very few if any programmers are perfect.
The fact that you do not write perfect code is not a reason
not to hire you.
They would never hire anyone if they were so picky.
I can not see why they should not hire you instead of
a few hundred thousand other.
My optimistic side wants to believe you, Arne, it really does, but the
pessimistic side is having trouble.
Am I just getting a very very inaccurate impression of the job market on
the basis of the immense, almost inhuman, expectations that are stated in
job ads these days? Is that just a fad that everyone else knows not to
take seriously? Or are the Java shops really that demanding?
And is "learning on the job" completely abandoned as a principle? For
instance, I've never used CORBA in my life; I'm not even sure what it is
or does. But if I found myself in a job where CORBA was being used, I'd
be more than happy to learn whatever aspects of CORBA I needed to know.
It might take a few days or weeks to get fluent, depending on how
complext it is, but I'd certainly do my best. But it seems like employers
want job candidates to know every tool and technology that they'd ever
think of using before they hire someone. They seem to want to avoid any
possibility of someone going on a course or needing a bit of time to
learn something....
If you really want to improve your marketability then I think
you should work on "Getting some code working" and
Google/Wikipedia skills. Not the finer subtleties of what
is the best OOP style.
I actually have a reasonable amount of code working. I've been writing
Java - mostly as a hobby but I have done some paid projects - since 1997.
I'm just trying to polish it so that it looks as good as I can get it for
my code portfolio.
The portfolio is basically the program I use to generate my resume - I
generate it in umpteen formats, including HTML, PDF, Word, ASCII, and
even an applet - which is done with 21 classes plus a few classes from my
Common project, such as LocalizationUtils, StringUtils and a few others.
Those have been my main focus this weekend, which reminds me that I need
to get back to them
Thanks VERY MUCH Arne for your perspective! Maybe I _am_ putting too much
weight on the criticisms that I've been getting. Maybe employers are a
little more reasonable in their expectations than the ads suggest and a
job coding Java is not completely out of the question NOW, rather than
months or years from now after OO and Java theory are intuitive for
me....