Software Engineering Job Interview - Full Mock Interview

แชร์
ฝัง
  • เผยแพร่เมื่อ 10 พ.ค. 2024
  • Technical programming interviews are challenging, but being able to do well is what lands you a job at a top tech company. Improve your interviewing skills by watching this mock full-length, real-world coding technical interview (OOP + dynamic programming) for a software engineering role.
    Interviewer: @KeithGalli
    Interviewee: @KylieYYing
    The first half of the mock interview, Keith asks Kylie to use object-oriented programming (OOP) to design a reading application, given a library of books. In the second half of the interview, Keith asks Kylie a dynamic programming (DP) question trying to find the max length of the longest common substring in two strings.
    ⭐️ Contents ⭐️
    00:00 Intro
    01:26 Beginning the Interview
    03:25 Object-Oriented Design Question
    32:21 Dynamic Programming Algorithm Question
    56:35 Feedback Chat
    1:11:35 Closing Thoughts
    🎉 Thanks to our Champion and Sponsor supporters:
    👾 Nattira Maneerat
    👾 Heather Wcislo
    👾 Serhiy Kalinets
    👾 Erdeniz Unvan
    👾 Justin Hual
    👾 Agustín Kussrow
    👾 Otis Morgan
    --
    Learn to code for free and get a developer job: www.freecodecamp.org
    Read hundreds of articles on programming: freecodecamp.org/news

ความคิดเห็น • 872

  • @spamgarbage6999
    @spamgarbage6999 7 หลายเดือนก่อน +153

    I understand this all as she says it, but if I had to pull all this out of my brain in an interview Id cry or leave

    • @benicia9408
      @benicia9408 19 วันที่ผ่านมา +5

      Same lol. Too much pressure

    • @MrArkaneMage
      @MrArkaneMage 18 วันที่ผ่านมา +10

      That's why CS50 ppl get a rubber duck to talk and explain to :)
      It does not only help with understanding but also being able to explain/recall something "on command" is an important skill to learn over time.
      In that case you are your own worst enemy you have to defeat in order to get the job.
      Unfortunately there is no way around this as it is expected to be able to function properly even under heavy pressure as this reflects daily business.
      It's hard to get if you are coming straight out of school/college/uni but you need to fix this if you want to create your own place in the working class.

  • @11Khalid11
    @11Khalid11 8 หลายเดือนก่อน +251

    As someone who is poor in programming, there is something beautiful in seeing someone program so eloquently, like how we write paragraphs for a nice essay.

    • @bunnyman6321
      @bunnyman6321 2 หลายเดือนก่อน +3

      have you improved yet?

    • @user-ff1fx9vq3m
      @user-ff1fx9vq3m 2 หลายเดือนก่อน +6

      Do leetcode , read text books , leave tutorials

    • @JamesballadMD
      @JamesballadMD 2 หลายเดือนก่อน +1

      I’m great with hardware but suck @ coding.

    • @amanshekhar7200
      @amanshekhar7200 หลายเดือนก่อน +1

      What should I do then😢

  • @jheelgala6353
    @jheelgala6353 7 หลายเดือนก่อน +467

    This is pretty cool....but honestly I would cry if the interviewer started with , "Let's make a book application". I learned a lot today

    • @paultvshow
      @paultvshow 3 หลายเดือนก่อน +67

      I think this is one of the easiest problems you can ask for.

    • @bacon5481
      @bacon5481 2 หลายเดือนก่อน +12

      ​@@paultvshow what's the next step up from this kind of question? Leetcode medium?

    • @hassegawamkt
      @hassegawamkt หลายเดือนก่อน

      I have one coming up Thursday. I've been told to use LeetCode and go for medium and hard challenges. A bit overwheliming TBH.@@bacon5481

    • @Brian-ro7st
      @Brian-ro7st หลายเดือนก่อน +6

      This is about as cake an interview as you can have

  • @justin-cassidy
    @justin-cassidy 8 หลายเดือนก่อน +338

    Interviews like this are a breath of fresh air. I think being able to design a solution to solve a functional problem is a great skill set to have as a software engineer. I get so tired of seeing nothing but LeetCode type questions for software engineers. I’m not saying that solving those are easy, because they are very hard. But architecting a solution to a problem like in this video I find to be more pertinent to 99% of realistic situations in the business world.

    • @rosspayne5099
      @rosspayne5099 5 หลายเดือนก่อน +1

      I have an honest question, Isn't everyone in the coding atmosphere going to be fucked because of AI? What is it that seperates a coder from a robot that can basicly do the same thing?

    • @stanleyching123
      @stanleyching123 5 หลายเดือนก่อน +29

      @@rosspayne5099what makes u think AI can solve this? Have u tried? AI can’t even solve my uni coursework and I’m in y1

    • @rosspayne5099
      @rosspayne5099 5 หลายเดือนก่อน

      Because im seeing millions of people lose their jobs because of AI that are involved in similiar coding fields, and no dude i havnt tried it im not AI what kind of question is that ahahahah@@stanleyching123

    • @utubewatcher806
      @utubewatcher806 5 หลายเดือนก่อน +4

      @@rosspayne5099 AI is comparable to the first language compilers and interpreters translating into machine language. These efforts produced mediocre to average code. AI delivers sub-par to modest regurgitated text and code from across the web. Code snippets rarely have references, so malicious actors can blog and tag for SEO supremacy, delivering malfunctioning and negative results.

    • @schizo5189
      @schizo5189 3 หลายเดือนก่อน +1

      ​@@rosspayne5099 Oh look. Another example of AI/crypto bro pseudo-intellectual archetype utterly failing to comprehend how the underlying mechanism of the tech they raved so much about even work in the first place.

  • @ubikubik763
    @ubikubik763 ปีที่แล้ว +754

    Great video! I think it would also be great to see several people participate in the same interview. Thereby you could see how different individuals approach the same task.

    • @ronaldoavich
      @ronaldoavich ปีที่แล้ว +22

      yeah, that would be interesting.

    • @reecebygrave7211
      @reecebygrave7211 ปีที่แล้ว +5

      a perspective change would be fantastic.

    • @franciscov511
      @franciscov511 ปีที่แล้ว

      Regarding the dp problem does not have too many approches since it is a well known problem

    • @chikensaregood9500
      @chikensaregood9500 ปีที่แล้ว +1

      i love that idea

  • @JetSoftProHQ
    @JetSoftProHQ 10 หลายเดือนก่อน +67

    Great job on delivering such insightful content! This video provides valuable insights for developers preparing for technical interviews.We truly appreciate the availability of resources like this that help candidates come well-prepared for their interviews. It's fantastic to see the community coming together to share knowledge and empower future employees. Keep up the great work!

  • @Kazner0h
    @Kazner0h 8 หลายเดือนก่อน +16

    I'm so subscribed. What an amazing resource. I've watched a bunch of interview prep videos, but this one really helps put it all into context by performing it.

  • @unitygamingrio88
    @unitygamingrio88 11 หลายเดือนก่อน +44

    That was brilliant, it brought back some memories of the interviews I've sat in and went through myself, outstanding job!

  • @UnhingedEgo
    @UnhingedEgo ปีที่แล้ว +31

    I watch these whilst also learning Python too, so I can learn how to also communicate well when discussing thoughts and ideas.

  • @olesiacheban2054
    @olesiacheban2054 หลายเดือนก่อน +8

    I actually did do a follow-up after the interview once. It was my first job and I had to present my pet project.. and it did not load.. for the whole hour and a half I was trying to run it in parallel answering tech questions, but no luck. After I finished the interview I had reloaded the laptop and the project ran okay, so I made a video of it working and sent it to the interviewers. I got the job!

  • @licokr
    @licokr 9 หลายเดือนก่อน +27

    I haven't had interviews in English and the video is really helpful for me. I've never had interviews like this, so, I'm really nervous cause I'm preparing for interviews now. Thank you! "Don't write down without saying anything" I will keep it in my mind!

  • @omari6108
    @omari6108 9 หลายเดือนก่อน +73

    This is extremely helpful. When I’m doing any kind of code it’s just for myself. I speak out loud what I’m trying to do, and have a notepad next to me, but coding a project for someone else does take a lot of fine tuning to understand exactly what they want. That requires real time communication.

  • @SteveMorrow8859
    @SteveMorrow8859 7 หลายเดือนก่อน +52

    It's like being a fly on the wall of another interviewer, seeing the questions asked, solutions proposed, and feedback provided. This has changed the course of my life and in how I plan to solve problems moving forward. Great video!

  • @Plasma_King
    @Plasma_King 9 หลายเดือนก่อน +40

    Wow i actually find this challenging, but very interesting! Thank you for giving me an insight of how technical interviews are done! I actually thought it was a lot harder where they observe you on how to build it from scratch and make it work in the end!

    • @VGBNDGRL
      @VGBNDGRL 7 หลายเดือนก่อน +3

      Yeah, this was very cool to see, and quite challenging when your perspective on interviews is to ace them. I think what was most important here, is that the candidate explained her thought process out loud every single step of the way, so that the interviewer can follow along 100%, and even if the interviewer starts to not follow, maybe ask every now and then if it makes sense.
      I think I feel more confident after seeing this video bc it proves that interviews should be a conversation on implementation, drawbacks, pros, larger questions, modularity, and less on getting a right answer...because designing a system isn't something you can get right 100% in the real world.

  • @shockearth4295
    @shockearth4295 8 หลายเดือนก่อน +45

    This held my attention from start to finish! I like how she was explaining her thought process while she was writing the lines of code. It was fairly easy to follow along.

    • @emperor8716
      @emperor8716 หลายเดือนก่อน +1

      that's what you're supposed to do. if you're just quietly writing code, the interviewer's gonna fail you whether your program works or not. they mainly ask these to hear your thought process of how you solve problems.

  • @GuitarHope
    @GuitarHope ปีที่แล้ว +29

    This is awesome. Thank you so much for uploading such priceless contents.

  • @Khadi-C
    @Khadi-C ปีที่แล้ว +364

    Later this year, I will start a bachelor's in software engineering. I definitely need this!

    • @Adam-kk7nw
      @Adam-kk7nw ปีที่แล้ว +287

      Just lie and say ur transgender and non binary they won't turn you down no matter what if u failed the test

    • @lonewolf.8635
      @lonewolf.8635 ปีที่แล้ว +5

      Lol

    • @kiidpoh
      @kiidpoh ปีที่แล้ว +61

      ​@@Adam-kk7nw 💀💀yk what this is probably true too especially in places like san fran

    • @Stephen.c19
      @Stephen.c19 ปีที่แล้ว +82

      @@Adam-kk7nw modern problem require modern solution lmao

    • @Adam-kk7nw
      @Adam-kk7nw ปีที่แล้ว +5

      @@Stephen.c19 this made my whole day 😂 thank you

  • @kirk7880
    @kirk7880 4 หลายเดือนก่อน +2

    I love this. One soft suggestion is including a quick intro. I think that just reinforce a critical step in the process

  • @honeydevaang732
    @honeydevaang732 ปีที่แล้ว +108

    This is not just for the interview things, but also the code structure that was implemented so smoothly. Everything just looked like a roadmap👌👌👌👌👌👌

    • @rosspayne5099
      @rosspayne5099 5 หลายเดือนก่อน +1

      Isn't Everyone in the coding department going to be fucked hard because of AI ? Honest question, what seperates someone who can write code and a robot who can do the same thing?

    • @mrnobody1546
      @mrnobody1546 4 หลายเดือนก่อน

      ​@@rosspayne5099most probably, but my lecturer told us to embrace it, AI is inevitable, so we must learn to use it efficiently

    • @MK-rx2fj
      @MK-rx2fj หลายเดือนก่อน

      ​@rosspayne5099 a bot writes code for instructions you give and you edit parts of that therfore your productivity is higher

    • @YouTube_MusicStyle
      @YouTube_MusicStyle หลายเดือนก่อน

      ​@rosspayne5099 , AI to coders is like Tractors to Farmers. Useful tool to handle things efficiently but without the farmer the overall job doesn't get done.

  • @arkprince9413
    @arkprince9413 ปีที่แล้ว +2

    that first question hit the spot exactly what i am lacking for years i want more

  • @omgmaw
    @omgmaw ปีที่แล้ว +5

    Great video. I learned a lot of news tips and tricks on how to approach a technical interview.

  • @shishenliart
    @shishenliart 9 หลายเดือนก่อน +8

    Learned so much from this video. I am a fledgling programmer (just started taking the 200-series programming classes) still trying to learn a language and practice my logic building skills and this helped tremendously.

  • @Ninjaah_
    @Ninjaah_ 5 หลายเดือนก่อน +105

    i am never getting a job

  • @countremy730
    @countremy730 ปีที่แล้ว +9

    thank you for taking us along on this invaluable resource. More please if you are able. If not, I completely understand.

  • @DiegoXMV
    @DiegoXMV 9 หลายเดือนก่อน +6

    this was pretty mindblowing, and looking to switch companies has eye opening. I really need to work on my algo game for the interviews

  • @KaioRosa
    @KaioRosa ปีที่แล้ว +6

    This is fantastic!! I loved it!!!

  • @debbie_bae
    @debbie_bae ปีที่แล้ว +6

    I just love Kylie's workflow and mental clarity!

  • @amortalbeing
    @amortalbeing 7 หลายเดือนก่อน +6

    side note:
    9:21 dictionaries are ordered since python 3.6. regardless if you'd want an ordered dictionary, you have always have the ordered_dict as an option!

  • @sixstanger00
    @sixstanger00 11 หลายเดือนก่อน +37

    I never understood the point of technical interviews "testing your coding ability." Nearly all programmers will have a portfolio showing what they're capable of. I shouldn't have do it again under the gun just to back up my portfolio. If you're going to test my skill in a technical interview, don't ask for a portfolio.

    • @user-pl6hy3km6s
      @user-pl6hy3km6s หลายเดือนก่อน +1

      true but they also want to make sure you haven't just copied others people work, and they also want to see how you handle under pressure

    • @sixstanger00
      @sixstanger00 หลายเดือนก่อน

      @@user-pl6hy3km6s
      *_true but they also want to make sure you haven't just copied others people work_*
      If this is the reason, then every software engineer in the field needs to be fired. I don't know of any software engineer who hasn't at some point referred to StackOverflow for snippets of code.
      It's inefficient to expect coders to rewrite code that already exists, especially if it's going to serve the exact same function. Even if the coder DOESN'T copy it from someone else, the CODE will still end up looking identical (apart from perhaps var names) because languages like Java, JS, CSS, Python, etc will only work if code is written one way.
      *_and they also want to see how you handle under pressure_*
      Yet again, this is a pointless test. Nearly any job is going to put the worker under pressure at some point. People apply for jobs EXPECTING to be under pressure occasionally. If they knew they couldn't handle the pressure, they wouldn't be applying.

    • @vaisakhkm783
      @vaisakhkm783 14 วันที่ผ่านมา +1

      90% of junier engg. showing as their project in portfolio is something they made my following some random tutorial, but when we give a problem, they lack ability to solve problem even if they know the syntax......

    • @sixstanger00
      @sixstanger00 14 วันที่ผ่านมา +3

      @@vaisakhkm783 It's still not an accurate test of their abilities. Your "test" is testing _how quickly_ they can come up with a solution, not they're actual problem-solving skills.
      The real world doesn't work like that. When you encounter a problem in coding, it's not like you have a team of executives peering over your shoulder expecting you to come up with a solution on the spot. That's asinine.
      Unless you run your company like a slave labor force, the actual employee is going to need time to ASSESS the problem, and then formulate possible solutions (some of which may not even work).
      You're expecting the potential employee to be a walking encyclopedia of all languages, situations, problems, solutions, etc. The person you're looking for doesn't exist, bud.

  • @faraaz3414
    @faraaz3414 ปีที่แล้ว +7

    Awesome!!!!
    Please bring more of these.....

  • @Yeard491
    @Yeard491 ปีที่แล้ว +12

    Been looking for this exact thing for AGES. Awesome!

  • @bloodorangebrisktea87
    @bloodorangebrisktea87 9 หลายเดือนก่อน +1

    Thank you for making this mock interview!

  • @prism_schism
    @prism_schism ปีที่แล้ว +34

    Okay, I realize software engineering IS for me😂 loved the discussion, and looking forward to talking CS with people.

  • @zebra00024
    @zebra00024 8 หลายเดือนก่อน +2

    It was actually very good, both sides are very professional 👍 Excellent examples.

  • @jaretsanchez1900
    @jaretsanchez1900 ปีที่แล้ว +52

    I've been working as a developer for a year now and it's very humbling how she can mention these best data types to provide for these objects. Things like dictionary objects are still new to me.

    • @franciscov511
      @franciscov511 ปีที่แล้ว +10

      It is basically a hash map, in python it is called dictionary

    • @sidgillespie5879
      @sidgillespie5879 26 วันที่ผ่านมา

      Keep in mind this video is staged.

  • @FifthArima
    @FifthArima 3 วันที่ผ่านมา

    This is great content ! Appreciate a lot , hugs to both of you for putting this up here.

  • @nocopyrightgameplaystockvi231
    @nocopyrightgameplaystockvi231 ปีที่แล้ว +243

    The use of Lists was actually pretty cool. I was thinking of a JSON array, but then Lists are kind of way more powerful due to their incredibly useful methods and as said in Head First Python book, "Lists are arrays on Steroids". Nice Mock Interview. I just want these to go on.

    • @onemoregodrejected9369
      @onemoregodrejected9369 ปีที่แล้ว +50

      If you are told to use python, you gotta ABUSE the hell out of lists!

    • @nocopyrightgameplaystockvi231
      @nocopyrightgameplaystockvi231 ปีที่แล้ว +12

      @@onemoregodrejected9369 damn yes. LISTS are for abuses 🤣🤣🤣🤣 without regrets.

    • @thisismyplaylist
      @thisismyplaylist ปีที่แล้ว +4

      yep I added that to my background

    • @anon-fz2bo
      @anon-fz2bo ปีที่แล้ว +1

      yea when they said 'collection' of Books I automatically defaulted to std::vector or Vec or []Book or even Book* if ur feeling fancy and want to use a static array

    • @nocopyrightgameplaystockvi231
      @nocopyrightgameplaystockvi231 ปีที่แล้ว

      @@anon-fz2bo pointers 😂 not unless it's mentioned.

  • @Sinnerage
    @Sinnerage 2 หลายเดือนก่อน +3

    As someone who’s only a few weeks into my coding journey I’ll have to come back to this when I have a better idea of what she’s coding, I understand some of it but a lot of this like hieroglyphics lol. Awesome job tho and very cool to watch.

  • @lilyou2219
    @lilyou2219 6 หลายเดือนก่อน +52

    I am so jealous about how Kylie been able to express her thinking process this clearly and how quickly she came up with the solution. How long will it take to be as good as her?

    • @passiongotways1286
      @passiongotways1286 5 หลายเดือนก่อน

      Just be you

    • @Haise-san
      @Haise-san 5 หลายเดือนก่อน +9

      Some good practice time doing explanations while you're solving a problem coding, soon enough it will become hardwired in your brain.

    • @optimistiks
      @optimistiks 2 หลายเดือนก่อน

      you should be much better if you want to get to faang, there you are expected to solve two leetcode hards in ~40 minutes, and this dp task was at most medium

    • @memaimu
      @memaimu 2 หลายเดือนก่อน +1

      A CS as your first and only degree and a passion mainly for programming for the better half of your life.

  • @j_a.0
    @j_a.0 7 หลายเดือนก่อน +10

    Im literally not even in uni yet, and i want to do computer science. Im doing maths a level right now, and watching this has gotten me so exicted because it truely is its own language. Ive also always loved solving problems that can have multiple unique ways of getting the same result (hence why i love maths), and ive just realised coding is that exact same thing!!!

    • @UnfinishedYara
      @UnfinishedYara 6 หลายเดือนก่อน +3

      Keep it up!! Your intrest alone is a great quality to have!

  • @adrianmargean3402
    @adrianmargean3402 ปีที่แล้ว

    i don't have enough words to thank you for this video!

  • @tjames22123
    @tjames22123 ปีที่แล้ว

    Great mock interview! Thanks for the tips :)

  • @mattlau
    @mattlau ปีที่แล้ว

    This is an incredible video! Thank you!

  • @dave_di
    @dave_di ปีที่แล้ว +4

    This man is a beast with data.

  • @seshank144
    @seshank144 หลายเดือนก่อน

    The answer for the follow question regarding font size feature was just awesome

  • @dextercalayo
    @dextercalayo ปีที่แล้ว +3

    Awesome content. Thank you!

  • @smarch3912
    @smarch3912 7 หลายเดือนก่อน +6

    As a noob who literally started my journey yesterday I understood nothing, but it's pretty cool to see what someone who already knows her stuff looks like. Hopefully when I come back in a few months eveything she is saying and doing will make sense to me. So far I'm loving it, though.

    • @michaelaguilar1750
      @michaelaguilar1750 6 หลายเดือนก่อน

      What age are you starting?

    • @Fran-kc2gu
      @Fran-kc2gu 6 หลายเดือนก่อน +3

      you are learning in the worst date, interviews are wild now

    • @Florida_man21
      @Florida_man21 หลายเดือนก่อน

      ​@Fran-kc2gu I know, I wish I started to code when I was a new born

  • @RamiroAsincrono
    @RamiroAsincrono 3 หลายเดือนก่อน +1

    Thank you for this excellent mock interview!

  • @masongkrause7
    @masongkrause7 3 หลายเดือนก่อน +1

    In the library class, the collection of books should be a dictionary from Book : active_page_number, that way a users library would be full of books and the page they're open too, along with an active book. That was what the interviewer asked about too! Just in case anyone else was wondering.

  • @manfrombritain6816
    @manfrombritain6816 7 หลายเดือนก่อน +2

    4:45 haha i basically made this exact thing for my own fun project to promote a book i wrote. i chose to implement the "display page" thing by writing a script that would get the next X words in the entire book - where it would estimate an average number of words per line and number of lines per page, then try to fetch as near as possible to Lines * WordsPerLine - rounding down.
    it worked pretty well so that page numbers could be independent from the book content, however it would often leave you mid-sentence with a bit of a gap before the end of the line which would look a bit weird.

  • @TheQuancy
    @TheQuancy ปีที่แล้ว +42

    After doing a lot of leetcode and have been destroyed by edge cases. Not adding an edge case for page turning and out of bounds index error is killing me

    • @hidoryy
      @hidoryy ปีที่แล้ว +4

      failing because of edge cases in leetcode makes me feel really stupid because usually you just need to add a single if statement to pass the test

    • @sweetphilly2
      @sweetphilly2 ปีที่แล้ว +2

      lol ol' boy traumatized

  • @marcus47_
    @marcus47_ ปีที่แล้ว +22

    Started Python a couple weeks ago, was interesting to see the way the scenarios were dealt with considering I don't even really know how classes even work yet lol

    • @stephan4804
      @stephan4804 ปีที่แล้ว +6

      I'm in my second semester of OOP and I still struggle wrapping my head around things like class relationships. I think Most intelligent people if they put the effort in could understand what methods and instances of a classes are. However, to fully understand classes, you need a deeper understanding of object-oriented principles. Now I don't believe most people would comprehend concepts like abstraction, encapsulation, inheritance, and polymorphism etc... Its a very deep and complex topic that takes practice and practice.

    • @ontoshere
      @ontoshere 10 หลายเดือนก่อน +10

      I know this is a bit late, but the easiest way I found to understand classes was to, just a coincidence here, but think of them as books. A book has key elements to it, author, the content, published date, isbn etc, and those would be enforceable properties of a class, things that make the object, the object, in this case a book, a book. Right? Then inside a book, has chapters, think of those as methods, every chapter provides a function regarding the book, chapter 1 for example uses the content and starts the process of moving the story forward, while maybe chapter 6 is needed to develop a character a bit more, and all that information is there for you to reference. Think of that as class.method. You need to know about that guy from chapter 6? book.chapter6() will provide that for you. Now you have the blueprint of a book, all you have to do is initialize the object and pass it what it needs, write the author down, write the content, etc. Book hp= new Book(author, content, isbn, etc) and you can crack that thing open whenever you need to now to access it's contents, again, hp.chapter6(). Or a more realistic example hp.length() and your length method would just be like ```return len(self.content)``` using python.
      And to add on to that, for inheritance like above, book maybe more of a broad class if you will, but then maybe you want a short story class with the same type of functions as the book class. There's where inheritance comes in. The book class can be used as a parent of the short story class, where the short story has copied the over structure of a book, but it's still it's own separate thing so it can have some specialized methods as well. I'd keep going but I think you get the jist. It doesn't work great for encapsulation, but just wrapping your head around classes and understanding their purpose opens a lot more possibilities for comprehension for the other concepts.

  • @dylanheslop9161
    @dylanheslop9161 ปีที่แล้ว +2

    Awesome!
    I haven't wateched it fully yet but I think it will be perfect if we code with her and actually answer and format our answer while she does the same
    Thats what Im gonna do

  • @surkewrasoul4711
    @surkewrasoul4711 ปีที่แล้ว +1

    This was just awesome. 😊

  • @younggamerham517
    @younggamerham517 9 หลายเดือนก่อน +7

    I wouldn’t be able to explain it and talk as good as her, but at least I also had the same concept going through this and slightly a bit different ways to go about making stuff! Other than that great lesson

  • @_Anna_Nass_
    @_Anna_Nass_ ปีที่แล้ว +805

    This is top tier content. I love hearing her explain her thinking process. Thank you freecodecamp!

    • @OMFGTrexKyle
      @OMFGTrexKyle ปีที่แล้ว +8

      I agree. Kinda annoying how he kept talking over her

    • @Platcode797
      @Platcode797 9 หลายเดือนก่อน +10

      ​@@OMFGTrexKyleig interviewer can do that, so it's good

    • @BrendanAbolivier
      @BrendanAbolivier 8 หลายเดือนก่อน +8

      As someone who've been on both end of interviewing, verbalising your thought process is very important in an interview - and Kylie Ying did great in that regard here. It's better to overshare about what's going through your mind (as long as it's still related to the matter of the interview 😛) than the opposite; if you're completely silent and suddenly stop doing anything, the interviewer can't read your mind to tell if you're just taking a break to think better about your solution, or if you're completely lost and don't know how to ask for help.

  • @paco5star
    @paco5star 9 หลายเดือนก่อน +15

    I must be closer to my goal then I think because I was able to build this particular assignment very easily I’ve been learning programming for a year and a half now about to start the job search soon!

    • @chickenlittle4344
      @chickenlittle4344 9 หลายเดือนก่อน +10

      Thats great to here! I am on the other side of the spectrum lol. I am learning CSS and HTML 😢 This turns my world upside down. I wish my MIS BS taught me more.

    • @drickascorner
      @drickascorner 8 หลายเดือนก่อน

      @@chickenlittle4344 lol same just started learning! we will get there.

  • @Seremothgr
    @Seremothgr ปีที่แล้ว +14

    Great, now some way to handle the crippling interview anxiety.

  • @qghungluu5757
    @qghungluu5757 4 หลายเดือนก่อน +1

    damn, she's so good at speaking thoughts and exchanging information

  • @antonioaugilar168
    @antonioaugilar168 9 หลายเดือนก่อน +6

    Just finished the first semester of python and all of this makes sense.

  • @CesarRodriguez-nb2lm
    @CesarRodriguez-nb2lm ปีที่แล้ว +1

    Amazing content as always...

  • @SierraFulminare
    @SierraFulminare 6 หลายเดือนก่อน

    wait i love this, thank you so much for the video

  • @SnapshotsOfHistory1
    @SnapshotsOfHistory1 3 หลายเดือนก่อน +24

    This video just killed my desire to be a software developer

    • @daughteroftheking3220
      @daughteroftheking3220 2 หลายเดือนก่อน +4

      Fr😂😂 imagine doing this in an interview real time I would literally just be lost and the pressure of time/my anxiety would get the best of me. I would just give up and exist out of the interview room right then and there and not look back.

  • @rvzgar
    @rvzgar 6 หลายเดือนก่อน

    very educative and professional, made me excited already.

  • @angelg3642
    @angelg3642 2 หลายเดือนก่อน

    Thank you very much for taking the time for the test and the technical interview.
    Unfortunately, we cannot offer you the position at this stage, but let's keep in touch for future opportunities.
    I wish you success and the best realization in your career, don't give up, you have great potential for development.

  • @davinkyy6723
    @davinkyy6723 7 หลายเดือนก่อน

    I have a couple questions for the book and library classes.
    1. when the code is ran are you intending to make a object from book and then adding it into the collection
    2. when adding to the library collection can you just do this
    self.collection[self.idcount]= book ## book would be the object you made from book
    also based on this you would only need 1 counter in the library that sets a id to a book when inputed into the libraray

  • @thegamerteo0560
    @thegamerteo0560 5 หลายเดือนก่อน

    currently doing btec in computer science, this vid helped me a lott

  • @tallerdenyooh
    @tallerdenyooh 9 หลายเดือนก่อน +1

    Going character by character to detect for plagiarism between two books sounds over the top.
    Have a globalSum var that keeps track of the highest number of common words between books. Indincies is a tulple that caches the indexes of the two books that globalSum comes from.
    Before going character by character, I’d have an array of objects for each book where the keys are the individual words in each book and the values are the number of occurrences the word shows up in the book.
    Then iterate over the array from i ==> [0, n-1) and iterate over the keys in array[i]. If the key is found in array[i +1] then add the minimum value between the two objects to currentCount.
    When we’ve finished checking all the keys, compare if currentSum > globalSum, then update globalSum to currentSum and indexes to [i, i +1]
    Return indexes when we’re done iterating over the array of word_count_objects

  • @sureshchakma5492
    @sureshchakma5492 ปีที่แล้ว +1

    ❤❤❤ just awesome interview

  • @vcool
    @vcool 2 หลายเดือนก่อน +6

    Instead of giving dynamic programming exercises that are completely irrelevant to the job, interviewers should make the effort to come up with more realistic problems have some connection to the job.

  • @bigsmoke4568
    @bigsmoke4568 ปีที่แล้ว +2

    That keyboard sounds heavenly! 👌

  • @JS-ii3rn
    @JS-ii3rn 17 วันที่ผ่านมา

    Great job! I’ve just noticed that you introduced some difficulty maintaining the code and ambiguity in the add_book_to_collection(). Instead of Passing in the arguments manually, passing in a finished book object brings benefits like avoiding duplicates, avoiding invalid states or changing Book in the future.

  • @KingstonFortune
    @KingstonFortune ปีที่แล้ว +13

    this is really good stuff! kudos to the team for putting this together... I noticed one thing tho, at 11:28 I figured she could have used ISBN instead of ID, as ISBN is the unique number for every book. I love that she used list for the pages too.

    • @kinuly1174
      @kinuly1174 ปีที่แล้ว +7

      Unfortunately, like the interviewer said, this is for indie works, and are not necessary all registered to the ISBN system. An ID system would be more robust in this case, but I like that idea!

    • @alexeisosin9203
      @alexeisosin9203 ปีที่แล้ว

      there 's also a limitation that ISBN was only introduced in 70's so basically all antique books are ruled out, but ISBN option should have definetely been discussed, and it didn't

    • @alexeisosin9203
      @alexeisosin9203 ปีที่แล้ว +1

      @@kinuly1174 sorry, no printed book can be sold without ISBN. Are you talking about articles, not books? or something like github "books"?

    • @LinuxUser123
      @LinuxUser123 11 หลายเดือนก่อน +1

      @@alexeisosin9203 I think it was like custom books that the user can create, not officially with a registered ISBN but they mentioned they need to give it a Title, so I think it's users own book

    • @rookieEngineer
      @rookieEngineer 8 หลายเดือนก่อน +1

      I think she was trying to giving an ID to multiple same books since isbn would be same for all these that would not work. As she said in the real world it would be not ideal to assume there isn't multiple copies of the same book. Giving an ID by the way the books are added to the library gives each book a uniqueness

  • @usman-ali0
    @usman-ali0 ปีที่แล้ว +2

    This channel is GOAT 🐐❤

  • @lalodominguez7121
    @lalodominguez7121 8 หลายเดือนก่อน +1

    she handled that no problem 🔥

  • @izaiahevans6989
    @izaiahevans6989 ปีที่แล้ว

    Thank you so much, this will help me apply for a job as a software engineer next Month.

    • @paolajimenez979
      @paolajimenez979 7 หลายเดือนก่อน

      How’s your interview went ?

    • @izaiahevans6989
      @izaiahevans6989 7 หลายเดือนก่อน

      @@paolajimenez979 Searching still, jobs are being taken. No interview yet.

  • @skyclean5020
    @skyclean5020 9 หลายเดือนก่อน

    Great Video! one concern here. Active book and last page will not be different for each user?

  • @Wts185
    @Wts185 ปีที่แล้ว +2

    This is crazy it’s this really a mockup for fresh grad developer

  • @lovemore4083
    @lovemore4083 8 หลายเดือนก่อน +2

    More than an interview this seems like a scrum call where the project manager and his team member are discussing on the technical processes to execute real time projects in high detail. In most interviews I’ve faced so far your coding based mind set is judged once you progress to the final round. Not all software engineering job interviews are this complex and are conducted this way. Most interviewers are curious to know your significant contributions in the recent projects and how your acquired skill set can be applied to the application they are working on improving or innovating. Last but not the least how well do you remember the basics … the abcd of programming.

  • @codingsingh4156
    @codingsingh4156 ปีที่แล้ว +3

    there can be many active books.. a map with mapping between string and boolean makes sense.

    • @exmachina767
      @exmachina767 ปีที่แล้ว

      Why not just a list of active book ids per user?

  • @bach5369
    @bach5369 ปีที่แล้ว +4

    i have a few questions, from this interview, how good do you think she is? what level should she be working at (senior, junior, ...)? are these questions hard for someone with 1 year of self-taught knowledge?

  • @quimalabs
    @quimalabs 6 หลายเดือนก่อน

    Start by creating a diagram class and defining object relations. Then, implement the diagram class code and share it with your interviewer.

  • @johnbruder4519
    @johnbruder4519 8 หลายเดือนก่อน

    Great stuff Olivier!

  • @raccontiinformatici8580
    @raccontiinformatici8580 ปีที่แล้ว +7

    In my view, the last page read by the user should not be a field of the Book class. If we enter the last page read as a field of the book, it means that we will have to create different instances of the same book for different users of our application. By the way, the last page read does not seem to me to be a property of the book, but a field of the user in relation to the book.
    Anyway thanks, it was interesting to follow this video. It allowed me to get some practice on application design. I had a lot of fun with it.

    • @alfonsovieyra9321
      @alfonsovieyra9321 11 หลายเดือนก่อน

      You reckon she should have made a relation table between books and users?

    • @raccontiinformatici8580
      @raccontiinformatici8580 11 หลายเดือนก่อน +5

      @@alfonsovieyra9321 As far as I remember, I would have created a ‘bookmark’ map of in the user class to track the last page read for a given user’s book. In this way you can avoid duplicating instances of books just to keep track of the bookmark.

    • @rdothl5
      @rdothl5 10 หลายเดือนก่อน +2

      @@raccontiinformatici8580 That is the same thing I was thinking of. She totally forgot to take into consideration multiple users in Book app. Design is totally off If you ask me.

    • @ranjaniraman3376
      @ranjaniraman3376 7 หลายเดือนก่อน +1

      exactly my thoughts the last read page is per user and it shouln't be part of the book. It should be part of a user object more specifically user object have a of books with key being books (active / inactive) and value be last read page in that book.

  • @barravos
    @barravos 8 หลายเดือนก่อน +2

    I think it's very important to point out that at 33:45 the explanation that Kylie gave was incorrect in regards to what Keith meant when he used the term sub string. Keith later indirectly clarifies at 44:10 what sub strings are meant to represent, which to my understanding are the individual words in a string aka "Sub Strings", not the individual characters (char) of a word, subsequently also not the words that can be created from the individual characters to match words in the comparison of String A to String B. This can be very confusing to viewers who are not familiar, and I think requires further re-clarifying.
    Fantastic video, really loved the example shown for demonstrating OOP, and the approach to writing out each task and breaking down the solutions very specifically. Thank you for the video.

    • @AlexAnder-op7yc
      @AlexAnder-op7yc 2 หลายเดือนก่อน

      It's definitely the characters not the words but it's not clear why she is saying non-consecutive occurences of the same characters are substrings too. That's just not true.

  • @deluxebulls5939
    @deluxebulls5939 7 หลายเดือนก่อน

    damn i got a loooong way to go! ha! I knew that already but seeing this really makes it hit home. Just gotta take it one day at a time!

  • @randy4ii411
    @randy4ii411 ปีที่แล้ว

    I am not sure if you know this or not Kylie but poppy lee in Mythic Quest must be you cause you look exactly like her, especially when you wear the specs. Amazing.

  • @CertificationTerminal
    @CertificationTerminal 8 หลายเดือนก่อน

    Much appreciated!

  • @48_subhambanerjee22
    @48_subhambanerjee22 6 หลายเดือนก่อน

    This felt so amazing

  • @sweetphilly2
    @sweetphilly2 ปีที่แล้ว +5

    Curious if a Page object would've been a good decision once he asked to implement font size

  • @frogery
    @frogery ปีที่แล้ว +93

    i will never work for any company that asks these types of algorithm interview questions, but i do appreciate seeing how people go about solving them :)

    • @TozzaYT
      @TozzaYT ปีที่แล้ว +4

      how do you know they wont ask you this?

    • @frogery
      @frogery ปีที่แล้ว +93

      @@TozzaYT if they do i'll just run away 😂

    • @MiltkaStar
      @MiltkaStar ปีที่แล้ว +9

      Why are these interview questions bad? Just curious

    • @DetectiveConan990v3
      @DetectiveConan990v3 ปีที่แล้ว +76

      @@MiltkaStar i think one problem people have with them is that you almost never have to do these leetcode style questions in a real job

    • @muratcemyalin
      @muratcemyalin ปีที่แล้ว +50

      i agree with you. i've been working as a coder for almost 21 years for now and never wrote a code to solve anything like a "plagiarism" algorithm question. This is not a real world question. they are just questions for satisfying their egos.

  • @saidibrahim5931
    @saidibrahim5931 ปีที่แล้ว +2

    Please make more videos like this

  • @strideredz
    @strideredz 11 หลายเดือนก่อน +2

    Just starting my coding journey and all I got from this is "Is there Adele" 21:07
    I got a long way to go

  • @wulymammoth
    @wulymammoth ปีที่แล้ว +104

    The design misses a couple of things to consider:
    1. if we are representing digital books, how a book’s content is paginated changes quite a bit depending on screen size and it isn’t captured here. It also has an impact on the interface like page turns, etc.
    2. The ID was simply hand-waved. The emphasis was put on titles of books being possibly unique, but since no author is captured, it’s even harder to differentiate the content between two books of the same title. There also isn’t a time stamp to capture when a book was created either. There are some interesting ID schemes out there that can be globally unique and capture time - snowflake for example.
    3. what is the point of having a display_page method? It wasn’t a part of the requirements. When crafting an interface for something it’s intuitiveness for other developers lays heavily in whether another dev can understand what they’re interacting with and what its responsibilities are by simply looking at the methods. Encoding the word display into a method suggests that this object has view-specific concerns.
    For the library design, some considerations that were missed and not asked about:
    - asking how the library is used: humans won’t be trying to remember a machine-generated ID. So how do we obtain the ID for a book? I wish she would have asked about a search interface
    - where did the remove book from collection come from? It wasn’t a requirement
    - this code example revealed some inconsistent API design details: encoding redundant information into the methods, e.g., add to collection (the library is a collection) and the method can be simplified to add or register, and secondly, command of the language: Python has setter and getters via property decorator such that both are of the same name without having to encode “set” into the method name.
    - the library has view-concerns that are owned by the book
    In this interview, Kylie kind of just declares everything in a “matter-of-fact” way. It comes off confident, but gives very little opportunity for the interviewer to interject as she doesn’t spend time asking the interviewer whether something seems amiss or overlooked.
    There are a lot of trade-offs being made and some anti-patterns that have real-world maintainability and extensibility impact with the current design that isn’t considered - the auto-increment ID gen scheme will break should we need to shard. Also what happens when we have books with other attributes like non-digital? This means the book class now gets modified? Lots of considerations. Again, perhaps not required of a junior, but the interviewer should’ve asked and at least forced the interviewee to pivot and see how they handle that, and not simply check if their views of the world aligned.
    However, as a demonstration of how real world interviews are, this is probably pretty run of the mill OOP that would get a pass and there are definitely a few solid considerations in the choice of primitive data types used, although I would have liked the interviewer to push back and ask why one over another more often. He simply just took what Kylie said as is…

    • @davidpaez_co
      @davidpaez_co ปีที่แล้ว +1

      Really good observations. Thank you!

    • @platinumsnake
      @platinumsnake 11 หลายเดือนก่อน +3

      I was thinking from the start, that you would never store this data in the app, such a bad design.
      Why not use user_ID and private key to access your database of books and user "libraries". You can store user settings locally, maybe even last pages but storing the books would just compromise your merchandise...

    • @II-xw6kg
      @II-xw6kg 10 หลายเดือนก่อน

      what a thorough explanation! Great points!

    • @asganaway
      @asganaway 9 หลายเดือนก่อน

      Creating a new book everytime we insert it in a library, does it means that me and you reading the lord of the ring are reading a different book? I can see many principle of object programming are not known by the candidate.. it's ok for the interviewer to go on and passing in a practical implementation.. but the first part was not sufficient..

    • @jacoblehrer4198
      @jacoblehrer4198 7 หลายเดือนก่อน +1

      she discussed that in the video, that there would be single books in a global database keyed for each user's library@@asganaway

  • @Jujuh-000
    @Jujuh-000 9 หลายเดือนก่อน

    Dude, keep it up!

  • @wulymammoth
    @wulymammoth ปีที่แล้ว +3

    Substring was redefined to subsequence and not noted. Semantically, a substring’s characters or graphemes must be contiguous.

  • @yuikozhang5650
    @yuikozhang5650 7 หลายเดือนก่อน

    She is so young, so beautiful and so organized. Thank you for this amazing demostration.

  • @shreesivlogs
    @shreesivlogs 8 หลายเดือนก่อน

    great mock interview, i love this video.....🙂

  • @ExploreTUlearn
    @ExploreTUlearn หลายเดือนก่อน

    Wow! She is so good and confident.

  • @nguyenthanhlong5963
    @nguyenthanhlong5963 ปีที่แล้ว +1

    awesome, thank you for sharing :3