Had an interview a couple days ago and boy was I embarrassed. I though I was the only one who forgot all the basic stuff and made a fool out of myself but after watching you share your experience, I am so relieved. Thank you.
@trandat2030 Жыл бұрын
There was some asks about my Middle Android Developer Interview question for month ago . Hope it help someone OOP property Activity life cycle why do you call setContentView() in onCreate() and not elsewhere ? when function onCreate() of the activity is called, and when it be called again ? Difference between replace() and add() fragment Ask about Hilt, Dagger, Koin, the difference, etc Did you use any firebase service ? Did you use Service, Broadcast, Content resolver, and in what situation ? About MVVM, MVP ( I Said I know both before ) The difference between them ViewModel lifecycle What is Repository Pattern , in the specific case, what did you do in there? When using LiveData, the difference of postValue and setValue What's the difference between Observer in LiveData and Rx ? How to cancel a coroutine task ? How do you you call multiple api at once using coroutines ? Questions regarding the second Room Databases: migrations, relationships, .... Is it possible to query the room's data on the main thread? Commonly used functions in custom views: This one I list a few commonly used functions, the other side does not ask more deeply In a custom view has 3 constructors, what are those do and many else that I don't remember
@odayprogrammer Жыл бұрын
Those are very adequate for middle position
@vinh2668Ай бұрын
@@trandat2030 khoai thế a zai
@MrACrazyHobo9 күн бұрын
Very useful questions. Thanks for commenting
@ravipoon096 ай бұрын
Thank you for sharing. 🙏 Also if I am not mistaken, on the runblocking code examples, while both of them prints the same thing, first example should execute in 1500 ms+ while second should execute in 1000 ms+ cause of the async calls. Do Correct me if i am wrong 😇
@CheunAngTe Жыл бұрын
In my case, I had a very basic questions that a senior android developer should answer but this is something I haven't really checked a long time ago and it caught me off guard. The question was: what's the difference between targetSdkVersion and compileSdkVersion. In my mind, I know one could be higher than the other and one is just to say "I know my app is working fine on that version" and the other is which Android API you compile your app with. But because it caught me off guard, I wasn't 100% sure which one is which and I said the wrong answer. I was feeling so bad because I answer this question wrong. This is a basic question but hey you always learn from your mistake. Thanks for the video!
@martingg19 ай бұрын
Wow this was interesting. It makes me think most (if not all) of us go through this. I experienced this a few months ago on a panel of 2 interviewers when they asked a question regarding lifecycle and since a lot of APIs are lifecycle aware nowadays, I was the one who became "lifecycle unaware" haha so I obviously choked to give them the answer they wanted to hear (which is ridiculous because it's such a basic android knowledge). Thanks for sharing this. Some bits were actually refreshing.
@a.rohimsama72228 ай бұрын
Im prepairing for my new job, very informative. Thank you. May Aallah bless you
@devgabriel6898 Жыл бұрын
Im not a senior yet (im about 4y) but with the juniors thing i would set pair coding with them on the first steps when u re setting up the project, creating the layers, and modeling data... So they will be learning while the senior is doing his stuff. Then yes, i would give them UI related tasks at first, keeping a eye on them. Then perhaps doing completing the presentation layer with the viewmodels and data sharing with the views... Navigation stuffs maybe too. Finally, we can take testing together, starting with the senior doing one viewmodel test and then let them do the others, again keeping an eye. But idk as i said im no senior yet ... I did something similar with React Native years ago.
@arjun1194 Жыл бұрын
This interview makes sense and it is what an interview is supposed to be like, open ended. to get as much insight into the candidate as possible. In my country however they ask questions like, WRITE DOWN THE EXACT ACTIVITY LIFECYCLE LAUNCH MODES, FRAGMENT LIFECYCLE . i can just look it up. and even if i screw up one step i am already rejected SMH........
@odayprogrammer Жыл бұрын
that's a fearful way to look at interviews, do not be afraid
@mikethemonsta15 Жыл бұрын
This is great! Thank you so much for sharing this. I think i would answer the junior question differently. If the backend already has the data models you need to request, i would have them create those data models in code to help get them familiar with what the apis do. So that way when they are doing business logic later, they are already thinking about how these are going to be used. Then I would do the plumbing myself. Then when that's done, I handle the business logic for the core flow of the app while juniors handle business logic for other flows or the UI.
@odayprogrammer Жыл бұрын
well thank you for taking the time to answer it, that sure does sound better than what I said.. subscribe for more Mike!
@mikethemonsta15 Жыл бұрын
@@odayprogrammer Definitely will! Thank you so much
7 ай бұрын
What he ment by "there is no model" is that model is a domain model, which is abstraction for domain and data layers. In mvvm, this one is called model. And vm is android's vm plus livedata or state flows that are representing ui state.
@le_deer Жыл бұрын
Thank you for the honest sharing of your interview experience! It is easy to share your success but much harder to share your failures. Anyway, interview experience is no other than any other experience: the more you practice the better you do!
@oleggolomoz6378 Жыл бұрын
Thank you for the video! I'm a Software Engineer with 9 years of experience, but the preparation to the interview and the process itself can still be tricky for me :) About Coroutine question and my opinion on that part: It's not about that `runBlocking` is blocking 'entire Universe'. It's about `async-await` pair. Imagine if we had the same code, but without `await()` or with `launch` instead. The output sequence would be the same as you said in the second option: "Done" first, "Total time" second.
@odayprogrammer Жыл бұрын
hey that's pretty reassuring, I'll be streaming tonight again and hope to see you there we can talk about your experience. And yea that coroutines bit i need to revisit unfortunately
@oleggolomoz6378 Жыл бұрын
@@odayprogrammer Thank you, I'll gladly check it! If it won't be late in my timezone... :D
@mrpark42942 ай бұрын
You’re the best, man. Thanks for sharing
@xCrawfly6 ай бұрын
This is great, watching other experiences (yours) made me less nervous about interviews. Not more prepared tho 😂 I still have to fail by my own, before succeding I realized something, not sure if it was exactly that way on the real interview question, but: On the coroutines question, both scenarios printed the same because literally they were adding up both results (1000 + 500) and that's always the same (1500). But if they have rather printed the "totalTime" next to the "Done" string, the result would be different, because for the async case, the suspended functions are indeed run, well, asynchronously (regarthless being on a runBlocking). Just tested on my machine and go the next results: First case -> totalTime = 1500 ms; second case -> totalTime = 1000 ms The "Done" message is printed after the other one, even if we are not in a runBlocking (like CoroutineScope(Dispatchers.IO)). I get the point, if we're not sure on how something works, we get tricked.
@mibrahimdev Жыл бұрын
The coroutine questions: one is synchronous, and the other is asynchronous. However, it doesn't matter because both functions return the long value in the same way.
@revs87 Жыл бұрын
The synchronous one takes 1500millis, but the asynchronous one takes only 1000millis to print.
@mibrahimdev Жыл бұрын
@@revs87 if you look closely, the two functions return "val" variable which aren't affected by delay, because delay only will delay the execution time but the returns bothe are immutable.
@revs87 Жыл бұрын
@@mibrahimdevthey both return the same 1500 ms text and thats the trick - it is wrong on the asynchronous one! Each execution is triggered exclusively when calling the await().
@aleksandarmiloeski7637 Жыл бұрын
To summarize, the async (second) version does finish everything within ~1 second. It starts both delayFunctions at the same time, let's say T0s. delayFunction2 finishes at T0.5s, and delayFunction1 finishes at T1s. So at T1s (i.e. one second from the start) you have both functions finished and you have both results. However, since the first one returns 1000, and the second one returns 500, when you print result1 + result2 you get 1000 + 500 = 1500. That doesn't mean it took 1.5s for the whole operation. It still took 1 second, but the printout shows you the *accumulated* time for both operations, not the total time it took. Now that I look at my comment I realize it's not as concise as I hoped it would be.
@AndrewDChristie Жыл бұрын
Thanks!
@odayprogrammer Жыл бұрын
you're crazy Andrew, stop it! By the way I'm a father now to a little baby boy, since August 2!
@wigs_n_roses Жыл бұрын
Thank you so much for this video! It takes a lot of courage to share not the perfect experience, I respect that. ❤ I had myself very bad interview, where I was not prepared, but later I would go and learn all the questions I failed, so I will never do it again. BTW I also was asked about SharedFlow vs StateFlow and Channels. P.S.: I didn't understand the question about what is View/ViewModel, and what is View?
@odayprogrammer Жыл бұрын
Thank you for your heartfelt message, I still don’t know what the hell he meant by that question (:
@j2shoes288 Жыл бұрын
@@odayprogrammer You've always been real , not fake, ma'salaama.
@revs87 Жыл бұрын
The Model is the domain object the viewModel offers. In this case, it is just an Integer (count).
@leomak7580 Жыл бұрын
async-await examples behave a bit differently but print same thing. this is a base stuff everyone must know.
@indiegando3086 Жыл бұрын
man i have 9 years of mobile experience, at least 8 working with android, i don't know the lastest version of android without check in the internet
@odayprogrammer Жыл бұрын
🤷♂
@quantumgaming710 ай бұрын
I always know since 8 years 😇😁
@debashishmahato45912 ай бұрын
Thanks for sharing the experience with us. Oday, are you able to share the document.?
@Uuwhbsjakak10 ай бұрын
Thank you so much for this video! Can you suggest me some kind of banking knowledge that I need to know in order to go to an interview. Thanks!
@2NormalHuman18 күн бұрын
@3:34 so where is that document? Could you share it in the video description as you said?
@KingFuYouTube Жыл бұрын
Nice video! It helps to prepare for an actual interview.
@odayprogrammer Жыл бұрын
Genuinely useful content bro, thankful that you can see that
@bob_factory Жыл бұрын
For the Coroutine Questioon with async, its actually not the runBlocking that is causing this but the await keyword that is being called . await is a sunspending function and it waits until the coroutine is completed. This interview was really fun, they started from deep internals and went up to coroutines and flows. Where is the DS Algo though 😅.
@odayprogrammer Жыл бұрын
Rarely do I encounter DSA interviews
@bob_factory Жыл бұрын
@@odayprogrammer i guess it's just too competitive here, I haven't ever given one interview that didn't ask me DSA. I need to switch countries 😅
@maliksoft367510 ай бұрын
This android developer interview not for DSA.
@KunalGoyal6 ай бұрын
@@bob_factory Exactly same, tired of DSA with Android
@pzulw7 ай бұрын
Excellent! Thanks for sharing. I appreciate it.
@legolaswoodelf8229 Жыл бұрын
Good one; also very funny ending. Got a flashback to your previous video on job hunting.
@odayprogrammer Жыл бұрын
Well fought Legolas
@maxd2070 Жыл бұрын
What do you think about current job market for android app development? is it in good state?
@odayprogrammer Жыл бұрын
it's actually terrible right now and has been terrible for the past 6 months or more even. This was confirmed by my firsthand experience, also by a recruiter that knows a lot about the market I'm in, and another colleague who is also searching!
@maxd2070 Жыл бұрын
@@odayprogrammer Wanted to get an experienced dev's opinion on this. I agree with you. Backend has more demand for jobs compared to android development I guess.
@rogercolque Жыл бұрын
Hi Good video thanks about topic security Ceritifcate pinning not recommended for android. why? and what is the alternative you talking about? want to hear more about the 2 certificates alternative .
@odayprogrammer Жыл бұрын
Hey thank you. Well it says right in the docs, like a big warning notice they have. I am not sure about the alternative as it was not my idea but I am sure that said bank still does definitely use certificate pinning as a way to mitigate MITM attacks.
@MenaSamer5 ай бұрын
Thanks for sharing your experience ...
@aarinraj7 ай бұрын
Hey I m learning and. dev using KOTLIN . so can I get to know any such imp question or any video u can make on kotlin
@theredd1703 Жыл бұрын
Thanks bro! Questions are really useful :)
@imSagarMalhotra8 ай бұрын
Security docs please?
@wigs_n_roses Жыл бұрын
If such Seniooooor can be rejected, I feel much better about myself being rejected 😊
@odayprogrammer Жыл бұрын
And this is just 1 of the 3 other interviews
@BaktyiarTentimishov Жыл бұрын
Thanks for sharing, great video!
@philippoid11 ай бұрын
Great video, I like it! BTW, about async. I believe that in the first example, runs one after another it takes 1500mc BUT if you run with async it gonna print line 1500 but it is not gonna be true. it is gonna finish the section in 1000mc..... honestly, I did not test my assumption in the studio, :) if someone does it, please share the result :)
@saicharansigiri29643 ай бұрын
:android version" was personal to all android devs :)
@j2shoes288 Жыл бұрын
By the way, I'm a Senior Android Programmer, want to connect up ( I forgot your name, brother )?
@odayprogrammer Жыл бұрын
you can join the Discord if you like discord.gg/ZeJQAStG4c
@jimjuma79168 ай бұрын
This link doesn't work now
@BenAyesu Жыл бұрын
So helpful! Thanks!
@z00ka86 ай бұрын
Very helpful, thanks
@joshflugel5 ай бұрын
I failed a take home test about making a basic shopping app with a list of products, and discounts in the checkout cart. Typical Solid/Clean/Mvvm/retrofit/ComposeUI thing. Instructions where vey strict listing the requirements needed to pass the assignment, and so I did. I failed because instructions didn't mention Unit Test one single time, strict requirements, huh? According to YAGNI, no requirement, no Tests, right? Well, they thought Unit Tests should be provided by default for all code, as a given, like oxygen to breathe.
@odayprogrammer5 ай бұрын
They wanted to see if it was in your habit to test everything you write, even if not mentioned
@joshflugel5 ай бұрын
@@odayprogrammer It felt like a ripoff, not gonna lie. It felt like turning in an exam with the back side of the page blank. What I learned from this experience is I can call it a trap this first time, but the second time will be foolishness if I repeat the same mistake. Hard lesson! Great content, I like your pragmatic tone saying things, it's never boring in the IT world.
@ali_abou_bakr11 ай бұрын
can i have the security doc
@jam4l Жыл бұрын
A great video bro, I hope that you have got another chance. Your video has thaught me something about myself. Well I have been learning android development for about a year now, and i was thinking that i am still a rocky, when i started watching your video I was pausing and answering the questions, an I think that i got most if not all of them(except for channels question), so, am I that good? or it's just that the interviews are something different in reality (i have never had an interview) ?
@odayprogrammer Жыл бұрын
sure you're good, but these are 14 questions only, there's an endless number of questions and you probably won't know the answers to all of them, it happens and it's normal
@jam4l Жыл бұрын
I was going to apply for all the senior offers in LinkedIn 😅 Thanks for the clarification@@odayprogrammer
@rogeralien10 ай бұрын
This is nothing like interviews in bay Area :)
@BrianChu8884 ай бұрын
What's the purpose of asking about the latest version of Android? Instead, I'd prefer to ask (or being asked): Which version of Android did you find most frustrating, and why?
@soumyaranjan6485 Жыл бұрын
Thanks buddy...
@manticomar114611 ай бұрын
صحيح انك معلم والله ما بفهموا اشي مقارنه مع امثالك اسمع انا مبرمج على جت باك كومبوز الي 7 اشهر بنيت اب اسلاميه للاعمال الصالحه احدث اشي على جت باك مش اس ام ال والعياذ بالله بدور على حدا يستمر فيها انا مبرمج بتكساس بدي رايك بدي افتح شركه الاب فيها مثل فايسبوك فيد على فيرستور
@AnantaCrystals Жыл бұрын
NBS ? I am quite sure that's the company you faced 😝.
@odayprogrammer Жыл бұрын
Nope
@AnantaCrystals Жыл бұрын
@@odayprogrammer ok then my idea is wrong.
@odayprogrammer Жыл бұрын
it's ABN @@AnantaCrystals
@AnantaCrystals Жыл бұрын
@@odayprogrammer Ohk I see. Real challenging questions have asked. It must have been very interesting.
@everyone3602 Жыл бұрын
latest version 14
@Sherimankind Жыл бұрын
What is the faith of developers from African countries looking for jobs in European tech companies?
@odayprogrammer Жыл бұрын
If you are good you will get hired, no more no less, I know several African men here, one of them at my company too
@damorvipul199311 ай бұрын
nice like it.
@LazyTram91110 ай бұрын
Easy as a ABC. 😂😅😊
@le_deer Жыл бұрын
Suppose the answer for the "2 juniors question" will be not having them at all if you want to implement your task in time, because mentoring takes time and mental resources and with juniors you actually will be SLOWER than without them
@j2shoes288 Жыл бұрын
Here is my advice to you: 1) If you are going for a Senior role, then you'd be expected to know all those questions, and answer then correctly and positively. On top, I would expect you to show confidence, in your answers, expect you to elaborate on them, and give your views, and extras. 2) I would expect you to mention people in the field, who have contributed to Android development, where relevant. 3) Expect you to know about future changes and Open source libraries that may help in the field.
@AatmikMishra Жыл бұрын
to many expectations men
@javiere.gonzalez10217 ай бұрын
Expect to know people who contributed to Android lol. That would only remotely be relevant if you're working at Google. Even then I haven't been asked that.