>> For example, Java, can you tell me the difference between volatile and synchronized as it regards the memory model without looking it up? What's a happens-before relationship and how is it relevant to those keywords? What's the transient modifier do?
>I didn't claim to be a Java guru. Very few Java programmers actually need to know the answers to those questions in day-to-day programming; I could probably (if asked to, which I'm not, thankfully) write thousands or tens of thousands of lines of Java without ever needing to know the answer to those.
You're wrong, and this proves the point. This isn't 'guru' level, the workings of volatile and synchronized is even on the basic SCJP test. This may not come up in your domain, but if the project deals with threading, an experienced dev will be more productive than you right off the bat, after two weeks, and probably after a year.
In fact, threading is pretty tricky, so it's likely you will be counter-productive to the team until you've made all the Java threading mistakes you need to make in order to understand why your code is bad. And, you might never know your code is bad unless a domain experienced Java dev explains it to you.
>I didn't claim to be a Java guru. Very few Java programmers actually need to know the answers to those questions in day-to-day programming; I could probably (if asked to, which I'm not, thankfully) write thousands or tens of thousands of lines of Java without ever needing to know the answer to those.
You're wrong, and this proves the point. This isn't 'guru' level, the workings of volatile and synchronized is even on the basic SCJP test. This may not come up in your domain, but if the project deals with threading, an experienced dev will be more productive than you right off the bat, after two weeks, and probably after a year.
In fact, threading is pretty tricky, so it's likely you will be counter-productive to the team until you've made all the Java threading mistakes you need to make in order to understand why your code is bad. And, you might never know your code is bad unless a domain experienced Java dev explains it to you.
Domain experience matters.