I’ve just come back from an interview for a Senior Android Engineer position at a company based in London, and thought I would share my experiences as looking online before didn’t really prepare me for the questions that would be asked.
My research on this topic before hand turned up some fairly useless questions they “might” ask such as, what is Android, what is the Android SDK, and other trivial questions that are not likely to be asked as what’s the point?
My interview was broken up into two parts, the first I was shown into a meeting room with a single computer, a browser open and the start of an online test screen.
I had 90 minutes to code up solutions to 3 programming problems. I wasn’t informed when starting how many questions there would be, I was thinking a lot more and maybe some other type of questions coming up later.
I had access to the internet and was left alone for this period, so I did some googling for 2 of the questions and found some good answers straight away. The third I did myself as it seemed pretty straight forward, and not so easy to Google!
I feel I should get some credit for being able to find solutions to the issues, because A) no one does these kind of problems in a day to day role. B) who doesn’t have access to the internet when their working? And C)why solve a problem that’s already been solved?
Anyway after solving the 3 questions and seeing the end of test message appear and the fact I had 40 odd minutes left, I realized I probably could have spent the time and solved these myself, which would probably have looked better to the interviewers.
If you’re curious the 3 questions were as Follows
1 – Find the number of unique absolute values in a list of integers.
2 – Is a string an anagram of a palindrome?
3 – A pawn moves through an array K such that K[n] = x then K[n+x] is the next value to move to. Find out how many jumps it takes till the pawn is out of the array or if it never exits.
These were all worded a lot more complicatedly in the test, but did have some useful examples of what they meant if you were unsure of what a palindrome/anagram/absolute number was.
At the end of the test someone came along with my answers printed out and we proceeded to go through my solutions. If you go the route I did (googling for answers/help) make sure you know how your solution works!
We went through this for 5 minutes, I explained that I did some searching for answers, walked him through the last one just to prove that I did write it.
Then came the Android/Java specific questions.
Things you should know!
What they are used for, what the different methods are (doInBackground, onPostExecute, onProgressUpdate)
Differences between the two, what would you use them for?
Issues with multithreading and solutions (data concurrency, synchronization, locks)
How would you communicate between the activity and fragment, both ways?
Merge layouts, include, viewstub, 9 patch
Final, Finally, Finalize
What are their purposes? What does final do on an object/class/function etc.
This is all I can remember being asked, but these are the types of questions you’re likely to be asked in a technical interview. I can imagine some other topics for questions would be
Content providers/ shared preferences
That’s it for now!