Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Junior, middle, senior? #18

Open
Lex74 opened this issue Jul 17, 2017 · 2 comments
Open

Junior, middle, senior? #18

Lex74 opened this issue Jul 17, 2017 · 2 comments

Comments

@Lex74
Copy link

Lex74 commented Jul 17, 2017

I think it would be great to separate the questions between junior, middle and senior

@amitshekhariitbhu
Copy link
Owner

@Lex74 Ok, we will do it very soon

Repository owner deleted a comment from aershov24 Apr 9, 2020
@archow
Copy link

archow commented Nov 8, 2023

While I agree that this would be useful, every interview and team is different, so categorizing it that way may be misleading.

However, as per my experience, here is how I would categorize the information based on Junior, Mid-level, and Senior Interviews:

Junior:

  • Expect questions on object-oriented programming concepts/principles (OOPS), such as Interfaces, abstractions, etc., as well as simple programming questions.
  • I would also expect base Android Questions, such as components of an Android Application, lifecycles of an Activity or Fragment, etc.
  • Difference between the different layouts, e.g. ConstraintLayout, LinearLayout, FrameLayout, etc.
  • Maybe some beginner Kotlin Questions

Mid-level:

  • Same as Junior, plus:
  • mid-level data structure problems
  • multi-threading questions, how best to handle them, especially in Android, e.g. AsyncTask (Deprecated), ThreadPools/ExecutorService, RxJava (Preferred), Coroutines (Preferred, with Kotlin)
  • How to prevent memory leaks
  • More Kotlin questions, probably some Kotlin-based Coding questions
  • Likely questions on Kotlin-specific knowledge, such as delegation, extension functions, and coroutines

Senior:

  • Design Patterns, e.g. Factory, Builder, Singleton
  • Architecture Patterns, e.g. MVC, MVP, MVVM, UDF, MVI, Clean Architecture
  • System Design Questions (usually a whole round in the Interview process, generally 30-60 min), e.g. "Design Facebook", "Design Twitter", difference between Polling and Websockets, etc. (For more information on System Design Questions, google it, or look at "Grokking the System Design Interview"; there are many wonderful resources on this.)
  • More thread-handling questions, e.g. difference between threadlocks and race conditions, what is a semaphore,etc.
  • Likely in-depth analysis on commonly used views such as RecyclerViews/ListViews
  • Creating an app from scratch using preferred architecture and best practices (usually MVVM)
  • Debugging an app with preferred architecture and best-practices, and commonly used libraries like Paging, Retrofit, etc.

These are not hard and fast rules, but may be a good guideline to follow.

If anyone would like me to incorporate this to the base Readme, let me know and I will create a pull request. Or feel free to add to this as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants