Hacker News new | ask | show | jobs
Ask HN: Job Experience with Programming?
4 points by bussiem 5107 days ago
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.

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?

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

Regards,

Max

2 comments

> 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

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

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.