Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Yesterday I had received a great job opportunity.

In requirements section I had seen the words:

  • solid knowledge of python;
  • solid knowledge of java;
  • good technical background;

Could you give me an answer, what does it mean? How to test my current knowledge? What type of measure will be actually accepted by employer?

share|improve this question

closed as not constructive by Jarrod Roberson, gnat, Walter, Jim G., Michael K Jun 27 '12 at 12:35

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

    
I don't think a good job will mention such stupid requirements like "good" xyz –  nischayn22 Jun 27 '12 at 6:13
14  
It is clear that they are looking for someone who can work by himself and will not ask 100 questions everyday. That is it. I am surprised you don't get this! –  Emmad Kareem Jun 27 '12 at 6:19
1  
Start with Googling the buzz words that are strange to you and look at related Wikipedia pages –  Yusubov Jun 27 '12 at 10:24
add comment

4 Answers

up vote 15 down vote accepted

If you have to ask ...

If you have to ask this, you probably don't qualify for any of those requirements.

Rephrase the Context

Replace solid knowledge of Java with solid knowledge of Jazz Guitar.

You would assume someone with solid knowledge of Jazz Guitar could perform any Jazz song that were asked to with confidence. They should also be able to demonstrate theoretical understanding of the foundations of Jazz by improvising on the spot. They should be able to hold their own with any other musician in a band with solid knowledge of Jazz Bass or Drums.

Apply this to a programming language such as Python, could you create a solution to any general problem in idiomatic Python? Could you demonstrate advanced understanding of the aspects of the language that are specific to Python? Can you hold your own in a team consisting of other solid knowledge of Python developers?

Subjective Standard

It becomes very clear that what is considered solid knowledge is subjective to the person asking.

That said, given those requirements you should be able to answer pretty much any general knowledge question about the things in question along with a good number of advanced knowledge questions that would come from extensive experience with the things listed.

Stackoverflow Reputation

I would say a 5 digit reputation, at mininum on stackoverflow.com in any specific language tag from answers and not questions would demonstrate solid knowledge of that topic.

share|improve this answer
    
how i can to determine my competence in each field? i know about brainbench.com Do you know any other resources? –  Zagorulkin Dmitry Jun 27 '12 at 6:45
9  
"If you have to ask..." ... Or, (s)he's over qualified. The more you know, the more you know what you don't know... –  Marjan Venema Jun 27 '12 at 7:12
1  
@Jarrod Roberson, +1 for the comparison, though I think the person you describe as "someone with solid knowledge of Jazz Guitar" is rather a genious! –  superM Jun 27 '12 at 7:27
    
And when you change fields, like university to business, you never know what they consider "solid" there. In research "solid" is more focused on theory, whereas in business it's a lot closer to the traditions of the craft. The frog in the pond usually doesn't know the big ocean. –  Raku Jun 28 '12 at 11:09
add comment

If I were the employer I would talk to you on the phone about it to see if you had a clue. If you passed that test I would bring you in to the office. There we would talk in depth at a white board for a while and I would ask you to explain how to do several tasks.

Finally I would sit you down at a computer and ask you to write code.

In that process I don't expect someone to know every detail, but I would expect them to have a general clue

share|improve this answer
add comment

Your confusion is understandable. It can be hard to figure out what they mean if you're a fresh graduate who has been programming mainly on campus.

Life in the industry is a lot different because university professors usually program for research and proof-of-concept. They don't have to bother about things like continuous delivery, a solid build, unit testing, requirements, network infrastructure or the latest tools of the trade because either they're developing new tools or they're under way less constraints.

What the job requirements mean is that they're looking for someone who - at a minimum - doesn't have to ask about the syntax of his programming language of choice anymore, who knows how to look up documentation to fix problems on his own, who doesn't bother his seniors with small problems that could be solved by a Google search.

share|improve this answer
1  
it means that small problems don't need to be Google searched to begin with ... –  Jarrod Roberson Jun 27 '12 at 7:24
    
Small problem or not depends on experience and ability to research yourself. Experience comes by practicing your craft, ability to research comes from your mindset. If you don't have the first, you can still solve them without being a nuisance as long as you have the second. –  Raku Jun 27 '12 at 10:00
add comment

Of course all these answers have been giving the benefit of the doubt to the person who posted the job requirements. In a perfect world, the words "solid knowledge of..." would be easily quantifiable, and result in would-be employers and employees swiftly understanding each other's requirements.

In practice, these things are likely to mean different things to different people. Sure, if you know little to nothing about Python or Java you definitely shouldn't be applying for this job. But if you have some knowledge, there's not much point in fretting about whether that knowledge is "solid" enough. Really like the look of the job? Get in touch with the employer, and find out if your level of expertise is close enough to the level they were thinking about when they posted the opportunity.

There's no sense wasting time agonising about what a very vague description of requirements might mean. Acquire clarification.

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.