Another JUnit scenario

R

Rhino

Rhino said:
I am beginning to think that a lot of your problem is not Java but a
need for software engineering fundamentals. In particular, I
think you need to understand the idea of "separation of concerns".

Absent a foundation to guide your design decisions, you are looking for
a series of rules of thumb, and get distressed when the people
responding to you don't think that way. In practice, most experienced
programmers I know apply those ideas, regardless of whether they know
the buzzwords, because they work.

Patricia

I can't disagree with you, Patricia.

I am completely self-taught in Java. I bought some books - and not the
ones that get raved about like Bloch's Essential Java - tried to pick up
some concepts and started writing code.

I have exactly zero hours of formal training in OO and Java. I have
programmed professionally in COBOL but we all know that it is not OO.
That experience has given me a bias towards doing things the way a COBOL
programmer would do them which I've been fighting for as long as I've
written Java. Obviously, I've been less than fully successful in fighting
those tendencies.

I need to get those OO principles to the point where they are second
nature to me, not a constant struggle. Then, perhaps, I will start to
think the way a real Java designer/programmer thinks.

But that's a non-trivial thing and I really don't know how to go about
it. If I had lots of time and money, I might find a university program
somewhere that focused on teaching OO design and programming. But I have
neither the time nor the money to do that.

I'm open to suggestions on how I can learn what I need to know - and I
mean really LEARN it so that it is as intuitive as breating - on a
shoestring. As far as the time goes, this will obviously not be something
I can master in 20 minutes. I'll have to slog away at it and learn it
over time.

I need to find an employer very very soon if I am to pay my routine
bills. I had hoped to present myself as an experienced Java programmer
with a code portfolio that demonstrated some reasonable amount of skill.
Clearly, that is not a reasonable dream at this point.

I love writing in Java and I would desperately love to get a job coding
in Java. I have written several Java classes that work, although I am now
having grave doubts about whether they were properly designed. Is there
any place for me in a Java development role anywhere? If so, what sort of
position should I be applying for? Apparently, I need to look fairly low
on the totem pole but do I need to go as low as trainee (where I tend to
think of a trainee as someone who needs to be taught both OO and Java
from the ground up and has never written a line of Java in his life)?
Would junior programmer be too much to hope for?

Or should I just keep Java as a hobby and not make any pretence to Java
knowledge at all?
 
R

Rhino

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.
Don't be so pessimistic.
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....
 
A

Arne Vajhøj

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....

I will recommend a few hundred pounds ...
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.

Maybe more like: make it as good as possible, but accept that
in real life code will usually ship when it is good enough
(sometimes even before!).

But what you did not get perfect in project N that you can
make perfect in project N+1.
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.

The bottom line is that learning programming is never complete.
You should continue to learn forever.
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.

Many HR departments are rather hopeless in creating job ads.

They usually think like:
- more years = better
- more matching keywords = better
but usually they do not really understand the substance at all.

Applying for jobs is like playing the lottery.

But eventually you will find something.
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?

Different companies different hiring policies.

In many cases I think the biggest hurdle for you will be to get
through HR. If you get to an interview with the hiring manager
and possibly some of your potential future colleagues, then
ability to learn, ability to apply common sense etc. starts
counting more than the TLA's on the resume.
And is "learning on the job" completely abandoned as a principle?

Probably very few companies will want to pay for training you from
scratch.

Lots of companies will expect you to learn things along the way
on your own time.

Arne
 
A

Arne Vajhøj

Out of curiosity, why? A search for "COBOL" on dice.com returns over
700 job openings. May as well use what you know to pay the bills, and
upgrade your skills after hours. It beats flipping burgers - or so I
assume, having never written any COBOL. :)

In many ways the process of getting from requirements to a
detailed design (mostly language independent) is a lot more
important than coming from that detailed to the source code.

I would prefer an experienced software engineer that are
unfamiliar with the language over an inexperienced developer
that can cite the entire JLS and syntax Java code by review as
good as javac.

Arne
 
A

Arne Vajhøj

I am completely self-taught in Java. I bought some books - and not the
ones that get raved about like Bloch's Essential Java - tried to pick up
some concepts and started writing code.

I have exactly zero hours of formal training in OO and Java. I have
programmed professionally in COBOL but we all know that it is not OO.
That experience has given me a bias towards doing things the way a COBOL
programmer would do them which I've been fighting for as long as I've
written Java. Obviously, I've been less than fully successful in fighting
those tendencies.

I need to get those OO principles to the point where they are second
nature to me, not a constant struggle. Then, perhaps, I will start to
think the way a real Java designer/programmer thinks.

But that's a non-trivial thing and I really don't know how to go about
it. If I had lots of time and money, I might find a university program
somewhere that focused on teaching OO design and programming. But I have
neither the time nor the money to do that.

I'm open to suggestions on how I can learn what I need to know - and I
mean really LEARN it so that it is as intuitive as breating - on a
shoestring. As far as the time goes, this will obviously not be something
I can master in 20 minutes. I'll have to slog away at it and learn it
over time.

Find material about GoF patterns, Java EE core patterns etc. on the
net and study them. They should give some input.
I need to find an employer very very soon if I am to pay my routine
bills. I had hoped to present myself as an experienced Java programmer
with a code portfolio that demonstrated some reasonable amount of skill.
Clearly, that is not a reasonable dream at this point.

I love writing in Java and I would desperately love to get a job coding
in Java. I have written several Java classes that work, although I am now
having grave doubts about whether they were properly designed. Is there
any place for me in a Java development role anywhere? If so, what sort of
position should I be applying for? Apparently, I need to look fairly low
on the totem pole but do I need to go as low as trainee (where I tend to
think of a trainee as someone who needs to be taught both OO and Java
from the ground up and has never written a line of Java in his life)?
Would junior programmer be too much to hope for?

Or should I just keep Java as a hobby and not make any pretence to Java
knowledge at all?

Claiming to be an experienced Java programmer may be stretching it
too much.

Just claim that you are an experienced programmer with *some*
Java experience and a keen interest in Java technologies.

True. And positive (at least for the actual team - I can not
vouch for HR).

Arne
 
J

Jim Janney

Rhino said:
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?

Most ads are probably not a good indicator of what is actually needed.
They may describe the mythical ideal candidate, the one they hope to
get but know they won't find. Or if it's a large company the ad has
to go the the HR department which rewrites it based on its own agenda.
Small companies are often more flexible, but less likely to post ads
in the first place. If there's a Java users' group near you,
attending their meetings is a good way both to learn and to make
contacts.
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....

My last formal training was in 1984. Things have changed a bit since
then. Learning as you go, often on your own time, is the reality and
the only way to survive for more than a few years. This is where a
passion for programming really helps.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,965
Messages
2,570,148
Members
46,710
Latest member
FredricRen

Latest Threads

Top