

Ask HN:  Job Experience with Programming? - bussiem

Hey everyone, I'm in a bit of a pickle, so I figured this would be a good place to ask this question.  Here's my situation:
I'm fresh out of college with my B.S. in Computer Science, and I'm looking around for jobs.  I very much want to end up doing some kind of software development.  However I am current talking with a company who has openings for a "Consultant" gig, the training of which includes programming, as does the job.  HOWEVER, the job itself is not pur programming.  According to the person I talked to, the job is only about 15-20% programming, the rest is client interaction, on-site support, etc.  To top it all off, the actual coding is using proprietary software and language.<p>So here's my actual question:  Say I were to take this job (If I get it).  I spend 4 years there, and for some reason or another I decide to move on and look for Software Engineer jobs.  Will ANY of this time spent as the Consultant count as what could be "Programming Experience" for a higher level developer position?  Alternatively, would the situation be changed at all if I devoted spare time during the Consulting gig to contribute to Open-Source on github and the like?<p>Please help me if you can, I'm a bit lost on what to do, since I have very little experience with this sort of thing as of yet (and I'm not afraid to admit it.)<p>Regards,<p>Max
======
debacle
> the job is only about 15-20% programming, the rest is client interaction,
> on-site support, etc.

Sounds pretty standard.

> To top it all off, the actual coding is using proprietary software and
> language.

Might be dangerous, but might be fine, depending on the size of the company
[1].

> Will ANY of this time spent as the Consultant count as what could be
> "Programming Experience" for a higher level developer position?

Oh hell yes, however maybe not for what you're looking for. If you want to be
a hacker-type, you definitely don't want to take a consulting gig at a company
with a proprietary language, but if you want to learn a ton about the SDLC and
maintenance and user interaction, it would be a great gig.

Speaking from experience, I started out at a company very similar to what
you're describing working on their internal platform. I found I learned a ton
about process management, maintenance, code quality, etc, but my coding skills
were still green after two years (that happens when the average coder was
writing <100 lines of code a week), so I jumped ship to a small company where
I was dropped into a cold reality - I knew nothing about programming. I
learned in about a year what might have taken me three at the original
company, though I regret neither experiences.

[1] <http://thedailywtf.com/Articles/A_Case_of_the_MUMPS.aspx>

~~~
bussiem
Thank you for the replies so far (both of you). debacle: What did you mean by
"depending on the size of the company"? I read the article you linked to. Is
bigger worse in this case? Or is smaller? Please clarify for me :)

~~~
debacle
If you're working with a small company, usually the ad hoc systems are crufty,
legacy systems that some 'genius' developed in the 90s but aren't very useful.

If you're working in a larger company, that platform is probably purpose-built
and domain specific - health information management, for example, has a lot of
proprietary languages but they serve a purpose and tend to be widely adopted.

------
bmelton
It depends on a lot, but having done both purely engineering jobs and
consultant type of jobs as well, you'll get a much broader variety of tasks by
doing consulting. Each customer will undoubtedly have an entirely different
set of things they're looking for and ways they want it to be implemented, and
on top of that, they'll have different systems they need integrating with.

Depending on the job, it might also entail travel to new places, an expense
account for dining (which makes eating nicer a little lighter of a burden),
the ability to interact with new people all over the nation, etc.

Another perk is that you drive the development process, within reason. As a
vendor developer, you're more easily able to push back on unreasonable
development timelines, as far as being able to tell the customer things like
"That's impossible," which you would have a harder time saying to your real
boss when given a task. Your time is billable, and time spent with a customer
is profit to the company. If it's actually going to take you three weeks to
build it, then take that long. They don't want you building it in half that
time unless you're billing the hours for it anyway.

Conversely, they don't want you to take too long to do things as the customer
relationship is sacresanct, of course. But there's less push back on doing
things in a reasonable, actual time that managers tend to overlook when your
work as a developer is 'overhead', which most pure engineering jobs are at big
corporations.

As a developer at a startup it's different obviously, you're talent, not
overhead, but the trade off is often your personal life.

There's no golden job, of course, but consulting benefitted me greatly when I
did it, and can be a great experience. You'll sacrifice some learning, like
working with a close-knit team, the ability to report to the same office every
day, but in return you get a larger degree of autonomy and a completely
different set of challenges.

