Блог пользователя ADJA

Автор ADJA, история, 4 года назад, По-английски

Hello, Codeforces

Here is something I've been working on for a while now. It's still in beta, but I think it's in a good shape to share. I think it's relevant to CF community, but if not, sorry for the spam :)

I am an ex-Google software engineer, and I wrote down almost everything I know about interview preparation, and launched a small website. It is something of a preparation course and guide at the same time.

Here is what's inside:

  • 40+ articles about everything from resume to algorithms to compensation.
  • Selected leetcode problems with hints, solutions and such.
  • Code examples and explanations of common algorithms and techniques.
  • A place where you can track your interview preparation progress.

Please take a look and let me know what you think. Hopefully, you will find it useful in your own preparation!

Link: https://interviews.school/

P.S. I would appreciate any feedback. Feel free to point to any errors you will find. And what else can I add?
P.P.S I think some articles there will be relevant to people learning competitive programming as well. For example, you can check out articles on sorting, dynamic programming, heaps, and graphs.

  • Проголосовать: нравится
  • +138
  • Проголосовать: не нравится

»
4 года назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится

Looks Nice.

»
4 года назад, # |
  Проголосовать: нравится +2 Проголосовать: не нравится

There are lots of interview preparation websites, but the total number of problems on sql and oops is very few. So someone who is weak in these topics doesn't have much option to practice. It would be great if you could have similar types of problems on your website (if possible). sql may include given description write query which is verified against testcases, while oops may require given class and method definition, implement the same and then the implementation to be tested against hidden test to verify if user has achieved the required functionality.

  • »
    »
    4 года назад, # ^ |
      Проголосовать: нравится +7 Проголосовать: не нравится

    Hackerrank has ample amount of problems on sql.

    • »
      »
      »
      4 года назад, # ^ |
      Rev. 3   Проголосовать: нравится +2 Проголосовать: не нравится

      I could count only 58 questions including very basic and standard 'hello world types' as well. Please let my know if I missed something ?

      • »
        »
        »
        »
        4 года назад, # ^ |
        Rev. 2   Проголосовать: нравится +4 Проголосовать: не нравится

        Which hackerrank are you using bruh, there are problems from easy to medium and hard level and not only "hello world types" and i think they are more than enough for interview preparation(other than theortical DBMS).

  • »
    »
    4 года назад, # ^ |
      Проголосовать: нравится +5 Проголосовать: не нравится

    Leetcode has some SQL problems: https://leetcode.com/problemset/database/

    In terms of OOP it's hard to really check it (I would suggest reviewing common patterns), and Leetcode problems under the following tag seem relevant: https://leetcode.com/tag/design/

    • »
      »
      »
      4 года назад, # ^ |
      Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

      Sir, 90% of the leetcode sql are locked for premium members, and I don't know about others, but for me personally, it is too costly. Regarding the design problem, it is good, but more focused towards dsa. I have hardly seen any design problem that exposes me a class, and asks to build another class inheriting from it and having given methods and parameters ? Questions like these require understanding of oops, while those in design tags rather are just solving dsa with a little to no oops involved at all.

      • »
        »
        »
        »
        4 года назад, # ^ |
          Проголосовать: нравится +1 Проголосовать: не нравится

        Well, most of OOP skills come from the experience I guess.

        Try to implement your own classes with inheritance/interfaces? Or read a good book like Effective Java.

        You can also try to implement a small project. For example backend of a coffee shop or social network – you can use fake/mock databases, frontend and stuff for it to be easier.

»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Looks amazingly simple and easy to flow through. Will definitely try to follow the content given. Its not everyday you see a googler share guide us.

»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Thanks for this, but I wanna ask a question that is String not so much important for Interview preparation?

»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Everything is good, but here's one suggestion: move the 'dark mode button' to the rightmost side of the webpage as it is easier to see and also to understand what it actually does.

  • »
    »
    4 года назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Thanks, I'll keep this in mind. I like the current location and most users seem to be okay with it too, but I can experiment.

»
4 года назад, # |
Rev. 2   Проголосовать: нравится +59 Проголосовать: не нравится

I completely reworked the website recently, now it looks much better, and I also rewrote most of the articles to make them read better. Also now there are user accounts, and you can track problems and articles you have already completed and see your overall interview preparation progress.

Also, here are some articles that are relevant for the competitive programming. Problems there are from Leetcode and are generally easier than usual CP problems, but are still very good for the beginners to practice particular algorithms and techniques:

»
4 года назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится

Nice content and website works great as well.

»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

I want to suggest one feature...

User shouldn't manually check the mark for solved problems, can you connect it with user's leetcode account so that it automatically checks the problems the user has already solved.

Not a big deal in not adding it.

  • »
    »
    4 года назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Good suggestion, I thought about it before too. For now it looks not that easy to implement, and not really worth it – after all, clicking one button is not that hard, and you are practicing just for yourself, so there is no incentive for "cheating". But that for suggesting, I will definitely keep this in mind for the future features!

»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Nice Initiative and really the problems are well curated. UI is also quite good and easy to read.

I would suggest to add more content on "System Design" and Object oriented design. Also it would be great if the problems can be tagged with the company in which it is asked most.

Thanks

  • »
    »
    4 года назад, # ^ |
      Проголосовать: нравится +5 Проголосовать: не нравится

    Hi, thanks! Glad that you liked it.

    There is some information about system design here: https://interviews.school/systemdesign, but I maybe will add some more in the future. And maybe I will write more about OOP stuff/problems too, thanks for the suggestion!

    I have no idea which problems are asked most by which company, so it's probably not gonna be implemented. You can see some statistics on this on Leetcode already :)

»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Highlighting Feature will add more readability and it will allow to highlight the important keynotes.

  • »
    »
    4 года назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    What exactly do you mean by this feature? So that users can have their own highlights?

    • »
      »
      »
      4 года назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Yes , it will enable all users to make highlights on notes that they can refer later for quick lookup. Thanks

      • »
        »
        »
        »
        4 года назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится

        That's actually interesting idea, thanks! I will keep this in mind for the future.

»
4 года назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

.

»
4 года назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится

Great Work !

»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Does it have geometry?

  • »
    »
    4 года назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    No, because interview questions don't have geometry (thanks god).

»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Very nice !! Good job

»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Where are you working rn ADJA

»
4 года назад, # |
Rev. 2   Проголосовать: нравится +13 Проголосовать: не нравится

Skimmed through, some thoughts from my recent interviewing experience that you may consider worth adding. Comments in italic

  • Most big companies (FB, Google, Amazon, Microsoft, others) have different levels for software engineers. Your level (and job location) determines the salary and stock band. You only mention this in passing on negotiation,

  • Generally counter-offers is the best leverage you can get during salary negotiation. Try to start interview loop with 2-3 companies at the same time. Your bank balance will thank you for that. No mention of parallel interviews

  • Depends on company, but usually algorithm/coding interviews are pass/fail. If you pass those, system design and behavioural are the ones that determine your level (and compensation band). No mentions on that.

  • Practice, practice, practice. There's a bunch of sites where you can do online practice interviews paying with either money (interviewing.io, etc.) or your time (pramp). Use those, especially for non-coding interviews as those are harder to practice on your own. Doing 5-10 practice interviews is also a great way to learn to deal with interview anxiety. You mentioned practice, but not places to do it

»
4 года назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится

great work

»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Great Work, Is it an open-source product? will happy to contribute the C++ part, like some of the code tutorials are JAVA only.

»
3 года назад, # |
  Проголосовать: нравится +4 Проголосовать: не нравится

Probably a bit late to the party, but i learned a great deal of sql from the formerly known website codefights, now under the name of codesignal. Check the arcade section, there you will find a lot of training problems for sql, python (actually for the normal questions you can pick any language)