OK, first of all, you can't
fake experience, at least not when the interviewer is competent (which I assume they would be at Google). So be honest about your level of experience with Python. If you've had little prior experience but can demonstrate good knowledge of the language in the interview, that will still count as a plus. At least, if the requirement is "two years programming" (which what I understood from your post); if it is "two years Python
programming" then you're kinda screwed (unless you're a very
That said, this is how you can prepare*
- Go through the tutorial and make sure that you understand and can explain everything there. Including obscure Python-specific language constructs like for/else, the difference between old-style and new-style classes, and important language concepts like generators and contexts.
- Go through the standard library and familiarise yourself with what's there. As you read through the docs, you'll start to notice patterns in how Python APIs work. I'm guessing Google is going to be big on functional programming, so pay particular attention to the functools and itertools modules and the built-in map and reduce functions. Make sure you understand their value and are comfortable using them.
- Anyone who claims to be a Python developer but isn't at least aware of PEP8 isn't going to be taken seriously.
- Look into what support Python has for the specifics of the role you're interviewing for -- what tools, libraries, frameworks, etc are available (chances are, there will be a few). Make sure you play around and are familiar with at least a couple. E.g. since you've mentioned databases, you need to be familiar with PEP249 and be comfortable with connecting to and querying database like MySQL or Postgre from Python. You will also want to look into sqlalchemy.
- Have a look at the existing Python projects on Github/Bitbucket. Familiarise yourself with how they do things. Maybe clone a couple and try modifying/extending them.
- Understand how to work though performance issues; e.g. be aware of implications of loops vs comprehensions.
- Make sure you're familiar with Python 2 vs Python 3 issue.
- As your background is in Java, you may be asked for your opinion on how the two languages compare. Make sure you can talk about things like static vs dynamic typing, explicitly declaring thrown exceptions vs not, etc.
- If you have time, maybe look into metaprogramming.
Depending on how much time you have before the interview, you might not be able to do everything. I've listed things roughly in the order of importance (IMHO), so just work your way down the list and see how far you get.
* Please note that his advice is subjective
. I have never interviewed at Google (though I've read a few accounts of people that have) so I don't really know what their interview procedure is like. Different people will have different ideas of what one would be expected to know as a Python developer. Additionally, these points only cover the Python aspect of the interview and not other things like general software engineering and computer science topics that will almost certainly come up.