Fog Creek Software
Discussion Board

my career

I am a bit confused with my 3 12/ years of experience involved java/c++ with databases(oracle in major,SQL server).i also have an experience in working on oracle express which is a multidimensional database.I am comfortable working with jsp/servlets , RMI, etc..This is my last company's exposure/experience

Now from last 18 months or so i am into Java GUI development and java application programming using Core java.I am not really fancied with GUI Development.I am a profound interest in Databases primarily db design , db tuning,etc but i also like programming so its not that i want to orient my career path on the lines of a dba or so.Now i am in a dilemna as to what should i do ? Should i leave my current job and look for something which has always fancied me and was of my interest.Also leaving my current job is kind of difficult since its paying me very well and i wonder if i can find something else which will pay me at pare or better in my city.

Please flow in some suggestions for me


Sunday, February 22, 2004

With things the way they are, you want to add as many skills to your resume as you can. When you have your own company you can think about doing whatever fancies you.

Sunday, February 22, 2004

The answer depends on what you want to do with your life.

If you want to be a professional software engineer with your life, then you better get over this idea that you're going to specialize in one thing, especially something like databases. The fact is, you need a cross-section of skills to be useful. When you go up for a job, your database-only desires will be put up against general purpose candidates who can also do the required database work, and nobody's going to employ you.

Get a PC at home, and play with databases to your heart's content. At work, get as many skills as you can so you can be useful in ALL situations, not just the ones primarily concerned with databases.

Brad Wilson (
Sunday, February 22, 2004

I respectfully disagree with the prior postings. My personal perception has been that vast general skills (i.e. "jack of all trades, master of none"), such was the rage during the .COM boom, are not enough in the current environment. Instead you need to demonstrate excellence at one core area, whether it's extraordinary database skills (as a sidenote--the overwhelming majority of databases designed by such generalists are horrible), guru skills with .NET interop, whatever. I'd rather build a team comprised of a collection of complimentary experts, with each having a realm of ownership, rather than a set of general purpose developers.

There are countless applicants who'll list a litany of skills, each of which they can talk about in general terms. There are very, very few applicants who can demonstrate expert knowledge in one area.

Dennis Forbes
Sunday, February 22, 2004

And exactly how does one demonstrate excellence in one core area?  Do most employers care whether an applicant is "excellent", or do they look at bullet points + years of experience?

Dennis, I don't disagree with you.  But you probably don't represent most employers.

Immature programmer
Sunday, February 22, 2004

I understand where you're coming from Dennis.  Having  superficial experience with a technology is worth almost nothing, because other candidates can acquire that level of skill quickly.  On the other hand, I've gotten lucrative gigs and broken new accounts by having just a little skill with technologies so obscure that the clients couldn't find *anyone* else who had used them.  But that's very rare, and probably not worth pursuing as a general strategy.

But becoming a guru on just one thing -- or a few things -- proves dangerous as that one thing falls out of use.  Plus, a breadth of experience gives you a broader base of ideas to draw from in solving problems. Obviously the best route is to become a "jack of all trades, master of most".  :-)  Personally, I'll always hire the person with the broad experience over the guru of one thing, unless I need a 2-month contractor.

The one point I'd like to make to the original poster is that it is generally a very bad idea to choose jobs based on salary early in your career.  Your chief goal should be to gain good experiences during that period and do yourself no harm.  If you steer your career properly during those early years to gain rich and varied professional experiences, any meager salary differences you momentarily denied yourself you will recoup twentyfold or more over the course of your career because of the opportunities those experiences will open up for you.

And of course the most important thing is to follow your passion.  If you see a job that will provide opportunities you crave, take it at all costs.  You will never regret doing work you love when it's available, and you can always resume your old path should the exciting opportunity dry up.

Sunday, February 22, 2004

"And exactly how does one demonstrate excellence in one core area?  Do most employers care whether an applicant is "excellent", or do they look at bullet points + years of experience?"

This is where cover letters come into play -- clearly identifying your focus on a key, important part of the development process can really grab someone's attention. Most teams are full of lots of people with lots of supposed skills, but in the end the majority are piss poor at all of them.

One of the reasons Microsoft is deprecating COM in favour of .NET for distributed computing is that despite millions of "DNA" programmers, _extremely_ few (well under 1%) have any idea what they're doing in COM+/MTS (i.e. actually understanding and implementing security and transactions across COM objects). In this case perhaps representing yourself to a firm as a guru of COM objects would get you interest.

"Dennis, I don't disagree with you.  But you probably don't represent most employers."

Oh I have no doubt that most employers look for bullet lists, but remember that most prospective employees are providing bullet lists -- saying "there are 10,000 jobs for the general skills people" is incompletely job hunting information if there are 10,000,000 general skills people spamming resumes. I'm talking about those few employers who respect experts, despite the job advert that might include a laundry list of technologies -- From submissions that I've seen, there are dramatically fewer specialists.

Dennis Forbes
Sunday, February 22, 2004

If you want to be heavily focused on small areas, like becoming a database guru, then I would say the best thing to do would be to become a consultant/contractor. When people look for specialists, this is the route they're going to take, and you'll be able to bill for more money than you'd get as a general employee.

It's pretty risky, though, and requires you to be a good sales person (selling yourself) and a good networker (making contacts so you can get contracts), in addition to the extreme time you'd spend become a guru-level person.

Definitely not the track I'd recommend for the general person, but some could make a very good living at it.

Brad Wilson (
Sunday, February 22, 2004

Dennis, there's a difference between being an expert and getting hired. The poster is asking about getting hired. Deep expertise is NOT the thing that's get you hired, unless you're going for a job with Microsoft.

Sunday, February 22, 2004

My question: do you want to be marketable to the
largest sheer number of jobs or the jobs where there
are relatively few, but highly specialized, openings.
Frankly, I chose the latter: there are maybe 500 openings
in the world in my particular field of small embedded-
systems database engines, but maybe 250 people with
the relevant experience and skill-sets to apply.  The field is
small enough that most people in it know each other.

I was briefly unemployed in 2001 after my last company
disintegrated, and I gave thought to learning Java and
becoming a "generalist".  (I've spent most of my career
doing C and db engines of various sizes.)  After a quick
glance at various resumes and realizing that Java work
was clearly a commodity prone to outsourcing, I
abandoned that thought and quickly found work at a
startup, that is now starting to take off.

Sunday, February 22, 2004

Sure, but now let's be specific.

Nobody hires an expert database developer any more. Especially when we're talking about MSSQL, which is relatively good at optimizing itself, and easy for devs to install and admin... it just seems entirely unwise to bet the farm on that.

Embedded development expert != person who doesn't want to do anything besides SQL development

Brad Wilson (
Sunday, February 22, 2004

"Especially when we're talking about MSSQL"

Which is why if you want to be a consultant pick some hairy difficult to understand relative to Microsoft pap product and learn it inside and out.

To put it anothe way.  Learn a skill most companies don't have in house.  Open Road for example. 

This next statement is not ment to reflect on the OP or anyone else here, just a general comment about the way things are:  It always amazes me the time noobs will spend on dotnet or some other IT commodity.  Don't pick a commodity skill.  That's why a brain surgeon commands higher prices than a general practicioner.

If you have a particular niche technology you are interested in go for it.  You can always be a commodity coder.

Sunday, February 22, 2004

I was offering a personal anecdote, not trying to
compare to the OP.

But I agree: career management is tricky nowadays.
Be too "general" and you run the risk of having 6 months
experience in each of 25 technologies, 20 of which are
obsolete, and you're constantly competing with hordes of
freshly-minted script-kiddies.

Be too "specific", and your skill-set may become completely
useless with a small shift in technology.  I'm definitely
more at risk here.

So, the real answer may be to figure out what you
_like_ doing, and damn the market (at least to an
extent).  But save every penny and be ready for shifts and downturns.

Sunday, February 22, 2004

And, if you're one of ten experts in your field in the world, DON'T work for $50 per hour.

Sunday, February 22, 2004

People's lack of broad experience shining through?

Some companies want generalists.
Some companies want specialists. 

More companies want generalists, and as a result more employees market themselves as generalists. 

There's a time when you need somebody that can set up the website, database, and client.

There's a time when you need somebody that has 10 years of experience tuning Oracle queries.

Dan Brown
Sunday, February 22, 2004

Stay away from MS technologies and you will do fine.

Sunday, February 22, 2004

Essentially everybody is correct is some manner. The following is how I have seen things breakdown:

* Some companies looking to hire a salaried employee want a generalist.

* Some companies looking to hire a salaried employee want a  specialist.

* Most hiring managers looking to hire a contractor want a specialist.

The above scenarios is one reason why many "salaried employees who are generalists" have a hard time landing a contracting gig and one reason why many "contractors who are specialists" have a hard time landing a full-time salaried position or another contracting gig using a different programming language.

One Programmer's Opinion
Sunday, February 22, 2004

"Nobody hires an expert database developer any more. Especially when we're talking about MSSQL, which is relatively good at optimizing itself, and easy for devs to install and admin... it just seems entirely unwise to bet the farm on that."

Although this may be generally true, this has not been my experience. I am making the transition from jack-of-all-trades (old company) to DB specialist (new company). Not only do I enjoy this more and find it more fulfilling, but I am confident that MSSQL is not going away in the next five years.

I encourage everyone else to stay as generalists so my company will value my skill that much more. Programmers that have a reason to touch a DB usually do a pretty poor job at doing it because they are so caught up in COM to .NET integration that they don't have time to learn the personality of the SQL Server. I have found no shortage of companies looking for this skill set in the last year. Your city may not have the same demand.

The only advice I will give you is that if you want to market yourself as a specialist, know your stuff really well, be sure you keep on top of that product's new version, keep learning about all the other technologies in your environment so you can provide meaningful solutions and know enough low level stuff to talk over your peers. :)

Monday, February 23, 2004

*  Recent Topics

*  Fog Creek Home