Live data from Hacker News

Ask HN: How do you define a junior developer?

news.ycombinator.com

1–10 of 68 posts

Ask HN: How do you define a junior developer?

#1
For a web development position that requires basic knowledge of HTML, CSS, JavaScript companies can easily find junior developers, people with little to none experience in programming. But for system programming, how can you define a junior? Is it a person with experience as a programmer in other languages (say Ruby) but little to none experience in the language of the offer (say C++)? Or can someone without any programming experience at all find a job as a C++, Scala, Swift, Go developer?

Re: Ask HN: How do you define a junior developer?

#2
IMHO, Junior developer or junior whatever means that the person has little to none experience in the field. That doesn't mean that this person has no knowledge.

Personnally, I see a Junior whatever as someone who has some theoric knowledge about the whatever but did not have the time to apply it yet.

Re: Ask HN: How do you define a junior developer?

#3
I would define a junior developer as anyone who is not going to be very effective without some supervision. In other words, they have things to learn and need guidance and oversight before they will be able to do much correctly on their own. This could focused on tools, techniques, processes, it doesn't really matter. So I don't think the definition is different for web or systems development, although the tools and depth of experience might be.

Re: Ask HN: How do you define a junior developer?

#4
This is highly subjective and very much depends on many variables, including what you mean by "systems programming" (more specifically: what level of the stack is your boundary for "system" versus "application").

There is a traditional boundary. System programming is programming at a lower level, code meant for consumption by other software, and never directly used by an end user, while application programming is meant for consumption directly by an end user. Think "game engine's network stack" versus "text editor (that isn't Emacs)".

It's possible to work as a very junior system programmer with no prior programming experience. Everyone has to start somewhere. I've put such people to work doing everything from debugging problems with some data structure implementation to debugging thorny concurrency issues. Generally I take the view that a person is no longer junior when he has had sufficient experience that he can do more than bug fixing in more than one sub-domain of system programming. That wouldn't mean he or she is necessarily senior at that point.

Re: Ask HN: How do you define a junior developer?

#5
Junior developer is someone who was unable to negotiate a stronger position for any reason, such as experience, recent unemployment, expertise in an outside specialty, company is super tightwad about 'status' and/or pay levels, naive about negotiation, etc. Conversely, sometimes you'll also see someone at a 'senior' level because the title meant more to them than pay or other benefits. Sometimes a title distinction is engineered by HR and the hiring team at a company to function that way.

It is often thought of as a prediction about what level of contribution is expected, but that's basically a farce. In every organization I've seen that makes distinctions between junior and senior developers, the only thing different between them is that senior developers are paid more. They don't do more, manage more, design with more foresight, or anything like that.

The exception is that developers who are brand new to a job function as junior engineers until they get calibrated and learn some parts of the codebase in which they can be effective. But this is just as true for a brand new senior dev with 10 years experience in your company's primary domain application as it is for a kid straight out of a bachelor's program whose only prior work experience has been theoretical REUs or something.

Basically, it's just a status tool.

Re: Ask HN: How do you define a junior developer?

#6
post #2

IMHO, Junior developer or junior whatever means that the person has little to none experience in the field. That doesn't mean that this person has no knowledge. Personnally, I see a Junior whatever as someone who has some theoric knowledge about the whatever but did not have the time to apply it yet.

What about those who have little theory but some application? e.g. I did marketing in college but developed and published 3 iOS apps.

Re: Ask HN: How do you define a junior developer?

#8
I'd argue experience as a programmer in other languages (say Ruby) but little to none experience in the language of the offer isn't a junior. Even if you start out in a "new" field with a different stack, the experience in other languages is transferable knowledge.

Re: Ask HN: How do you define a junior developer?

#9
post #3

I would define a junior developer as anyone who is not going to be very effective without some supervision. In other words, they have things to learn and need guidance and oversight before they will be able to do much correctly on their own. This could focused on tools, techniques, processes, it doesn't really matter. So I don't think the definition is different for web or systems development, although the tools and…

This.

Without supervision:

* can they be trusted to take a story and turn it into a list of one or more problems which are solvable and sensible to solve?

* given a list of problems, can they be trusted to select appropriate tools for solving each problem in a sane manner?

* given a problem and an approach, can they be trusted to fill in an implementation?

If you can't answer any of these questions with a firm "yes", they're definitely a junior.

Post reply on HN