[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
What does 2 to 3 years java programming experience mean to you?? >>>>>>> From Brian McCallister
- To: Atlanta Java Users Group <ajug-members@ajug.org>
- Subject: What does 2 to 3 years java programming experience mean to you?? >>>>>>> From Brian McCallister
- From: Lee Chalupa <lchalupa@seelink.org>
- Date: Tue, 26 Nov 2002 09:23:15 -0500
- Organization: Something Else Enterprises
- Reply-To: lchalupa@seelink.org
------- Start of forwarded message -------
From: Brian McCallister <mccallister@forthillcompany.com>
To: lchalupa@seelink.org
Subject: Fwd: Re: What does 2 to 3 years java programming experience mean to you??
Date: 11/26/2002 8:33:00 AM
If you could forward this on to the AJUG list for me I would appreciate
it -- the listserv is being cranky with me posting to it.
--
I consider 2-3 years of Java experience to means that the applicant has
built one or two large systms, or several small (depends on nature of
the project) using in a professional manner, intended for a production
environment, the technologies that the employer is using.
It presumes familiarty with formal build procedures, formal
design/implementation processes (at least one standard process),
familiarty with the options and packages (not Java packages, but
frameworks, apis etc) suitable for the type of task the employer is
looking to use.
For instance - a company about to embark on a project converting a
VBScript based ASP system to Java (presumably J2EE) because of a serious
scalability problem in the ASP solution (not that scalable applications
cannot be done in VBScript/ASP, but that the standard techniques taught,
and hence used, do not scale, or offer much in the way of elegent load
handling as load gets high on a system). In this case, 2-3 years
experience will mean that the applicant has encountered VBScript and ASP
before, has built two or three applications that have made it to
production that use Servlets and/or JSP, has used and knows JDBC
thoroughly, and knows enough about EJB's or JDO or CocoBase or TopLink
or SpiffyTechOfTheHour to at least evaluate its usefullness and get up
to speed on it very quickly.
Additionally, 2-3 years experience means that you do not require a big
salary. You are coming out of a junior position which you are outgrowing
at your previous place of employment, but are below the five years where
people can begin to think about calling themselves senior developers.
You know your way around a professional environment, but know you cannot
really ask for the big bucks yet (and expect to get them).
In terms of the Software Craftmanship book, 2-3 years means an early
Journeyman - you can be professional in your field, but have a ways to
go before being expert.
At a minimum the things I would expect from this type of candidate would
be:
Working familiarty with make and ant (at least one, preferably both).
Ability to make makefiles/build.xml's
Ability to create complex makefiles/build.xml's
Ability to integrate third party tools (JUnit, XDoclet,
Middlegen, ftp, command line version of your SCC of choice, etc)
into build process.
Working familiarty with at least one source code control system
Ability to use its primary interface fluently
Ability to create new projects/branches/etc
Ability to get through a manual merge
Ability to rollback through a complex series of check-ins
Have experienced a time or two through a full design and implementation
You don't need to have written req's and QA'ed apps, etc, but
needs to have been handed them and been involved with a typical
design two, and them implemented, and maintained it.
Ability to discuss the merits and drawbacks of technologies and
architecture decisions, such as:
Entity Beans vs O-R Mapping tools
Client Server vs 3 (or N) tier systems
etc
Strong working knowledge of the primary Java API's
IO (not NIO yet), JDBC, RMI, maybe Swing/AWT, java.util,
Reflection, etc
In other words, you don't need code-completion or Javadocs
open for standard tasks using these (arcane stuff and bugs
excepted)
Ability to estimate tasks reasonably accurately
You need to be able to make estimates with reasonable accuracy,
and be able to rate the accuracy of your estimates.
Present yourself and behave in a professional manner
This includes dress, modes of speech, acceptance of
responsibility, personal grooming, and behavior.
Working familiarity with at least one additional language
C, C++, and Perl are popular - you need to be able to get around
in this language comfortably even if Java is your language of
choice.
Working familiarity with the platform being developed on.
If you are deploying and developing on HP-UX you should be
comfortable in a mature Unix environment (ie, Solaris, SCO,
even Linux - but you need to be able to be productive quickly).
Familiarity with Tomcat if it is a web app (including some
configuration knowledge).
Familiarity with the standard protocols, data formats, and special
languages.
HTML, XML, SQL, [batch files | shell scripts], HTTP, etc
There is a broad range of knowledge outside of just Java that the 2-3
years of experience embodies - it is the knowledge needed to be
productive in Java, not just knowledge of Java.
I hope this is some help to people.
--
Brian McCallister < mccallister@forthillcompany.com >
Software Engineer and Systems Administrator
Fort Hill Company -- www.forthillcompany.com
-------- End of forwarded message --------
Something Else Enterprises, Inc.
Lee Chalupa
lchalupa@seelink.org
770 381 2377